• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAでのwebクエリ取得データの表示)

Excel VBAでのwebクエリ取得データの表示方法

このQ&Aのポイント
  • Excel VBAを使用してwebクエリで複数のURLからデータを取得し、横に表示する方法について解説します。
  • VBA初心者でもわかりやすく、ループ処理を使用してデータを取得する方法を紹介します。
  • ユーザーが指定したURLのデータを自動的に取得して表示するためのサンプルコードも提供します。

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

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.3

NO2のjcctairaです。 > ただ、取得データの1行目しか表示されません。 とのことですが、エラーになるので下記のように修正してテストしています。 URLの内容により違うのかも知れませんが、私のテストではうまくいっているようですが? Sub webクエリ()   Dim myQT As QueryTable   Dim i As Long   Dim myURL As String   Cells.Delete   For Each myQT In ActiveSheet.QueryTables: myQT.Delete: Next   Range("A1").Select   For i = 2 To Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp).Row     myURL = Sheets("Sheet1").Cells(i, "B").Value     With ActiveSheet.QueryTables _         .Add(Connection:="URL;" & myURL, Destination:=Selection)       .BackgroundQuery = False       .AdjustColumnWidth = False       .WebSelectionType = xlEntirePage       .WebFormatting = xlWebFormattingNone ''     .WebTables = "2" ' エラーになるのでコメントアウト       .Refresh     End With     Cells(ActiveCell.Row, "B") = Cells(ActiveCell.Row + 1, "A")     Cells(ActiveCell.Row, "C") = Cells(ActiveCell.Row + 2, "A")     Cells(ActiveCell.Row + 1, "A").Select     Range(ActiveCell.Row & ":" & Rows.Count).Delete   Next End Sub

colorbox0831
質問者

お礼

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

その他の回答 (2)

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

End With以降を修正してください。 【説明】 ・取得した3行(縦)を横にコピーします。 ・次のデータを取得するために1行ActiveCellを下に ・ActiveCell以降をクリアー            :      End With      Cells(ActiveCell.Row, "B") = Cells(ActiveCell.Row + 1, "A")      Cells(ActiveCell.Row, "C") = Cells(ActiveCell.Row + 2, "A")      Cells(ActiveCell.Row + 1, "A").Select      Range(ActiveCell.Row & ":" & Rows.Count).Delete    Next

colorbox0831
質問者

補足

ありがとうございます。 ただ、取得データの1行目しか表示されません。

  • tossy2011
  • ベストアンサー率17% (3/17)
回答No.1

すみません。 調べてみましたがwebクエリでテーブルから取得したデータの操作方法が分かりませんでした。 ただ Cells(ActiveCell.Row + QueryTables(1).ResultRange.Rows.Count, 1).Select を Cells(ActiveCell.Row , 1+ QueryTables(1).ResultRange.Columns.Count).Select とすれば3行分のデータを縦に書き込んだら 右にデータの項目数分スライドして次のデータを書き込むはずですので、 全てのデータが書き込まれたら縦と横を入れ替えれば似たようなことはできるのではないかと思います。

関連するQ&A

専門家に質問してみよう