Excel VBA のinternetexplorer.applicationを使用してhtml内の特定のクラス内の値を順に取得したい


たとえば以下の様なhtmlがあり  
"class2"のdiv内のspan内の値(d,e,f)を順に取得するには  
どのようにすればいいのでしょうか？

[code]

    <div class="class1">
    <span>a</span> 
    <span>b</span>
    <span>c</span>
    </div>
    <div class="class2">
    <span>d</span>
    <span>e</span>
    <span>f</span>
    </div>
    
[/code]

思いつき試したことは以下のコードのように  
"class2"のdivオブジェクトを探して見つかれば  
そのオブジェクトに対し同様の処理を行うということですが  
これでは値(a,b,c)も取得されてしまいうまくいきませんでした。

[code]

    For Each obj1 In objIE.document.all.tags("div")
        If obj1.classname = "class2" Then
            For Each obj2 In obj1.document.all.tags("span")
                debug.print "span " & obj2.innertext & "->" & obj2.innertext
            Next
        End If
    Next
    
[/code]

よろしくお願いします。




IE8以降であれば[`querySelectorAll`メソッド](https://msdn.microsoft.com/en-
us/library/cc304115\(v=vs.85\).aspx)が使えます。

> "class2"のdiv内のspan

をCSSセレクターで表現すると `div.class2 span`となるので

[code]

    For Each span In objIE.document.querySelectorAll("div.class2 span")
        debug.print "span " & span.innertext
    Next
    
[/code]

でしょうか。

