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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です