Excel VBA QueryTableを使用してWebページのテーブルを読み込む

スポンサーリンク

QueryTableを使用してWebページのテーブルを読み込む方法

QueryTable【クエリテーブル】オブジェクトを使用して、更新可能なWebページにあるテーブル(表)をワークシートに読み込む方法について解説します。

QueryTable【クエリテーブル】オブジェクトのQuery【クエリ】は「問い合わせ」という意味があり
Table【テーブル】は「表」という意味があります。つまり、「QueryTable」は表への問い合わせ機能ということになります。

指定したWebアドレス(URL)のHyperText Markup Language【ハイパーテキスト マークアップ ランゲージ】(以下HTML【エイチティエムエル】)内の<Table></Table>テーブルタグで囲まれた要素の範囲をワークシートに読み込むことができます。

QueryTableを使用してWebページのテーブルを読み込む手順

1.QueryTabls【クエリーテブルズ】コレクションのAdd【アド】メソッドを使用して、新しいデータベースクエリ(QueryTableオブジェクト)を作成します。


2.作成されたQueryTable【クエリテーブル】オブジェクトに対してWebクエリを設定するプロパティを使用して読み込みの設定をします。


3.QueryTable【クエリテーブル】オブジェクトのRefresh【リフレッシュ】メソッドを使用してQueryTable【クエリテーブル】オブジェクトを更新してワークシートに内容を書き込みます。


Webページのテーブル(表)部分をワークシートに読み込む例

コードと解説

Sub Webクエリ()
Dim 接続文字列 As String
接続文字列 = "URL;" & "https://kosapi.com/post-3002/"
With ActiveSheet.QueryTables.Add(接続文字列, Range("A1"))
.WebSelectionType = xlAllTables
.RefreshOnFileOpen = True
.Refresh
End With
End Sub
2行目【Dim 接続文字列 As String】
QueryTable【クエリテーブル】オブジェクトを追加するQueryTables【クエリテーブルズ】コレクションの
Add【アド】メソッドの接続先を表す引数Connection【コネクション】に設定する接続文字列を格納する変数「接続文字列」を文字列型(String)で宣言します。


3行目【接続文字列 = “URL;” & “https://kosapi.com/post-3002/”】
接続するデータの種類とデータの場所を接続文字列として指定して変数「接続文字列」に代入します。接続文字列の指定方法についてはこちらをご覧ください。データの種類を”URL;”に指定してWebページを指定しその後にWebページのアドレス(URL)を指定します。


4行目【With ActiveSheet.QueryTables.Add(接続文字列, Range(“A1”))】
QueryTables【クエリテーブルズ】コレクションのAdd【アド】メソッドを使用してQueryTable【クエリテーブル】オブジェクトを追加します。第一引数の接続先を表すConnection【コネクション】には変数「接続文字列」を指定し第二引数の抽出先を表すDestnation【ディスティネーション】にはA1セルを指定してWithステートメントで指定します。


5行目【.WebSelectionType = xlAllTables】
QueryTable【クエリテーブル】オブジェクトのWebSelectionType【ウィブセレクションタイプ】プロパティに
定数のxlAllTables【エックスエルオールテーブルズ】を設定することにより、Webページのテーブル(表)部分のみ読み込みます。Webページのすべてを読み込む場合は定数のxlEntirePage【エックスエルエンターページ】を設定します。設定値はXlWebSelectionTypeクラスの定数から選択します。


6行目【.RefreshOnFileOpen = True】
QueryTable【クエリテーブル】オブジェクトのRefreshOnFileOpen【リフレッシュオンフィルオープン】プロパティにTrueを指定して、ブックを開くたびにWebテーブルに接続してデータを更新する設定にします。


7行目【.Refresh】
QueryTable【クエリテーブル】オブジェクトのRefresh【リフレッシュ】メソッドを使用して、各プロパティで設定した内容を反映してQueryTable【クエリテーブル】オブジェクトを更新してセルにデータを書き込みます。

実行結果


以上で、QueryTable【クエリテーブル】を使用してWebページのテーブルを読み込む方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告