![](/images/icon-jinriki-mob.png)
http://q.hatena.ne.jp/1248657374
上記記事のNo.3のコードを参考にして、VBAから開いたIEを制御し、Webサイト上で
開かれたJavascriptのconfirmポップアップを自動処理するコードを作成していた
のですが、特定の端末でその処理がうまくいっていないことが判明しました。
条件ははっきりしていないのですが、どうもIE9を使用している端末では
GetLastActivePopupでconfirmポップアップのウインドウハンドルが取得できず
親ウインドウのハンドルがかえっているためにループしているようでした。
質問はこうした場合にconfirmポップアップのウインドウハンドルを得る
他の手段がないかという点になります。
また、IE9であっても問題なく上記コードを動作させることができるようであれば、
どの辺りに問題の原因があるのかを特定したいと思っています。
・補足1
とりあえずIEのメジャーバージョンを見て9だったら
FindWindow("#32770", "Web ページからのメッセージ")
でウインドウハンドルを取得するようにしました。
ただ、これだとIE10以降で動作する保証がないので、
他にクールな処理の仕方を継続募集します。
・補足2
改めて確認してみるとどうもGetLastActivePopupが失敗
するのはIEというよりOS要因である可能性があるようです。
今のところ確認ができている条件は
WindowsXP/IE8:成功
Windows7(32bit)/IE8:失敗
Windows7(32bit)/IE9:失敗
となります。
再現条件がはっきり特定できていない状況で恐縮ですが、
引き続きconfirmポップアップのウインドウハンドル取得
方法について募集します。