みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelVBAの繰り返し処理でwebクエリの取込みできますか。

こんにちは。VBA初心者の駆け出しです。
よろしくお願いします。
「外部データの取込み」→「新しいwebクエリ」からデータを取り込んで、集計するマクロに取り組んでいますが、
webクエリの部分はマクロの記録で自動記述されたものを使っています。
URLが指定されるので、変数をおいてみたけどダメでした。
そもそも外部デ-タの取り込みは、変数使えないのでしょうか?
すみません、データベースがサイトにしかなくて、webクエリしか方法がないのですが。。
サイトが(データが)膨大で、取り込む回数が100を超えるんで、URLだけ変更して、同じ記述を繰り返して使ってるのですが、
それだけでモジュール2つにしないとエラーになってしまいます。なんとかURLの部分を変数にできないか、とお助けをお願いします。もくはwebクエリを保存して、そのファイルを利用できないでしょうか?
各webページは同形式です。
未熟ながらloopが使えれば、と考えたのですが、脳が足らなくて、こちらに始めて投稿した次第です。説明分かりづらい所があったらご指摘お願いします。

環境:
win2000 XP
Officce ver.2002 2003
混合した環境です。
マクロを保存先のExcelは2003です。

投稿日時 - 2006-08-16 13:38:18

QNo.2342636

困ってます

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

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

投稿日時 - 2006-08-16 22:33:09

お礼

回答有難うございます!
とりあえず今作ったものの一部、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クエリのファイル用に)を自動生成する方法。。など考えたほうがよいでしょうか?
もちろん無謀なら、取り込みを分割する予定ですが。。
何度もすみません、どうしたらいいでしょう?

投稿日時 - 2006-08-17 16:31:39

ANo.1

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問