アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

A 回答 (1件)

できますよ。


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

回答有難うございます!
とりあえず今作ったものの一部、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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています