WebBrowserでテーブルデータを取得【ExcelVBA】
2029年頃まで使用できる予定のWebBrowserでWebスクレイピング
指定したサイトのテーブルデータを指定したシートに抽出する
実際に使用したサンプルコード
Option Explicit
Public Sub Web操作編()
Load UserForm1
With UserForm1.WebBrowser1
'スクリプトエラーの表示を抑える
.Silent = True
'指定したページへ移動
.Navigate "https://vba.company/samplepage/4/"
'読み込み待機
Do While .Busy Or .ReadyState <> 4
'OSに制御を渡す
DoEvents
Loop
'webbrowserのドキュメントをセット
Dim 変数 As HTMLDocument
Set 変数 = .Document
'htmlの要素を順番に入れて操作する為の変数
Dim 取得用 As HTMLHtmlElement
'行と列を宣言と最初の1を入れてあげる
Dim 行 As Integer: 行 = 1
Dim 列 As Integer: 列 = 1
'タグの名前がtdのものを取得する
For Each 取得用 In 変数.getElementsByTagName("td")
'dataシートにテーブルデータを取得する
Worksheets("data").Cells(行, 列).Value = 取得用.innerText
'列を1ずつ増やす
列 = 列 + 1
'列が27になったら1に戻す行は1増やす
If 列 = 27 Then
列 = 1
行 = 行 + 1
End If
Next
End With
Unload UserForm1
End Sub