• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DoEventsは意味ない?)

DoEventsは意味ない?

このQ&Aのポイント
  • ObjIE.Refreshで実行エラーが発生 -2147467259
  • Do While ObjIE.Busy = TrueとDoEventsは無意味?
  • ObjIE.LocationNameが表示されない

質問者が選んだベストアンサー

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは。#1、cjです。 遅くなりましたが#1お礼欄へのレスです。 > 組み合わせたものなのでしょうか? はい、その通りです。 最近は、順番に分けて書く人の方が少ないようですし、 組み合わせて書いた方がエラーが出る可能性が低いということもあるようで ひとまとめにして書いた方がいいですね。デメリットはないですから。 説明が不親切でした。言葉足らずですみません。 一応、エラーに備える意味では   On Error Resume Next   Do While ObjIE.Busy = True Or ObjIE.ReadyState <> 4     DoEvents   Loop   On Error GoTo 0 こう↑書く方がベターかも知れません。 それから、 .Busy がTrueでなくなるまで、.ReadyState が"complete"するまで DoEvents しながら待つ、という意味ですから、 DoEvents が、直接IEに何かしら働きかけている訳ではありませんから、 > やはりDoEventsだけでは不十分のようですね。 は Do While ObjIE.Busy = True だけでは不十分です。 ですね。

fwse23a
質問者

お礼

再度ご回答ありがとうございました。 とてもわかりやすかったです!これでエラーにならずに済みます!大変助かりました。 また機会があったらよろしくお願いします。

その他の回答 (1)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。   Do While ObjIE.Busy = True     DoEvents   Loop だけではなくて、   Do Until ObjIE.ReadyState = 4     DoEvents   Loop も加えてみましょう。 大抵は、このふたつセットで使います。 なので、答えとしては、 「...だけでは十分ではない」です。 無意味ってことはないですね。 DoEvents は、この場合3通りの意味を持ちます。 ・制御を渡す・タイムラグを作る・コードの実行を一時停止させる場合のきっかけ それと、事前バインディング(参照設定)してあるなら CreateObjaectを使うのは勿体ないというか 参照設定が無駄になっています。 一応、以下のようにして試してみては如何でしょう。 Sub Re7751771a() ' ' 参照設定 ' ' Microsoft HTML Object Library ' ' Microsoft Internet Controls   Dim ObjIE As InternetExplorer   Set ObjIE = New InternetExplorer      ObjIE.Navigate "http://www.yahoo.co.jp/"   ObjIE.Visible = True      Do While ObjIE.Busy = True Or ObjIE.ReadyState <> 4     DoEvents   Loop   Debug.Print ObjIE.LocationName      Set ObjIE = Nothing End Sub

fwse23a
質問者

お礼

やはりDoEventsだけでは不十分のようですね。   Do Until ObjIE.ReadyState = 4     DoEvents   Loop とセットと覚えます。 DoEventsは ・制御を渡す ・タイムラグを作る ・コードの実行を一時停止させる場合のきっかけ と言う意味があるのですか。 提示して頂いたサンプルコードの、   Do While ObjIE.Busy = True Or ObjIE.ReadyState <> 4     DoEvents   Loop は、   Do While ObjIE.Busy = True     DoEvents   Loop と   Do Until ObjIE.ReadyState = 4     DoEvents   Loop を組み合わせたものなのでしょうか?

関連するQ&A