Obj.Busy = Trueを使いHPを読み込むまで待つ方法として
Do While Obj.Busy = True
DoEvents
Loop
がありますがどうもこの記述では完全に待ちきれていない
ようなのです。この後にテキストへの自動入力があり
誤動作しています。
これ以外にHPの読み込みが完了するまで待つ方法を
教えて下さい。お願いします。
Do While Obj.Busy = True
DoEvents
Loop
Do While Obj.Document.ReadyState <> "complete"
DoEvents
Loop
で、どうでしょうか。
ご教授ありがとうございます。
これって以下のやつと同意味ですよね
Do While Obj.Document.ReadyState = 4
DoEvents
Loop
これは試してみたんですがイマイチなんですよ。
何かまちがってますかねぇ
あと当方の作ってるPGはフレーム2画面の
右側画面なんですよ。それでこういう記述に
なってるんですが何かやはりおかしいですか?
Do While Obj.Document.frames(1).Document.ReadyState = 4
DoEvents
Loop
4はcompleteと同じじゃなかったかな。
だから
Do While Obj.Document.ReadyState <> 4
DoEvents
Loop
なのでは?
4はREADYSTATE_COMPLETE定数の値で、Obj.ReadyStateが取る値です。
なので
Do While Obj.ReadyState <> 4
DoEvents
Loop
または
Do Until Obj.ReadyState = 4
DoEvents
Loop
となります。
Obj.Document.ReadyStateが取る値は文字列なので
Do While Obj.Document.ReadyState = 4
DoEvents
Loop
とした場合は、ReadyStateが数値4になることはありませんので
Loopを一度も回りません。
Do While Obj.Document.frames(1).Document.ReadyState = 4
DoEvents
Loop
これも
Do While Obj.Document.frames(1).Document.ReadyState <> "complete"
DoEvents
Loop
または
Do Until Obj.Document.frames(1).Document.ReadyState = "complete"
DoEvents
Loop
ですね。
ReadyStateが"complete"じゃない間Loopするか、"complete"になるまで
Loopする訳です。
書かれていた通りに記述したらちゃんと動作しました。
助かりました。ありがとうございます。当方の勘違いでした。
ツイート | ![]() |