はじめまして
いつもROMさせていただいております
さっそく質問させていただきます。
^^^^^^^^^^^^^^^^^^^^^^^^^
Sub ieの場合()
Dim ie As New InternetExplorer
ie.Navigate hogehoge
Do Until (ie.ReadyState = READYSTATE_COMPLETE And Not ie.Busy)
DoEvents
Loop
ie.Document.hoge.Value = "hogehoge"
ie.Document.Forms(0).submit
End Sub
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sub WEBブラウザの場合()
With Form1.WebBrowser1
.Navigate hogehoge
Do Until (.ReadyState = READYSTATE_COMPLETE And Not .Busy)
DoEvents
Loop
.Document.hoge.Value = "hogehoge"
.Document.Forms(0).submit
End With
End Sub
^^^^^^^^^^^^^^^^^^^^^^^^^
と、こんなかんじでウェブページを表示させているのですが
ieの場合は submit までスムーズに進んでいくのですが
WEBブラウザの場合 では Busyの判定がおかしいのかページ読み込み前にLoopが終わってしまい
.Document.hoge.Value = "hogehoge" がエラーになってしまうのです。
原因と対処法がありましたらご教示いただけますでしょうか
DocumentCompleteイベントが発生した後で、.Documentプロパティを
操作するようにしてください。それ以前のタイミングでは、文書の解析が
完了していない可能性があります。(要IE6 SP1)
http://www.microsoft.com/japan/developer/library/jptech/MSDNNews/top.htm
》 ドキュメントが完全にダウンロードされると、DownloadCompleteイベントが
》 発生します。この場合でも、そのオブジェクト モデルを通じてドキュメントの内容を
》 管理することは必ずしも安全ではありません。代わりに、DocumentComplete
》 イベントが、すべてが完了し、ドキュメントの準備が整ったことを示します
》(DocumentCompleteは、対象URLに初めてアクセスしたときにだけ届きます。
》F5キーを押すか、[最新の情報に更新(Refresh)]ボタンをクリックした
》2回目以降は、DownloadCompleteイベントだけを受け取ります)。
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/events/DocumentComplete.asp
魔界の仮面弁士さま。大変参考になりました。ありがとうございました。
解決チェックです
ツイート | ![]() |