

たとえば以下の様な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]

よろしくお願いします。


CC BY-SA 3.0
2017-04-23T04:01:55.183
34219
2023-05-06T00:32:55.260
2023-05-06T00:32:55.260
4236
22731
question
html css vba
Excel VBA のinternetexplorer.applicationを使用してhtml内の特定のクラス内の値を順に取得したい


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]

でしょうか。


CC BY-SA 3.0
2017-04-23T04:40:33.447
34220
2017-04-23T04:40:33.447
4236
34219
answer