VBA:HTML内から値の取り出し

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