質問編集履歴

2

エラーが回避できたが、いぜんとしてクリックはできないため

2021/05/18 14:02

投稿

abcdefg12345
abcdefg12345

スコア1

test CHANGED
File without changes
test CHANGED
@@ -82,9 +82,155 @@
82
82
 
83
83
 
84
84
 
85
+ '開始(submit)をクリック
86
+
87
+ For Each objTag In objIE.document.getElementsByClassName("btn btn-big btn-primary")
88
+
89
+
90
+
91
+ If InStr(objTag.outerHTML, "開始") > 0 Then
92
+
93
+
94
+
95
+ '送信ボタンクリック
96
+
97
+ objTag.Click
98
+
99
+
100
+
101
+ 'IEが完全表示されるまで待機
102
+
103
+ Call ieCheck(objIE)
104
+
105
+
106
+
107
+ 'ループ脱出
108
+
109
+ Exit For
110
+
111
+
112
+
113
+ End If
114
+
115
+ Next
116
+
117
+
118
+
119
+ End Sub
120
+
121
+
122
+
123
+ Sub ieCheck(objIE As InternetExplorer)
124
+
125
+
126
+
127
+ Dim timeOut As Date
128
+
129
+
130
+
131
+ timeOut = Now + TimeSerial(0, 0, 20)
132
+
133
+
134
+
135
+ Do While objIE.Busy = True Or objIE.readyState <> 4
136
+
137
+ DoEvents
138
+
139
+ Sleep 1
140
+
141
+ If Now > timeOut Then
142
+
143
+ objIE.Refresh
144
+
145
+ timeOut = Now + TimeSerial(0, 0, 20)
146
+
147
+ End If
148
+
149
+ Loop
150
+
151
+
152
+
153
+ timeOut = Now + TimeSerial(0, 0, 20)
154
+
155
+
156
+
157
+ Do While objIE.document.readyState <> "complete"
158
+
159
+ DoEvents
160
+
161
+ Sleep 1
162
+
163
+ If Now > timeOut Then
164
+
165
+ objIE.Refresh
166
+
167
+ timeOut = Now + TimeSerial(0, 0, 20)
168
+
169
+ End If
170
+
171
+ Loop
172
+
173
+
174
+
175
+ End Sub
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+ 以下の、質問のエラーは回避できたので、上記に
186
+
187
+ 新しい問題を記載します。以下は読み飛ばしてください。
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+ ### 該当のソースコード
198
+
199
+
200
+
201
+ ```ここに言語名を入力
202
+
203
+ ソースコード
204
+
205
+ ```
206
+
207
+ Sub MySub()
208
+
209
+
210
+
211
+ Dim objIE As InternetExplorer
212
+
213
+ Dim objTag As Object
214
+
215
+
216
+
217
+ 'IE(InternetExplorer)のオブジェクトを作成する
218
+
219
+ Set objIE = CreateObject("InternetExplorer.Application")
220
+
221
+
222
+
223
+ objIE.Visible = True
224
+
225
+ objIE.Navigate "https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" '管理画面ページのURLを指定
226
+
227
+
228
+
229
+
230
+
85
231
  '始業(submit)をクリック
86
232
 
87
- For Each objTag In objIE.document.getElementsByClassName("btn btn-big btn-primary")
233
+ For Each objTag In objIE.document.getElementsByClassName("btn btn-big btn-primary") →ここでエラーが発生する
88
234
 
89
235
 
90
236
 
@@ -120,152 +266,6 @@
120
266
 
121
267
 
122
268
 
123
- Sub ieCheck(objIE As InternetExplorer)
124
-
125
-
126
-
127
- Dim timeOut As Date
128
-
129
-
130
-
131
- timeOut = Now + TimeSerial(0, 0, 20)
132
-
133
-
134
-
135
- Do While objIE.Busy = True Or objIE.readyState <> 4
136
-
137
- DoEvents
138
-
139
- Sleep 1
140
-
141
- If Now > timeOut Then
142
-
143
- objIE.Refresh
144
-
145
- timeOut = Now + TimeSerial(0, 0, 20)
146
-
147
- End If
148
-
149
- Loop
150
-
151
-
152
-
153
- timeOut = Now + TimeSerial(0, 0, 20)
154
-
155
-
156
-
157
- Do While objIE.document.readyState <> "complete"
158
-
159
- DoEvents
160
-
161
- Sleep 1
162
-
163
- If Now > timeOut Then
164
-
165
- objIE.Refresh
166
-
167
- timeOut = Now + TimeSerial(0, 0, 20)
168
-
169
- End If
170
-
171
- Loop
172
-
173
-
174
-
175
- End Sub
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
-
184
-
185
- 以下の、質問のエラーは回避できたので、上記に
186
-
187
- 新しい問題を記載します。
188
-
189
-
190
-
191
-
192
-
193
-
194
-
195
-
196
-
197
- ### 該当のソースコード
198
-
199
-
200
-
201
- ```ここに言語名を入力
202
-
203
- ソースコード
204
-
205
- ```
206
-
207
- Sub MySub()
208
-
209
-
210
-
211
- Dim objIE As InternetExplorer
212
-
213
- Dim objTag As Object
214
-
215
-
216
-
217
- 'IE(InternetExplorer)のオブジェクトを作成する
218
-
219
- Set objIE = CreateObject("InternetExplorer.Application")
220
-
221
-
222
-
223
- objIE.Visible = True
224
-
225
- objIE.Navigate "https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" '管理画面ページのURLを指定
226
-
227
-
228
-
229
-
230
-
231
- '始業(submit)をクリック
232
-
233
- For Each objTag In objIE.document.getElementsByClassName("btn btn-big btn-primary") →ここでエラーが発生する
234
-
235
-
236
-
237
- If InStr(objTag.outerHTML, "開始") > 0 Then
238
-
239
-
240
-
241
- '送信ボタンクリック
242
-
243
- objTag.Click
244
-
245
-
246
-
247
- 'IEが完全表示されるまで待機
248
-
249
- Call ieCheck(objIE)
250
-
251
-
252
-
253
- 'ループ脱出
254
-
255
- Exit For
256
-
257
-
258
-
259
- End If
260
-
261
- Next
262
-
263
-
264
-
265
- End Sub
266
-
267
-
268
-
269
269
 
270
270
 
271
271
  エラーが発生する理由は、引用しているソースコードがおかしいからでしょうか?

1

エラーが回避できたが、いぜんとしてクリックはできないため

2021/05/18 14:02

投稿

abcdefg12345
abcdefg12345

スコア1

test CHANGED
File without changes
test CHANGED
@@ -6,6 +6,194 @@
6
6
 
7
7
 
8
8
 
9
+ 問題
10
+
11
+ エラーは出ないが、クリックもできていない
12
+
13
+
14
+
15
+ Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
16
+
17
+
18
+
19
+ Sub MySub()
20
+
21
+
22
+
23
+ Dim objIE As InternetExplorer
24
+
25
+ Dim objTag As Object
26
+
27
+
28
+
29
+ Dim win As Object
30
+
31
+ Dim winshell As Object
32
+
33
+ Set winshell = CreateObject("Shell.Application")
34
+
35
+
36
+
37
+ 'IE(InternetExplorer)のオブジェクトを作成する
38
+
39
+ Set objIE = CreateObject("InternetExplorer.Application")
40
+
41
+
42
+
43
+ objIE.Visible = True
44
+
45
+ objIE.navigate "https://SSSSSSSSSSSSSSSSSSSSSSSS" '管理画面ページのURLを指定
46
+
47
+
48
+
49
+
50
+
51
+ '■シェルオブジェクトを使用し、IEを再度掴みなおす。
52
+
53
+ For Each win In winshell.Windows
54
+
55
+ If win.Name = "Internet Explorer" Then
56
+
57
+ Set objIE = win
58
+
59
+ Exit For
60
+
61
+ End If
62
+
63
+ Next
64
+
65
+
66
+
67
+ '■IE読み込み表示待ち
68
+
69
+ Do While objIE.Busy = True
70
+
71
+ DoEvents
72
+
73
+ Loop
74
+
75
+ Do While objIE.readyState <> READYSTATE_COMPLETE
76
+
77
+ DoEvents
78
+
79
+ Loop
80
+
81
+
82
+
83
+
84
+
85
+ '始業(submit)をクリック
86
+
87
+ For Each objTag In objIE.document.getElementsByClassName("btn btn-big btn-primary")
88
+
89
+
90
+
91
+ If InStr(objTag.outerHTML, "開始") > 0 Then
92
+
93
+
94
+
95
+ '送信ボタンクリック
96
+
97
+ objTag.Click
98
+
99
+
100
+
101
+ 'IEが完全表示されるまで待機
102
+
103
+ Call ieCheck(objIE)
104
+
105
+
106
+
107
+ 'ループ脱出
108
+
109
+ Exit For
110
+
111
+
112
+
113
+ End If
114
+
115
+ Next
116
+
117
+
118
+
119
+ End Sub
120
+
121
+
122
+
123
+ Sub ieCheck(objIE As InternetExplorer)
124
+
125
+
126
+
127
+ Dim timeOut As Date
128
+
129
+
130
+
131
+ timeOut = Now + TimeSerial(0, 0, 20)
132
+
133
+
134
+
135
+ Do While objIE.Busy = True Or objIE.readyState <> 4
136
+
137
+ DoEvents
138
+
139
+ Sleep 1
140
+
141
+ If Now > timeOut Then
142
+
143
+ objIE.Refresh
144
+
145
+ timeOut = Now + TimeSerial(0, 0, 20)
146
+
147
+ End If
148
+
149
+ Loop
150
+
151
+
152
+
153
+ timeOut = Now + TimeSerial(0, 0, 20)
154
+
155
+
156
+
157
+ Do While objIE.document.readyState <> "complete"
158
+
159
+ DoEvents
160
+
161
+ Sleep 1
162
+
163
+ If Now > timeOut Then
164
+
165
+ objIE.Refresh
166
+
167
+ timeOut = Now + TimeSerial(0, 0, 20)
168
+
169
+ End If
170
+
171
+ Loop
172
+
173
+
174
+
175
+ End Sub
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+ 以下の、質問のエラーは回避できたので、上記に
186
+
187
+ 新しい問題を記載します。
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
9
197
  ### 該当のソースコード
10
198
 
11
199