teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

質問の追記に対する回答の追加

2017/06/05 09:00

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -12,4 +12,39 @@
12
12
  For Each elm In ie.Document.getElementsByTagName("EEE")
13
13
  Debug.Print elm.innerText
14
14
  Next
15
- ```
15
+ ```
16
+
17
+ 追記に対する回答
18
+ --
19
+ > ・「Class=BBB」下にある「Class=EEE」
20
+
21
+ For Each を入れ子にすればいいでしょう。
22
+
23
+ ```
24
+ Dim elmB As Object
25
+ Dim elmE As Object
26
+
27
+
28
+ For Each elmB In ie.Document.getElementsByTagName("BBB")
29
+ For Each elmE In elmB.Document.getElementsByTagName("EEE")
30
+ Debug.Print elmE.innerText
31
+ Next
32
+ Next
33
+ ```
34
+
35
+ > ・「Class=BBB」下にある「Class=EEE」
36
+ > ・「Class=CCC」下にある「Class=EEE」
37
+
38
+ 「Class=EEE」が「Class=BBB」「Class=CCC」の直下にあることが保証されているなら、
39
+ parentElement を使ってもいいですね。
40
+
41
+ ```
42
+ Dim elm As object
43
+
44
+ For Each elm In ie.Document.getElementsByTagName("EEE")
45
+ Select Case elm.parentElement.GetAttribute("className")
46
+ Case "BBB", "CCC"
47
+ Debug.Print elmE.innerText
48
+ End Select
49
+ Next
50
+ ```

1

誤字の修正

2017/06/05 08:59

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -1,4 +1,4 @@
1
- コレクションを返しますので、添え字を付けて各要素にアクセスします。VBAの場合は、添え字は()囲みます。
1
+ コレクションを返しますので、添え字を付けて各要素にアクセスします。VBAの場合は、添え字は()囲みます。
2
2
 
3
3
  ```
4
4
  '0番目のデータ