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
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ページのテーブルを読み込む方法についての解説を終了します。ありがとうございました。