• 締切済み

ダウンロードダイアログをVBAから操作するには?

1050 円(@1050YEN)の回答

回答No.1

確かXPのSPの状況によって、ダウンロードダイアログの出方が異なったと思います。 さらにOS別を考慮すると、さらにパターンが増えます。 個別のSendKeysパターンを網羅するプログラムを組むか、WM_COMMANDでOKボタンを押させる必要があると思います。 http://okwave.jp/kotaeru.php3?q=199357

oldhacker
質問者

補足

ご回答ありがとうございます。 対象OSは限定ですので(XP SP2) やれるならsendkeysでやろうと思っています。 sendkeysを送るタイミングも不明で、 busyを検知しておけばいいかと思ったら、 ダウンロードダイアログが表示してる間はbusyの ようで状況把握を何のプロパティで確認すれば よいかわかりません。

関連するQ&A

  • ファイルのダウンロードで、ダイアログを出したくない

    Firefox で <input type=submit name=F868 value="注文伝票ダウンロード"> の場所をクリックすると、気持良く何も表示せずに ダウンロードが完了します。 一方、IE(Internet Explorer)では、2つのダイアログボックスが現れます。 1個目は、「ファイルのダウンロード」ダイアログで、   開く(Q)   保存(S)   キャンセル を選択します。(ここで保存を選択します。) 2個目は、「名前を付けて保存」ダイアログで、   デスクトップ に B1307599492-1.html などの名前で「保存」します。 この名前は、自動で表示されます。 IE でも、気持良く何も表示せずにダウンロードが できるようにするには、どうしたら良いのでしょうか?

  • ファイルのダウンロード

    OS:Win2000 ブラウザ:IE6.0の環境です HP上にあるファイルをダウンロードしようとする場合、 ほとんどのものが、「ファイルのダウンロード」ダイアログが表示され、保存先を指定できるのですが、 拡張子が「*.ini」のものだけが、エディタ(メモ帳)が開いてしまいます。 他のファイルと同様に保存先を指定したいのです。 IE等の設定がおかしいのでしょうか?

  • VBAでIEで開いたダイアログのオブジェクトの操作

    VBAでIE(Edge)上のWebページのエディットボックスやボタンを操作するには、 ie(COMオブジェクト)を取得して、 For Each obj In ie.document.getElementsByTagName("input")  If obj.ID = "txtDenpyoNo" Then   obj.Value = d_no   Exit For  End If Next For Each obj In ie.document.getElementsByTagName("input")  If obj.ID = "btnSearch" Then   obj.Click   Exit For  End If Next というような感じで、 エディットボックスに値を入れたり取得したり ボタンをクリックしたりする仕方は分かりましたが、 サイト上のボタンをクリックすると、 別のウインドウやダイアログが表示されることがあります。 このような場合、HTMLコードがないため、 上記の方法では記述することができません。 新しいウインドウやダイアログのタイトルから、 IDは取得することはできましたが、この取得したIDで、 ウインドウやダイアログをアクティブにするには、 どのように記述すればよいのでしょうか。 また、ウインドウやダイアログ上のオブジェクトの 指定の仕方がよく分からないのですが、 ウインドウやダイアログ上のオブジェクトを操作するには、 どのように記述をすればよいのでしょうか。 よろしくお願いします。(Windows10,IE,Edge)

  • ダウンロードのダイアログが出ない

    最近突然、インターネットでファイルをダウンロードしようとすると (保存や実行などの)確認のダイアログが出なくてダウンロードできずに困っています。 例外にダイアログが出るときもあり、その時でさえ「保存」や「実行」を押しても数秒ほど止まって結局ダイアログが閉じられ、ダウンロードができません。 しかし、右クリックを押して「対象をファイルに保存」を実行するとダウンロードできるのです。 普段はDonut RAPTを使って、Internet Explorer8を使ってみましたが同じようにダウンロードできませんでした。 パソコンはWindows XP Professionalです。 ダウンロードできなくなる前に特別した大きなことはないと思います。 一時ファイルを削除したり、ファイアーウォールを無効にしたりしてみましたが、変わりませんでした。

  • VBA IEを操作。ファイルダウンロード

    IEを操作して、ファイルをダウンロードしようと思います。 色んなサイトからとってきて、使わせてもらっています。 '---------------------------------IEを開くときに使う Sub IE_OPEN(webUrl As String) Dim objShell Dim writesheet As Worksheet Dim n As Long Dim ID As String, Password As String Set objShell = CreateObject("Shell.Application") Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate2 webUrl Do While ie.Busy Or ie.readyState <> 4 DoEvents Loop Dim objINPUT Set objINPUT = ie.document.getElementsByTagName("INPUT") 'ループで頭からテキストが 次へ を探す For n = 0 To objINPUT.Length - 1 '※ type="submitボタンなので、.InnerTextじゃなくて、.Valueです ※※注意 If InStr(objINPUT(n).Value, "ログイン") > 0 Then '文字列の中から見つけたら Worksheets("Sheet1").Activate Do While ie.Busy Loop objINPUT(n).Click '見つけたINPUTタグのオブジェクトをクリック Do While ie.Busy Loop Exit For End If Next Set objINPUT = Nothing 'オブジェクト変数解放 End Sub '------------------------------IEを開く(この段階では既に開いてあります。) Private Sub CommandButton1_Click() Do While ie.Busy Or ie.readyState <> 4 DoEvents Loop ie.document.all.ah_ehName.Value = Me.ComboBox1.List(Me.ComboBox1.ListIndex) 'ID Do While ie.Busy Loop Dim objINPUT Dim n As Long Set objINPUT = ie.document.getElementsByTagName("INPUT") For n = 0 To objINPUT.Length - 1 If InStr(objINPUT(n).Value, "ダウンロード") > 0 Then objINPUT(n).Click Do While ie.Busy Loop Exit For End If Next Do While ie.Busy = True DoEvents Loop SendKeys "%S", True'保存 Do While ie.Busy = True DoEvents '何もしないループ(笑) Loop SendKeys "%O",True'ファイルを開く? Do While ie.Busy = True DoEvents Loop 'ie.Quit End Sub ’==================- 面倒なので、IEはPublic変数として モジュールに書いています。 (色んなモジュールを経由する必要があるため、このような手段を取りました) SendKeysをIEに送るというのが出来ずに困っています。 ダウンロードというボタンを押してのダウンロードなので、 ダウンロード用のURL等は分かりません。 Excel2003を使っています。 どうにかSendkeysで出来ないでしょうか? もしくは、もう少し分かりやすい方法は無いでしょうか。 (ファイルを保存しますか?のダイアログの「保存」をクリックして  所定の場所におき、開きたい。 そのまま開くのでもいいけれど、動作が不安定になるのは困る) 以上、よろしくお願い致します。

  • ダウンロードの際のダイアログについて

    IEを使用しています。今まで動画をダウンロードする時、右クリック後に「このファイルを開くか、保存するか」といったダイアログ表示がありました。先日、「この種類のファイルであれば常に警告する」というチェックを誤って外してしまいました。すると今まで表示されていたダイアログがでてこなくなり、勝手にダウンロードが始めってしまう状態になってしまいました。再度、表示させるにはどのようにしたらいいのでしょうか?教えてください。

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

    お世話になります。 インターネットエクスプローラを人が操作して、例えば、OKWaveのトップページのロゴを ダウンロードする場合には、  ロゴを右クリックしてメニューを出し、  "対象をファイルに保存(&A)..."を選択・実行、  「ファイルのダウンロード」、「名前を付けて保存」のダイアログが出て、  所望のフォルダ(C:\temp\)、所望のファイル名(logo.gif)を設定して保存 の手順でダウンロードすることができます。 VBAでの処理では、URLDownloadToFile等で、urlを指定してダウンロードができますが、 人が操作した場合と同様に、「ファイルのダウンロード」等のダイアログを表示して処理する、 というのは可能でしょうか? 1.ページを表示(.navigate) 2.対象のリンクをフォーカス(.focus) 3.右クリックメニューの"対象をファイルに保存(&A)..."を実行 3.については、sendkeys"+{F10}"とsendkeys"a"可能ですが、これは避けたいです。 右クリックメニューのコマンドの実行に関して、invokeverbでプレビューなどができるので、 同様に、ページ内のリンクにフォーカスして右クリックのメニューのコマンドを実行する方法がないかと探しています。 ご存知の方がおられましたら、ご教示の程、よろしくお願いいたします。

  • ファイルのダウンロードダイアログがでない

    ブラウザ(IE7)からzipファイルをクリックした際にファイルのダウンロードを確認するダイアログが表示されず、「Temporary Internet Files」に自動的に保存されてしまいます。 最初は確認のダイアログが出ていたのですが、あるときから突然でなくなってしまいました。 どのような設定をすると元に戻せるのでしょうか?

  • ダウンロードダイアログについて

    ダウンロードダイアログ表示を、キャンセルした場合のみ(保存or開くの場合は無し)他のファイルのダウンロードダイアログを表示させるJavascriptの具体的な内容を教えてくれませんか。

  • ダウンロード時にダイアログが表示されなくなった

    vectorでソフトをダウンロードする時に、保存場所を指定するダイアログが 表示されるのですが、 ダイアログの中にあったチェックボックスに間違って チェックを入れてから、 ダイアログが表示されず、いきなりダウンロードしてしまいます。 保存場所はなぜか「Temporary Internet Files」です。 解決方法をご存知の方、教えてください。 よろしくお願いいたします。