回答編集履歴

1

サンプルコードの追加

2018/05/25 12:19

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -7,3 +7,79 @@
7
7
 
8
8
 
9
9
  前の要素は element.previousElementSibling で取得できます。
10
+
11
+
12
+
13
+ ---
14
+
15
+ 時間があったのコードを書いて試してみました。
16
+
17
+ 前の要素より、親要素の innerText で標題を取得したほうがシンプルですね。(すぐ前の要素ではないようなので。)
18
+
19
+
20
+
21
+ ```vba
22
+
23
+ Public Sub Test()
24
+
25
+ Dim col As New Collection
26
+
27
+ Dim objIE As Object
28
+
29
+ Dim el As Object
30
+
31
+
32
+
33
+ col.Add "○○株式会社", "Company Name"
34
+
35
+ col.Add "社長", "Role in Company"
36
+
37
+ col.Add "太郎", "First Name"
38
+
39
+ col.Add "山田", "Last Name"
40
+
41
+ col.Add "abc@abc.com", "Email"
42
+
43
+ col.Add "012-345-6489", "Phone Number"
44
+
45
+ col.Add "東京都", "Address"
46
+
47
+
48
+
49
+ Set objIE = CreateObject("InternetExplorer.Application")
50
+
51
+ objIE.Visible = True
52
+
53
+ objIE.navigate "http://www.rpachallenge.com/"
54
+
55
+ Call IEWait(objIE)
56
+
57
+
58
+
59
+ For Each el In objIE.document.forms(0).getElementsByTagName("input")
60
+
61
+ If el.Type = "text" Then
62
+
63
+ el.Value = col(el.ParentNode.innerText)
64
+
65
+ End If
66
+
67
+ Next
68
+
69
+ End Sub
70
+
71
+
72
+
73
+ 'IEを待機する関数
74
+
75
+ Function IEWait(ByRef objIE As Object)
76
+
77
+ Do While objIE.Busy = True Or objIE.readyState <> 4
78
+
79
+ DoEvents
80
+
81
+ Loop
82
+
83
+ End Function
84
+
85
+ ```