人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBで、IEオブジェクトを使用し、あるページを表示し、 その中の
ボタンオブジェクトを押下すると、次のページに移動するプログラム
を書いております。
dim wbrowser as object
Set wBrowser = CreateObject("InternetExplorer.Application")
’item(11)はボタン
wBrowser.all.Item(11).Click

ここで、 通常なら問題なく次ページに移動するのですが、

メッセージボックスが表示され
「はい・キャンセル」
を選択する、メッセージボックスが表示されるような場合、その前
にIEオブジェクトに制御が移動するようで、最後のクリックした段階で
VB側から制御不能ととなります。

VBのみでメッセージボックスを閉じる方法等
何方か解決策がありましたらお教え下さい。

●質問者: keir1z
●カテゴリ:コンピュータ インターネット
✍キーワード:ALL application as Click IE
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ardarim
●500ポイント ベストアンサー

VBから直接clickメソッドを呼び出してしまうと、clickメソッドの処理内でHTMLのonclickイベントが実行され、ダイアログが表示され、入力待ちになってしまいます。そのためダイアログを閉じない限りclickメソッドから制御が戻ってきません。


以下のような方法で非同期でクリックさせることで回避は可能です。

wBrowser.Document.Script.setTimeout "javascript:document.all.item(11).click()",1000

あるいは別スレッドでクリックさせる等でも大丈夫でしょう。

◎質問者からの返答

ardarim 様。ご回答まことにありがとうございます。

当方の質問が悪くて若干迷いましたが、

IEオブジェクトをアクティブにし

sendkeysでエンター

で、思い通りの動作となりました。


ここ数日悩んでおりましたので本当に助かりました。

ありがとうございました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ