• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBAの繰り返し処理でwebクエリの取込みできますか。)

ExcelVBAでwebクエリの取込み方法と繰り返し処理について

このQ&Aのポイント
  • ExcelVBAを使ってwebクエリの取込みや繰り返し処理を行う方法について詳しく知りたいです。
  • VBA初心者の方がwebクエリの取込みを行う際に、マクロや変数の使い方について悩んでいます。取り込み回数が多い場合やURLを変更する場合にも対応したいです。
  • Excelのバージョンや環境に関係なく、効率的にwebクエリの取込みと繰り返し処理を行う方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

できますよ。 今のコードがどうなっているのかがよくわからないのですが、マクロでやっているのなら、クエリファイルを読み込みにいくコードまでは自動で作ってくれるはずですから、あとはそのクエリファイルを予め作っておけばよいだけです。 webクエリのファイル(*.iqy)の中身はただのテキストファイルですので、一つ試しに作って中の仕様を丸まるコピーすればよいだけです。で条件にあわせてURLやらSelectionの部分を置き換えると。

nao77777
質問者

お礼

回答有難うございます! とりあえず今作ったものの一部、webクエリの部分です。 -------------------------- Sub Macro1() Sheets(1).Select Columns("A:F").Select Selection.Clear Selection.QueryTable.Delete With ActiveSheet.QueryTables.Add(Connection:="URL;http://news.goo.ne.jp", _ Destination:=Range("A1")) .Name = "news.goo.ne.jp" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True ~中略 .Refresh BackgroundQuery:=False End With 行 = 8 列 = 2 取行 = 8 取列 = 9 If Not Cells(行, 列) = "" Then If Not Cells(取行, 取列) = "n" Then Application.Run "取込2" End If End If 'まずシートをクリアして、そこにwebクエリの取り込みをします。 ’取り込んだデータをIFで処理したら、次の取り込みへ。。 ------------------- といった感じです。繰り返し処理が、未熟で手段が分からず、 この記述をURL以外、コピー&ペースト100回くらい繰り返し、やっとEnd Sub が拝める状態です。 popesyuさんが教えてくださった通り、webクエリのファイル(*.iqy)作って ファイル名を変数にして、それを実行する処理が一番ベストのようですね。チャレンジしてみます。 ただし、100回繰り返しのところ→今度の仕事は2500~3000回の予定なのです。 とほほですが、テキスト(webクエリのファイル用に)を自動生成する方法。。など考えたほうがよいでしょうか? もちろん無謀なら、取り込みを分割する予定ですが。。 何度もすみません、どうしたらいいでしょう?

関連するQ&A