【VBA】Webページ上の表をシートへ取り込む

例えばWeb上にある以下の表を、

Web上にある表
Web上にある表


以下のようにシートへ取り込むことが出来ます!

Web上にある表をシートへ取り込んだ
Web上にある表をシートへ取り込んだ


ここではVBAで実現する方法を記載します!

PR

VBAコード

ここでは例として、以下のURLにある表をシート「sample」へ取り込みます。
第5回 青鳩トレイルラン大会の男子30代Aの記録

Option Explicit

Sub sample()

    '取得したい表を持つURL
    Const TARGET_URL As String = "https://mulka2.com/lapcenter/lapcombat2/result-list.jsp?event=6047&file=3&class=7"
    
    With Worksheets("sample").QueryTables.Add(Connection:="URL;" + TARGET_URL, _
                                              Destination:=Range("B2"))
        '列幅を元の表と同じにする
        .AdjustColumnWidth = True
        '書式は設定しない
        .WebFormatting = xlWebFormattingNone
        '指定したテーブルのみ取得する
        .WebSelectionType = xlSpecifiedTables
        '1つ目の表を取得する
        .WebTables = 1
        '取得する
        .Refresh BackgroundQuery:=False
        '作成される「クエリと接続」を削除する
        .Delete
    End With

End Sub

「QueryTables.Add」で「QueryTableオブジェクト(=クエリと接続)」を作成します(8~9行目)。

作成した「QueryTableオブジェクト(=クエリと接続)」に
 ・各種設定をして
 ・取得を実行
します(11~19行目)。

「Destination」に「Range(“B2”)」を指定しているため、取り込んだ表はセル「B2」から設定されます(9行目)。

「指定したテーブルのみ取得」するために、
 ・「WebSelectionType」に「xlSpecifiedTables」
を指定しています(15行目)。

「1つ目の表を取得」するために、
 ・「WebTables」に「1」
を指定しています(17行目)。

PR

実行結果

Webページ上の表をシートへ取り込むことが出来ました。

Web上にある表をシートへ取り込んだ
Web上にある表をシートへ取り込んだ

列幅は自動調整されます。

PR

参考①

「クエリと接続」は
 ・タブ「データ」配下の「クエリと接続」をクリック
することで、表示できます。

クエリと接続
PR

参考②

シート上の表をテーブル化することで、表にスタイルを設定できます。

詳細は以下の記事をご確認ください。

PR

参考③

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「QueryTables.Add」


●「QueryTableオブジェクト(=クエリと接続)」

タイトルとURLをコピーしました