こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

AccessVBAでIEを操作、ページ内のリンク先を"対象をファイルに保存(&A)..."する

お世話になります。

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

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

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

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

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

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

投稿日時 - 2009-07-12 20:30:33

QNo.5120216

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

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

投稿日時 - 2009-07-13 20:29:14

お礼

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

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

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

投稿日時 - 2009-07-14 23:12:22

あなたにオススメの質問