VBA初心者です。
VBAを使い、下記「やりたいこと」をしたいのですが、
「質問内容」にありますように、上手くできません…。
基礎がわかっていない為、お粗末な内容かもしれませんが、
教えてください。何卒よろしくお願い致します。

■やりたいこと
シート「1」にあるURLアドレスのリスト(C列)に沿って
WEBクエリを実行し、シート「2」に取得したデータを
連続して末行に入力したいです。

■質問内容
見よう見真似で、下記VBAを作成しました。(1To3は仮の回数です)
WEBクエリが実行され、末行に取得データが入力されますが、
1回目、2回目の取得データは消え(長い空白行ができ)、
ラストの3回目のデータのみが残るかたちになります。
取得したデータが消えず、連続してWEBクエリを実行できるよう
下記を添削して頂けませんでしょうか。
----------------------------------------------------------------
Sub Macro2()

Dim Lrow As Long
For カウンタ = 1 To 3
Lrow = Worksheets("2").Range("A" & CStr(Rows.Count)).End(xlUp).Row
セル範囲 = "C" & カウンタ
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & Worksheets("1").Range(セル範囲).Value, Destination:=Worksheets("2").Range("A" & Lrow))
.Name = Worksheets("1").Range(セル範囲).Value
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next

End Sub

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんばんは。



>取得したデータが消えず、連続してWEBクエリを実行できるよう下記を添削して頂けませんでしょうか。

結論からいうと、このコードでは不可能なのです。QueryTable というテーブルは、列全体を使っていますが、そこに入れたデータは一回きりです。右側にずらして入れていくという方法もないとは言いませんが、効率が悪いです。QueryTable 専用のシートを作っておいて、そこで、取れたデータを、一旦、別のシートにコピーして写すという方法しか、解決策はありません。QueryTable でWeb データを取得した後の部分にCopy/Paste をつなげればよいのではないかと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!!
試しに、繰り返し処理なしですが、
WEBクエリのデータを取得し、別シートにコピーすることは
できました。こちらの方法でリストを作成していきたいと
思います。

不可能だったとは、聞いて良かったです。
聞かなければ、ずっと迷走していました・・・。

ありがとうございました。

お礼日時:2009/05/24 19:56

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング

おすすめ情報