アンケート一覧ページでアンケートを探す

IEでファイルダウンロードするときに出てきたwindowに保存ファイル名を入力して保存ボタンを押すの作業はVBAを使ってマクロ化(自動化)したいです。実現できますか?

補足

”ファイルのダウンロード”ダイヤログboxをコントロールしたいですが Public Const BM_CLICK = &HF5 Public Const WM_ACTIVATE = &H6 Const W_NAME As String = "ファイルのダウンロード" Const B_NAME As String = "保存(&S)" dlg_hwnd = FindWindow("#32770", W_NAME) btn = FindWindowEx(dlg_hwnd, 0&, "Button", B_NAME) Call PostMessage(btn, WM_ACTIVATE, 1&, 0&) Call PostMessage(btn, BM_CLICK, 0&, 0&) どこがまちがっていた?

Visual Basic14,365閲覧xmlns="http://www.w3.org/2000/svg">500

新機能 AI回答テストを実施中! テスト対象カテゴリ:歴史・悩み相談 ※回答がつかない場合は、画面のリロードをお試しください

ベストアンサー

このベストアンサーは投票で選ばれました

NEW! この回答はいかがでしたか? リアクションしてみよう

その他の回答(2件)

結論から言うと、VBAだけでは「簡単には」実現できないようです。少なからずVB側だけでの処理はできかねるので、判断をWindowsOSにて認知してもらうとか、他ツールなどを用いて作業ツール遷移の履歴などを知らせてもらうとかいう処理の類になります。 よって、WindowsOSにて認知してもらう場合には、WindowsAPIを使用することになるので、Windowsの仕組みとかAPI関数とはどういうものなのかも理解していないと、思わぬ場所でエラーが起こった場合、原因発見から解決までに結構な時間を要することにもなりかねません。 sendkeysを用いればいいという意見もあるようですが、この関数の仕様は下記の通りとなります。 「キーボードから入力されたかのように、現在の入力フォーカスのあるウィンドウにデータを送ります。」 フォーカス移動が起こらないようにしなければいけないわけで、何のVBAだかは不明ですが、基本VBAはMicrosoft製品の機能拡張を行うことを目的としたもので、マクロ実装を行ったファイルを起動させている状態かつ、そのファイルで何かしらのイベントをきっかけとして動作するものです。 sendkeysを用いてのIEからのファイルダウンロードウインドウの操作を行うには、sendkeysの仕様上フォーカスをファイルダウンロードウインドウに保持させている状態でなくてはならく、フォーカスを移動させないようなVBAでのイベントを探し、そこにsendkeysを実行しなければならないという事になると思います。当方は残念ながらその方法については存じ上げません。(APIとか使えば可能かもしれませんが、単純に実装できるとは思えません。) 過去に似たような質問をgooのほうでしているようでしたので、ご参考にしてみてください。(他ツールを利用してみるという意見のようでしたが・・・) http://oshiete1.goo.ne.jp/qa4223655.html

sendkeys "c:\aaa.lzh" sendkeys "{enter}" 保存名にパスをつけると、選択窓をその位置にしなくても、書いた場所に保存されます。 ただし、フォルダ名もファイル名も英数字にしないと大変です。