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

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク