ダイアログボックスをクリックしたい 削除
Message#1 2014年11月26日(水)08時04分 From: ゴリゴリ |
いつもお世話になっております。 エクセルVBAでIE制御についてです。 環境はWIN7、IE 9or11とエクセル2010です。 あるページのリンクをクリックすると、 WEBからのメッセージというダイアログボックスが出てきて、 続行しますか? はい いいえ を聞かれます。 その「はい」をVBAで押したいのですが、 sendkeysメソッドで押そうとしてもうまくいきません。 以下に記載したサイトのOKボタンを押すと出てくるものです。 http://kamicha1.web.fc2.com/Excel/Test20090726.html 以下が書いたコードです。 Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long) Sub test() Dim ie As Object Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "http://kamicha1.web.fc2.com/Excel/Test20090726.html" Do While ie.Busy Or ie.readyState < 4 DoEvents Loop ie.document.getElementsByClassName("bt2")(0).Click '-ここで止まる Sleep 2000 SendKeys "{Enter}" End Sub ステップ実行していくと、ここで止まると書いた所で、 IE上にダイアログは表示されるのですが、 それ以上ステップ実行ができなくなってしまいます。 ダイアログを自分でOKかキャンセルで消すと続きが動くようになります。 その間はVBEはビジー状態となり操作できません。 そのためそれ以降のsendkeysメソッドに たどり着けない状況かと思われます。 いろいろ調べたところIE8以降はダイアログボックスは IEから出ているのではなくOS?から出ているとの事でした。 上記のサイトはHTML本体にjavaスクリプトが記載されており、 それをVBAから操作すればどうにかOKボタンが押せるらしいのですが、 自分が操作したいページにはそれらしき記載がありませんでした。 対象のアンカータグは <a herl=URL 中略 data-comfirm=続行しますか? > のような感じで記載がありました。 完全に煮詰まっております。 自動でOKをクリックするかEnterキーでOKを押すでも構いません。 どうかご教授お願いいたします。 |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。