WebBrowserについて教えてください。
WebBrowserを利用してホームページのボタンをクリックしたりコンボボックスを選択したりするプログラムを作っています、(悪用はしてません)
プログラム自体は問題なくボタンのクリックやコンボイボックスの選択はできるのですがタイミングが難しくて困っています、対象となるホームページが読み込まれる前にクリックなどのプログラムが実行されてしまいエラーなどになってしまいます。"WebBrowser_DocumentComplete"、"WebBrowser_NavigateComplete2"などの終了を取得してプログラムを実行してもうまく行きません、現在は10秒の空ループをいれて何とか動いていますが、なにか他に方法はないのでしょうか?宜しくお願いします。
WebBrowser_DocumentComplete
の処理はどのようにしてますか?
M's 回答ありがとうございます。
----------------------------------
Private DocCompURL as String
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
DocCompURL = URL
End Sub
----------------------------------
DocCompURL = ""
WebBrowser1.Navigate "http://www.*****"
ブラウザをナビゲートする前に"DocCompURL"を空にしておき、その後
Do While Len(DocCompURL)=0
DoEvent
Loop
でループを抜けています。
本当はDocCompURL="http://www.*****"としたかったのですが
WebBrowser1_DocumentCompleteから取得できるURLは私の指定したURLとは違うものが入ってきますのでとりあえず長さだけで求めています。
>Do While Len(DocCompURL)=0
> DoEvents
>Loop
この処理が終わった時点で、すべて読み込まれていないのでしょうか?
M'sさんコメントありがとうございます、実は書き忘れたのですが
DocumentCompleteには3つのURLが発生していました、上記のプログラムでは取れなくてあたりまえです。
ここに投稿しているうちに考えがまとまってきて自己解決できました。
どうしたかというと、必ず読み込まれた後にNameがなくてはSelect=Trueができないので外部でFunctionを作りDocument.all.itemを欲しいNameが見つかるまで何度もLoopで見つけに行かせるFunctionを作り解決できました、M'sさんありがとうございました。
ツイート | ![]() |