Excel VBA 質問スレ Part63

■ このスレッドは過去ログ倉庫に格納されています
2019/09/16(月) 19:34:59.04ID:emfTAhXr0
!extend:checked:vvvvv:1000:512

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part62
https://mevius.5ch.net/test/read.cgi/tech/1561303297/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2019/09/16(月) 19:37:44.33ID:oeAiWNxe0
ぽこちん
2019/09/16(月) 20:59:24.42ID:dQXELjkB0
ちんぽこ
2019/09/16(月) 21:35:06.62ID:umLXld9Q0
おつちん
2019/09/16(月) 21:37:35.26ID:+LXKkUCe0
糞レスで埋めるなら前スレのCSVファイルをQueryTablesで読むサンプル残しとく超参考になった
967 デフォルトの名無しさん (ワッチョイ 1fce-Nl8y) sage ▼ New! 2019/09/13(金) 00:48:49.27 ID:VS8vqVEc0 [1回目]
文字列として読み込めば0は消えない
あとLineInputよりクエリのがずっと速い

サンプル

Sub CSVread()
  With Worksheets("Sheet1") '読み込むシート
  With .QueryTables.Add(Connection:="TEXT;C:\tmp\test.csv", Destination:=.Range("A1")) 'ファイル名とセル位置
    .TextFilePlatform = 932 '文字コード指定
    .TextFileCommaDelimiter = True 'カンマ区切り指定
    .RefreshStyle = xlOverwriteCells 'セルに上書き
    .TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat, xlTextFormat) '各列を文字列に指定
    .Refresh 'シートに読み込んで表示
    .Delete 'クエリを切断
  End With
  End With
End Sub
2019/09/16(月) 21:50:00.95ID:oeAiWNxe0
ぽこちん
7デフォルトの名無しさん (ワッチョイ 9f8e-J3NS)
垢版 |
2019/09/16(月) 22:04:26.30ID:mBMfeEcT0
全部丸投げの教えてクレクレは死ね
2019/09/17(火) 00:12:51.48ID:QL/1GsWjx
LongLong型に定数値として4,294,967,296を与えておきたいのですがLongの範囲を超えているせいか、必ず後ろに#が付いてしまいます
用途としては強引にunsigned Long的に使う為のオフセットなのですが#を付けない方法はありますか?
2019/09/17(火) 00:26:07.74ID:dEY9k2Om0
Verylong型
2019/09/17(火) 01:14:04.05ID:chWRxzLY0
ちんぽこ
2019/09/17(火) 05:14:20.51ID:x3oFyaLA0
>>8
式は書けないんだったっけ…
2019/09/17(火) 12:34:56.30ID:WreyM4md0
LongPtr
2019/09/17(火) 19:25:37.80ID:gAW2iwiH0
前スレの最後でセルに色をつけるコードを作って頂いた者です。職場で試してみましたが思い描いた通りに動いてくれました!これを機に自分で作れるように勉強したいと思います。作って下さった方、本当にありがとうございました…!
2019/09/17(火) 19:44:50.07ID:1jOFcYgS0
ぽこちん
2019/09/17(火) 22:00:10.80ID:g2VoYh6px
スレチなのは分かってるけど詳しい人がここにしかいなさそうだから、もし知っていたら教えてほしい

ブックに保存されたクエリをOLAP等で使い回すためにODCファイルとしてエクスポートしたいんだが、「既存の接続」コマンドからクエリのプロパティを開いても「接続のエクスポート」のボタンが無効になっていてうまくエクスポート出来ない
どうしたらうまくエクスポートできるのか知りたい
2019/09/18(水) 00:53:52.38ID:2k/sPvaQ0
珍ぽこりん
17デフォルトの名無しさん (ワッチョイ 9f64-+dKN)
垢版 |
2019/09/18(水) 02:08:49.51ID:IoDIi0WV0
すみません。
エラーが分からず・・・教えてください。

下記コードで、”型が一致しません”というエラーが出ています。

Dim Ringi1 As Worksheet
ThisWorkbook.Activate
Set Ringi1 = Workbooks(Range("B6")).Worksheet("Sheet1")  ←エラー

ThisworkbookのB6には”テストファイル.xlsx”が入っています。

よろしくお願いします。
2019/09/18(水) 02:37:53.20ID:6F01cvXOx
>>17
Worksheet(Range("B6"))じゃなくてWorksheets(Range("B6").Value)でしょう

あとRange("B6")はどのシートのB6セルなのかな?
この書き方だとThisWorkbookがActivateされたときにアクティブになってるシートのB6セルが参照されてしまうので、ちゃんとシートを指定して書いたらどうかな
例えばThisWorkbookの一番目のシートのB6セルにファイル名が書かれている前提ならこうなる

Dim Ringi1 As Worksheet
ThisWorkbook.Activate
Set Ringi1 = Application.Workbooks(ThisWorkbook.Worksheets(1).Range("B6").Value).Worksheets("Sheet1")
2019/09/18(水) 06:35:56.16ID:2k/sPvaQ0
ポコポコてぃんてぃむ
2019/09/18(水) 07:18:06.31ID:Sjvl4q9oM
>>8
つけないのは無理だったと思う
今スマホだから試せないけど # が嫌というだけなら ^ ではどうかな?
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/longlong-data-type
2019/09/18(水) 19:03:21.51ID:2k/sPvaQ0
てぃむてぃむ
2019/09/18(水) 22:18:32.08ID:TxLlA7PYp
ブックAのシート1〜iまでのA1セルの数字を合計した数字をブックBのA1セルに転記したいのですが、どう書けばいいでしょうか?
2019/09/18(水) 22:31:17.98ID:ZRtblFe80
>>22
マルチポストはやめよう
2019/09/19(木) 00:39:56.20ID:oPZRSehu0
VBAのエディタに未だに慣れない・・・visual studioみたいな至れり尽くせりな開発環境があればなぁ
2019/09/19(木) 00:47:56.32ID:ARAzw0xg0
>>24
アドオン入れるなり作るなりするとマシになる
2617 (ワッチョイ 2964-9GzD)
垢版 |
2019/09/19(木) 01:19:41.82ID:vxcA2ILs0
>>18
コードをヒントにして、成功しました!
ありがとうございました。

めっちゃお優しいですね!!
2019/09/19(木) 05:46:15.64ID:0eG7NBUp0
あいうえお
2019/09/19(木) 07:26:47.06ID:F8eVIa9Rp
>>23
初めてなので許してください
そして教えてください
2019/09/19(木) 08:12:52.96ID:wmMzcbeOd
>>25
オススメ教えて
2019/09/19(木) 08:47:06.93ID:0eG7NBUp0
かきくけこ
31デフォルトの名無しさん (ブーイモ MMf6-zDIv)
垢版 |
2019/09/19(木) 12:51:43.71ID:sRgRNGS8M
なにぬねの
2019/09/19(木) 14:11:18.92ID:I3ATuKNad
>>22
ブックAのシートでループ
33デフォルトの名無しさん (ワッチョイ 298e-l2za)
垢版 |
2019/09/19(木) 14:27:24.46ID:nfvzk0j90
>>28
死ね、馬鹿
2019/09/19(木) 14:54:49.69ID:F8eVIa9Rp
>>33
うるせえウンコマンクソして寝ろ
35デフォルトの名無しさん (ワッチョイ 298e-l2za)
垢版 |
2019/09/19(木) 15:37:32.90ID:nfvzk0j90
馬鹿の本性なんてこんなもん
2019/09/19(木) 19:53:05.48ID:ARAzw0xg0
>>28
ならマルチポスト放置してないで一つに絞ろう
2019/09/19(木) 21:51:25.54ID:0eG7NBUp0
らったったっらたた
38デフォルトの名無しさん (ワッチョイ 2964-9GzD)
垢版 |
2019/09/19(木) 22:19:21.08ID:vxcA2ILs0
すみません。
考えてもわからないので教えてください。

Dim Wb2 As Workbook
Set Wb2 = Workbooks(Range("B7").Value)

エラーメッセージ:インデックスが有効範囲にありません。

B7セルには<テストファイル.xlsx>が入っているとします。

Workbookにワークブック名を入れようとしているのですが、
なぜエラーなのでしょうか・・・?
3938 (ワッチョイ 2964-9GzD)
垢版 |
2019/09/19(木) 22:33:23.12ID:vxcA2ILs0
SetするWorkbooksは、ファイルが開いていないといけなかったんですね。
自己解決しました。
失礼しました。
2019/09/19(木) 22:48:56.33ID:NLchELHJr
>>39
dドライブ直下にあるとして
Set Wb2 = Workbooks.open ("d:¥" & Range("B7").Value)
なら自動的にファイルを開いてオブジェクト扱いになる
4138 (ワッチョイ 2964-9GzD)
垢版 |
2019/09/19(木) 23:03:19.82ID:vxcA2ILs0
>>40
そんな書き方もあるんですね!
勉強になります。
(私のコードは無駄が多そう・・・。)
2019/09/20(金) 00:09:35.56ID:SAxa71i50
変に答えると幼稚な馬鹿がつけあがる
2019/09/20(金) 01:19:15.21ID:L4svxBEcM
と、幼稚な馬鹿が申してます
2019/09/20(金) 18:45:01.71ID:nQBbqzQu0
あかさたな
2019/09/20(金) 20:42:04.97ID:L83O/vz70
VBAからIEを操作してhtmlで書かれたデータを取りに行くコードを書いています

ターゲットのサイトでは、一度に20件のデータしか表示されず
一番下までスクロールするたびに20件ずつ追加されます(データは全200件です)

htmlでは、20件のデータの下に「::after」と書かれており、スクロールが一番下に近づくと
新たな20件がロードされ、その下に「::after」が現れます

質問ですが、一度に200件全てのデータを取るためにはIEでスクロールさせる必要があるように思いますが
その場合、SendKeysを使って、SendKeys "{PGDN}" のようにするしかないのでしょうか?

それとも他に、何か良い方法があるようでしたらアドバイスをいただきたくお願い申し上げます
2019/09/20(金) 21:06:34.17ID:oAI6ZRfWH
querytables.addでCSVファイルをエクセルシートに貼り付けたとき、グループ化で非表示にされている部分に正しく貼り付けられるのはいいのですが、グループ化非表示から表示状態にされてしまいます。
非表示部分に貼り付けつつ、非表示のままにするにはどうしたらいいでしょうか?
貼り付け先シートの元々の表示・非表示状態はそのままにしたいんですがよい方法はありますか?
2019/09/21(土) 05:45:28.43ID:8VV0xXKBa
sendkeysはなるべく使わない
2019/09/21(土) 08:35:41.78ID:/Gx75Cw00
abcdefg
2019/09/21(土) 12:12:30.41ID:8qwe/SJE0
>>45
ページの作りによる。
例えばあなたは20件ずつなどと言っているけど、URLの入力など次第で200件全部表示できるかもしれない。
スクロールが必要かも分からないがSendkeysなんて使うのは子供と考えて良い。
2019/09/21(土) 13:08:32.19ID:XrHXKxEM0
>>47>>49
レスありがとうございます。
私もSendKeysは使いたくなかったので質問した次第です

> ページの作りによる。
ターゲットサイトは、dアニメのランキングのページです。
https://anime.dmkt-sp.jp/animestore/CR/CR00000013_001

ここからランキングのデータを抜き出して来ようと思ってますが、20件ずつしか表示されず…
何かいい方法はないでしょうかねぇ
2019/09/21(土) 13:10:12.33ID:/Gx75Cw00
あーざーやーかーにー
いーろづいたっ
52デフォルトの名無しさん (ワッチョイ a9ad-7RCD)
垢版 |
2019/09/21(土) 15:10:34.25ID:AFF+Wq/L0
うちの会社に、元SEでVBAバリバリ書ける、という人が
入ってきたんですが、色々Excel作業の自動化をお願いするために
現行の作業手順をお見せしたら、「ここの、Excel関数を使っているところは
意味が分からないので、関数の使い方から説明してください。」といわれ、
VLOOKUPとは、からお話ししないといけないそうで、もう自分でVBA
書こうかと思ってしまいます。
はじめはこういうもので、すぐ慣れてくれるんでしょうか?
「SEの資格」を持っている、という触れ込みの、部長の知り合いなので扱いは
要注意なのです。はぁ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況