質問編集履歴
5
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,6 +28,8 @@
|
|
28
28
|
|
29
29
|
```ここに言語を入力
|
30
30
|
|
31
|
+
|
32
|
+
|
31
33
|
'変数を必ず定義すると宣言
|
32
34
|
|
33
35
|
Option Explicit
|
@@ -64,13 +66,49 @@
|
|
64
66
|
|
65
67
|
'Internet Exploreを立ち上げる
|
66
68
|
|
67
|
-
Dim objIE As Object 'IEオブジェクト参照用
|
68
|
-
|
69
69
|
Set objIE = CreateObject("InternetExplorer.Application")
|
70
70
|
|
71
71
|
objIE.Visible = True
|
72
72
|
|
73
|
+
|
74
|
+
|
75
|
+
'URLを指定する
|
76
|
+
|
73
|
-
objIE.Navigate "http://hogeho.ge/login.php"
|
77
|
+
objIE.Navigate2 "http://hogeho.ge/login.php"
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
Do While objIE.Busy = True Or objIE.readyState <> 4
|
82
|
+
|
83
|
+
DoEvents
|
84
|
+
|
85
|
+
Loop
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
Dim htmlDoc As HTMLDocument
|
90
|
+
|
91
|
+
Set htmlDoc = objIE.Document
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
With htmlDoc
|
96
|
+
|
97
|
+
.getElementById("login").Value = "XXXXXXXXX" 'ユーザー名を指定
|
98
|
+
|
99
|
+
.getElementById("pass").Value = "AAAAAAAAAA" 'パスワードを指定
|
100
|
+
|
101
|
+
.getElementById("submit").Click
|
102
|
+
|
103
|
+
End With
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
Set ieDoc = objIE.Document 'ログイン後のページのHTMLを読み込む
|
110
|
+
|
111
|
+
|
74
112
|
|
75
113
|
|
76
114
|
|
@@ -84,68 +122,64 @@
|
|
84
122
|
|
85
123
|
|
86
124
|
|
87
|
-
|
88
|
-
|
89
|
-
Dim htmlDoc As HTMLDocument
|
90
|
-
|
91
|
-
|
125
|
+
Set ieDoc = objIE.Document
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
126
|
+
|
96
|
-
|
97
|
-
|
127
|
+
|
98
|
-
|
99
|
-
|
128
|
+
|
100
|
-
|
101
|
-
.getElementById("submit").Click
|
102
|
-
|
103
|
-
End With
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
Do While objIE.Busy = True Or objIE.readyState <> 4
|
108
|
-
|
109
|
-
DoEvents
|
110
|
-
|
111
|
-
Loop
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
Set ieDoc = objIE.Document 'ログイン後のページのHTMLを読み込む
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
For Each obj In ieDoc.getElementsByTagName("table") 'tableタグを一つずつを変数objにセット
|
122
|
-
|
123
|
-
For Each obj
|
129
|
+
For Each obj In objIE.Document.all '表示されているサイトの全タグ一つずつを変数objにセット
|
130
|
+
|
124
|
-
|
131
|
+
'各アンカータグ単位に以下の処理を実施
|
132
|
+
|
133
|
+
Select Case obj.tagName 'タグ名により処理を分岐
|
134
|
+
|
135
|
+
Case "TR", "TD", "TH" 'TR,TD,THタグの場合、以下の処理を実施
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
If obj.offsetParent.className = "boardFin yjSt marB6" Then '親タグのCLASS名が「boardFin yjSt marB6」の場合
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
Select Case obj.tagName 'タグ名により処理を分岐
|
144
|
+
|
145
|
+
Case "TR" 'TRタグの場合
|
146
|
+
|
125
|
-
j = j + 1 '行カウンターを1アップ
|
147
|
+
j = j + 1 '行カウンターを1アップ
|
126
|
-
|
127
|
-
|
148
|
+
|
128
|
-
|
129
|
-
|
149
|
+
i = 0 '列カウンターをクリアー
|
150
|
+
|
130
|
-
|
151
|
+
Case "TD", "TH" 'TD,THタグの場合、以下を処理
|
152
|
+
|
131
|
-
i = i + 1
|
153
|
+
i = i + 1 '列カウンターを1アップ
|
132
|
-
|
154
|
+
|
155
|
+
|
156
|
+
|
133
|
-
Worksheets("Sheet
|
157
|
+
Worksheets("Sheet1").Cells(j, i).Value = obj.innerText 'タグのテキスト内容をセルにセット
|
134
|
-
|
135
|
-
|
136
|
-
|
158
|
+
|
159
|
+
|
160
|
+
|
137
|
-
|
161
|
+
End Select
|
162
|
+
|
163
|
+
|
164
|
+
|
138
|
-
|
165
|
+
End If
|
166
|
+
|
167
|
+
|
168
|
+
|
139
|
-
|
169
|
+
End Select
|
170
|
+
|
171
|
+
|
140
172
|
|
141
173
|
Next
|
142
174
|
|
143
|
-
|
175
|
+
|
144
176
|
|
145
177
|
End Sub
|
146
178
|
|
147
179
|
|
148
180
|
|
181
|
+
|
182
|
+
|
149
183
|
```
|
150
184
|
|
151
185
|
|
@@ -156,6 +190,10 @@
|
|
156
190
|
|
157
191
|
|
158
192
|
|
193
|
+
2019/10/3/23:20 th取得のため 修正いたしました。
|
194
|
+
|
195
|
+
|
196
|
+
|
159
197
|
2019/10/3/21:15 修正いたしました。
|
160
198
|
|
161
199
|
現在の状況:ステップ インでは取得したい値が取得てきております。
|
4
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -25,6 +25,8 @@
|
|
25
25
|
### 該当のソースコード
|
26
26
|
|
27
27
|
|
28
|
+
|
29
|
+
```ここに言語を入力
|
28
30
|
|
29
31
|
'変数を必ず定義すると宣言
|
30
32
|
|
@@ -90,13 +92,15 @@
|
|
90
92
|
|
91
93
|
|
92
94
|
|
93
|
-
htmlDoc
|
95
|
+
With htmlDoc
|
94
96
|
|
95
|
-
|
97
|
+
.getElementById("login").Value = "XXXXXXXXXX" 'ユーザー名を指定
|
96
98
|
|
97
|
-
|
99
|
+
.getElementById("pass").Value = "AAAAAAAAAA" 'パスワードを指定
|
98
100
|
|
99
|
-
|
101
|
+
.getElementById("submit").Click
|
102
|
+
|
103
|
+
End With
|
100
104
|
|
101
105
|
|
102
106
|
|
@@ -142,6 +146,8 @@
|
|
142
146
|
|
143
147
|
|
144
148
|
|
149
|
+
```
|
150
|
+
|
145
151
|
|
146
152
|
|
147
153
|
|
3
補足の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -150,4 +150,10 @@
|
|
150
150
|
|
151
151
|
|
152
152
|
|
153
|
+
2019/10/3/21:15 修正いたしました。
|
154
|
+
|
155
|
+
現在の状況:ステップ インでは取得したい値が取得てきております。
|
156
|
+
|
157
|
+
|
158
|
+
|
153
159
|
当方Excel2013を使用しています。
|
2
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -62,15 +62,13 @@
|
|
62
62
|
|
63
63
|
'Internet Exploreを立ち上げる
|
64
64
|
|
65
|
+
Dim objIE As Object 'IEオブジェクト参照用
|
66
|
+
|
65
67
|
Set objIE = CreateObject("InternetExplorer.Application")
|
66
68
|
|
67
69
|
objIE.Visible = True
|
68
70
|
|
69
|
-
|
70
|
-
|
71
|
-
'URLを指定する
|
72
|
-
|
73
|
-
objIE.Navigate
|
71
|
+
objIE.Navigate "http://hogeho.ge/login.php"
|
74
72
|
|
75
73
|
|
76
74
|
|
@@ -82,65 +80,53 @@
|
|
82
80
|
|
83
81
|
Wend
|
84
82
|
|
83
|
+
|
85
84
|
|
86
|
-
|
87
|
-
|
85
|
+
|
88
86
|
|
89
87
|
Dim htmlDoc As HTMLDocument
|
90
88
|
|
91
|
-
Set htmlDoc = objIE.
|
89
|
+
Set htmlDoc = objIE.Document
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
htmlDoc.getElementById("login").Value = "XXXXXXXXXX" 'ユーザー名を指定
|
94
|
+
|
95
|
+
htmlDoc.getElementById("pass").Value = "AAAAAAAAAA" 'パスワードを指定
|
96
|
+
|
97
|
+
htmlDoc.getElementById("submit").Click
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
Do While objIE.Busy = True Or objIE.readyState <> 4
|
104
|
+
|
105
|
+
DoEvents
|
106
|
+
|
107
|
+
Loop
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
Set ieDoc = objIE.Document 'ログイン後のページのHTMLを読み込む
|
112
|
+
|
113
|
+
|
92
114
|
|
93
115
|
|
94
116
|
|
95
|
-
|
117
|
+
For Each obj In ieDoc.getElementsByTagName("table") 'tableタグを一つずつを変数objにセット
|
96
118
|
|
97
|
-
h
|
119
|
+
For Each obj2 In obj.getElementsByTagName("tr") 'trタグを一つずつを変数objにセット
|
98
120
|
|
99
|
-
htmlDoc.getElementById("wp-submit").Click
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
Set htmlDoc = Nothing 'ログインページのHTMLをいったん破棄
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
Call WaitIE(objIE) '画面遷移の待機
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
'ログイン後のページのHTMLを読み込む
|
112
|
-
|
113
|
-
Set htmlDoc = objIE.document
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
'tableタグを一つずつを変数objにセット
|
118
|
-
|
119
|
-
For Each obj In ieDoc.getElementsByTagName("table")
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
'trタグを一つずつを変数objにセット
|
124
|
-
|
125
|
-
For Each obj2 In obj.getElementsByTagName("tr")
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
'行カウンターを1アップ
|
121
|
+
j = j + 1 '行カウンターを1アップ
|
130
|
-
|
131
|
-
j = j + 1
|
132
122
|
|
133
123
|
i = 0
|
134
124
|
|
135
125
|
For Each obj3 In obj2.getElementsByTagName("td")
|
136
126
|
|
137
|
-
|
138
|
-
|
139
127
|
i = i + 1
|
140
128
|
|
141
|
-
'タグのテキスト内容をセルにセット
|
142
|
-
|
143
|
-
Worksheets("Sheet
|
129
|
+
Worksheets("Sheet2").Cells(j, i).Value = obj3.innerText 'タグのテキスト内容をセルにセット
|
144
130
|
|
145
131
|
|
146
132
|
|
@@ -150,21 +136,11 @@
|
|
150
136
|
|
151
137
|
Next
|
152
138
|
|
153
|
-
|
154
|
-
|
155
|
-
|
139
|
+
|
156
140
|
|
157
141
|
End Sub
|
158
142
|
|
159
|
-
Function WaitIE(ByRef objIE As Object)
|
160
143
|
|
161
|
-
Do While objIE.Busy = True Or objIE.readyState <> 4
|
162
|
-
|
163
|
-
DoEvents
|
164
|
-
|
165
|
-
Loop
|
166
|
-
|
167
|
-
End Function
|
168
144
|
|
169
145
|
|
170
146
|
|
1
文法の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ExcelVBAを使って管理画面ログイン後Tableをシートに出力
|
1
|
+
ExcelVBAを使って管理画面ログイン後Tableをシートに出力したい
|
test
CHANGED
File without changes
|