オブジェクト変数または With ブロック変数が設定されていません。
下記の様に組みましたが、下記の★印の所で止まる様な事があります。
毎回止まるわけではないのですが、止まる時に「オブジェクト変数または With ブロック変数が設定されていません。」と表示されますが、
原因は何か?どの様にすればいいのか?など詳しく教えてください。
よろしくお願いします。
Sub test()
Dim objIE As Object
Dim strCOMMENT As String
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "http://"
While objIE.readystate <> 4
While objIE.busy = True
DoEvents
Wend
Wend
Wait_Time = DateAdd("s", 6, Now())
Do While Now() < Wait_Time
DoEvents
Loop
'データをセットする
'htmlドキュメント フォーム(0番目) アイテムに転記(代入)する
objIE.Document.forms(0).Item("username").Value = "11111" objIE.Document.forms(0).Item("password").Value = "11111"
While objIE.readystate <> 4
While objIE.busy = True
DoEvents
Wend
Wend
Wait_Time = DateAdd("s", 6, Now())
Do While Now() < Wait_Time
DoEvents
Loop
objIE.Document.all.subm.Click
While objIE.readystate <> 4
While objIE.busy = True
DoEvents
Wend
Wend
Wait_Time = DateAdd("s", 6, Now())
Do While Now() < Wait_Time
DoEvents
Loop
For Each link In objIE.Document.Links
If link.href = "http://" Then
link.Click
End If
Next
While objIE.readystate <> 4
While objIE.busy = True
DoEvents
Wend
Wend
Wait_Time = DateAdd("s", 6, Now())
Do While Now() < Wait_Time
DoEvents
Loop
'タイトル・コメントの読み込み
strtitle = Sheets("sheet1").Range("k7")
strCOMMENT = Sheets("sheet1").Range("k9")
Application.WindowState = xlMinimized
While objIE.readystate <> 4
While objIE.busy = True
DoEvents
Wend
Wend
Wait_Time = DateAdd("s", 6, Now())
Do While Now() < Wait_Time
DoEvents
Loop
objIE.Document.forms(0).Item("title").Value = strtitle
objIE.Document.forms(0).Item("comment").Value = strCOMMENT
While objIE.readystate <> 4
While objIE.busy = True
DoEvents '
Wend
Wend
Wait_Time = DateAdd("s", 6, Now())
Do While Now() < Wait_Time
DoEvents
Loop
objIE.Document.all.submit.Click
While objIE.readystate <> 4
While objIE.busy = True
DoEvents
Wend
Wend
Wait_Time = DateAdd("s", 6, Now())
Do While Now() < Wait_Time
DoEvents
Loop
'フォーム(0番目)を .Submit(確認) する
objIE.Document.forms(0).getElementsByTagName("input")(11).Click '←★この部分で止まる時があります。
While objIE.readystate <> 4
While objIE.busy = True
DoEvents
Wend
Wend
Wait_Time = DateAdd("s", 6, Now())
Do While Now() < Wait_Time
DoEvents
Loop
For Each link In objIE.Document.Links
If link.href = "http://" Then
link.Click
End If
Next
While objIE.readystate <> 4
While objIE.busy = True
DoEvents
Wend
Wend
Wait_Time = DateAdd("s", 7, Now())
Do While Now() < Wait_Time
DoEvents
Loop
objIE.Quit '.Quitで閉じる
End Sub
お礼
Busy プロパティ readyState プロパティ のご説明ありがとうございます。 orの方がいいようですね。ありがとうございました。