プロが教えるわが家の防犯対策術!

お世話になります。

インターネットエクスプローラを人が操作して、例えば、OKWaveのトップページのロゴを
ダウンロードする場合には、
 ロゴを右クリックしてメニューを出し、
 "対象をファイルに保存(&A)..."を選択・実行、
 「ファイルのダウンロード」、「名前を付けて保存」のダイアログが出て、
 所望のフォルダ(C:\temp\)、所望のファイル名(logo.gif)を設定して保存
の手順でダウンロードすることができます。

VBAでの処理では、URLDownloadToFile等で、urlを指定してダウンロードができますが、
人が操作した場合と同様に、「ファイルのダウンロード」等のダイアログを表示して処理する、
というのは可能でしょうか?

1.ページを表示(.navigate)
2.対象のリンクをフォーカス(.focus)
3.右クリックメニューの"対象をファイルに保存(&A)..."を実行

3.については、sendkeys"+{F10}"とsendkeys"a"可能ですが、これは避けたいです。

右クリックメニューのコマンドの実行に関して、invokeverbでプレビューなどができるので、
同様に、ページ内のリンクにフォーカスして右クリックのメニューのコマンドを実行する方法がないかと探しています。

ご存知の方がおられましたら、ご教示の程、よろしくお願いいたします。

A 回答 (1件)

invokeverbはWindows.Shellオブジェクト用に公開されたAPIで、


IEオブジェクトには無いと思います。
同様の機能をやりたいなら、保存先のフォルダー・ファイル名を選択させる部分を別サブルーチンとしてダイアログ表示を行って先に取得した上で、「URLDownloadToFile」を使えばよいのでは。
フォルダー・ファイル名の選択ダイアログはいろいろありますね。
-"FileSystemObject"とか
-"Shell.Application"のBrowseForFolder()とか
-"WScript.Shell"でexplorer.exeをrunとか
-VBAならApplication.GetOpenFilename()が一番簡単?
    • good
    • 0
この回答へのお礼

ご意見、ありがとうございます。

>invokeverbはWindows.Shellオブジェクト用に公開されたAPIで、
>IEオブジェクトには無いと思います。

ある程度、この結論に達した状態での質問でしたので、スッキリしました。ご教示いただいたダイアログにについても色々と試したいと思います。

お礼日時:2009/07/14 23:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!