HTMLファイル内にあるテーブル<table>内の値を取り出す。
今まではINSTR関数で地道に処理していたが、もっとスマートな方法を準備した。
Sub html_TD_value()
Dim objXML As New MSHTML.HTMLDocument
Dim htmlDoc As New MSHTML.HTMLDocument
Dim htmlDoc2 As Object
Dim htmlDoc3 As Object
Dim htmlDoc4 As Object
' 事前に出力されたHTMLファイルを取り扱う
Set htmlDoc = objXML.createDocumentFromUrl("file:///C:/temp/test.html", vbNullString)
'wait処理が面倒だから0.5秒待つことにする(ローカルファイルアクセスのため高速なはず)
Application.Wait [Now() + "0:00:00.5"]
' id="xxxx"まで飛ぶ
Set htmlDoc2 = htmlDoc.getElementById("xxxx")
'1行目(TR)は飛ばして2行目から処理
For i = 1 To htmlDoc2.getElementsByTagName("tr").Length - 1
'
<TR>まで飛ぶ
Set htmlDoc3 = htmlDoc2.getElementsByTagName("tr")(i)
For j = 0 To htmlDoc3.getElementsByTagName("td").Length - 1
'
<TR>内の
<TD>まで飛ぶ
Set htmlDoc4 = htmlDoc3.getElementsByTagName("td")(j)
'
<TD>の値をゲット
Debug.Print i, j, htmlDoc4.innerText
Next
Next
End Sub
