ボタンオブジェクトを押下すると、次のページに移動するプログラム
を書いております。
dim wbrowser as object
Set wBrowser = CreateObject("InternetExplorer.Application")
’item(11)はボタン
wBrowser.all.Item(11).Click
ここで、 通常なら問題なく次ページに移動するのですが、
メッセージボックスが表示され
「はい・キャンセル」
を選択する、メッセージボックスが表示されるような場合、その前
にIEオブジェクトに制御が移動するようで、最後のクリックした段階で
VB側から制御不能ととなります。
VBのみでメッセージボックスを閉じる方法等
何方か解決策がありましたらお教え下さい。
VBから直接clickメソッドを呼び出してしまうと、clickメソッドの処理内でHTMLのonclickイベントが実行され、ダイアログが表示され、入力待ちになってしまいます。そのためダイアログを閉じない限りclickメソッドから制御が戻ってきません。
以下のような方法で非同期でクリックさせることで回避は可能です。
wBrowser.Document.Script.setTimeout "javascript:document.all.item(11).click()",1000
あるいは別スレッドでクリックさせる等でも大丈夫でしょう。
ardarim 様。ご回答まことにありがとうございます。
当方の質問が悪くて若干迷いましたが、
IEオブジェクトをアクティブにし
sendkeysでエンター
で、思い通りの動作となりました。
ここ数日悩んでおりましたので本当に助かりました。
ありがとうございました