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