- 締切済み
WebBrowserのダウンロードダイアログ処理
はじめまして。 Excel VBAのWebBrowserを使用して自動ダウンロードを行いたいと考えております。 【内容】 WebBrowserにて対象のWebページを表示し、ボタンをクリック(自動)後にダウンロードダアログの表示まではできたのですが、処理がダイアログを表示させた時点で止まってしまい、DoEventsを入れても(FindWindowなどの後処理まで)進みません。 ダイアログをキャンセルすると処理は進みます。また、IE起動で同じダイアログを表示させ、マクロを動かすと正常にダイアログを認識できます。 WebBrowserではなくマクロでIE起動させれば良いかとは思いますが、疑問が残ったまま進めたくないこともあり、質問させていただきました。 ご存知の方、ご教授戴けないでしょうか。 【環境】 IE8、Excel2000、OS:XP SP3
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kumatti1
- ベストアンサー率60% (73/121)
回答No.2
(多分、お分かりだと思いますが)クリックするコードの前にタイマーをセットして、 > m_timerid = SetTimer(0, 0, 0, AddressOf TimerProc) そしたらダイアログを表示するタイミングでコールバックが呼ばれますので、タイマーを止めて > KillTimer 0, idEvent そこでハンドルをAPIで得ます。
- kumatti1
- ベストアンサー率60% (73/121)
回答No.1
(IEだと通用しませんが)WebBrowserなら、 SetTimer APIのコールバックでハンドルを得る様にしたらどうですか。FindWindowで。
お礼
ありがとうございます。 >FindWindowで FindWindow処理は組んでいるのですが、それだけではダメということでしょうか? >SetTimer APIのコールバックでハンドルを得る 使ったコトはないのですが、調べて試してみます。 完全に行き詰まっていたため、助かります。 ご回答ありがとうございました。