質問: 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 ``` あるいは別スレッドでクリックさせる等でも大丈夫でしょう。