• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA WEB取得データの横方向への出力)

エクセルVBAでWEBからデータを横方向に出力する方法

このQ&Aのポイント
  • エクセルVBAを使用して、異なるWEBページのURLから特定のデータを抽出し、横方向に出力する方法について紹介します。
  • 指定した範囲のURLからWebTables = "8"のデータを抽出し、列を挿入していきます。これにより表形式ではなく、横方向に1列ずつデータが表示されます。
  • 上記のVBAコードを使用することで、特定のURLのWebTables = "8"のデータを横方向に出力することができます。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

インターネット上の該当ページの「テーブル8」がたとえば「縦8×横5」になっている以上,WEBクエリで落としてきた結果は必ず「縦8×横5」にしかなりません。必要なら続けてご自分の希望される格好になるよう,改めて整形するしかありません。 お話の前提: >B1からF8の範囲にデータが抽出されます。 >これをB1、C1、D1・・・といった具合に、横方向へ抽出したい 簡易対応版: sub macro1r1()  dim h as range  dim j as range  dim n, r  for each h in range("A1:A100")  With ActiveSheet.QueryTables.Add(Connection:="URL;" & h, Destination:=h.offset(0,1))  .WebSelectionType = xlSpecifiedTables  .WebFormatting = xlWebFormattingNone  .WebTables = "8"  .Refresh BackgroundQuery:=False  End With  n = 1  r = range("B65536").end(xlup).row  for each j in range(h.offset(0, 1), cells(r, "F"))  h.offset(0, n) = j  n = n + 1  next    range(h.offset(1, 1), cells(r, "F")).clearcontents  next end sub #このように,特にマクロのご相談では「目に見えるエクセルの姿が,実際のデータが,どうなっているからこうしたい」と具体的な姿をご相談に書かないと,さっぱり的外れになりがちです。勿論そんなイチイチ説明したり説明されなくても,ご自分でキチンと回答を応用して実際の仕事に使えるならそれで十分なんですが,今後のご参考に。

bombomb_man
質問者

お礼

御回答いただきありがとうございます。 まだ一部のデータでしか試せていないのですが、思っていた作業ができそうです。 次に質問するときは、もっと詳しく記載するようにします。 と同時に、もっとVBAを勉強しておきます。 重ねて、ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

とりあえずこういう事でしょうか。 sub macro2()  dim i as long  for i = 1 to 100  With ActiveSheet.QueryTables.Add(Connection:="URL;" & cells(i, "A"), Destination:=cells(1, i+1)  .WebSelectionType = xlSpecifiedTables  .WebFormatting = xlWebFormattingNone  .WebTables = "8"  .Refresh BackgroundQuery:=False  End With  next i end sub

bombomb_man
質問者

補足

説明が上手くできなくてすみません。 たとえば、A1セルのURLのみからデータを取得したとき、 最初のVBAだとB1からF8の範囲にデータが抽出されます。 これをB1、C1、D1・・・といった具合に、横方向へ抽出したいのです。 そして、A2セルのURLはB2、C2、D2・・・といったようにしたいのです。 ひとつのURLから抽出するデータは、 すべて同じ行の横方向へ、2行にならないように抽出したいのです。

関連するQ&A