![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
IE上に表示されたイメージアイコンをクリックすると、図に示す画面が現われます。
これをVBA制御により「名前を付けて保存」ボタンを押したいのですがうまくいかずご教授頂きたいです。
(なお、恐縮ながらSendkeysを利用する方法は求めておりません。また、こちら社内システムででてくる画面であるためリンクを示すことができません、申し訳ございませんがご理解願います。)
質問は↑につきますが、やってみたこと①②について補足で示します。
①SendMessageを利用する場合
https://oshiete.goo.ne.jp/qa/1809850.html
→コピペでやりたいことにかなり近いことができましたが、「開く(O)」ボタンを押してしまっています。若干理解不足ではありますが、このソースでは、「名前を付けて保存」、又は「保存」という記述しかないのに、なぜ「開く」ボタンが押さる挙動となるのかわかっていません。
②UIAutomationを利用する場合
https://oshiete.goo.ne.jp/qa/9622324.html
→エラーがでてしまい、うまくボタンをおすところまで行きませんでした。
わからないなりにUIAutomation関連の知識を入れながらパラメータを変えての試行錯誤しましたがギブアップです。うまくボタンをとらえることができません。(いや、知識不足がかなり大きいです。。)
こちらは、以前「通知バー」制御に関する投稿させて頂いた内容で、うまくいった経緯があること、また、「名前を付けて保存」ボタンが押下が成功したら、後の「名前を付けて保存ダイアログボックス」制御がそのまま利用できそうなので試してみた次第です。
![「VBA IE ダウンロード ダイアログ制」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/6/542487217_58cece5d1b177/M.png)
No.1ベストアンサー
- 回答日時:
こんな感じですかね。
---
Option Explicit
'参照設定 UIAutomationClient
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr
Sub hoge()
Dim o As IUIAutomation
Dim e As IUIAutomationElement
Set o = New CUIAutomation
Dim h As LongPtr
h = FindWindowEx(0, 0, "#32770", "Internet Explorer")
If h = 0 Then Exit Sub
Set e = o.ElementFromHandle(ByVal h)
Dim iCnd As IUIAutomationCondition
iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "名前を付けて保存(A)")
Dim Button As IUIAutomationElement
Button = e.FindFirst(TreeScope_Subtree, iCnd)
Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke
End Sub
ありがとうございます!
大変感謝しています。
下記、Set iCnd ,Set Buttonに修正して完璧でした。
iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "名前を付けて保存(A)")
Button = e.FindFirst(TreeScope_Subtree, iCnd)
別件でもう一つUIAutomation関連で質問をする予定ですのでよろしければお願いします。
通知バーAutomation処理、反応が遅い場合があり改善したいというものです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Excel(エクセル) アンケート集計用VBAについて教えて下さい。 約100人にアンケート内容が入ったExcelファイルを 1 2022/07/27 13:12
- 写真・ビデオ Snowの写真保存について 1 2023/04/06 07:29
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Word(ワード) Wordのデータが毎回破損してしまう 1 2022/08/24 11:30
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- Word(ワード) Word のマクロについての質問です。 ボタンを押すと登録したブックマーク先にジャンプする機能(リン 3 2023/08/16 12:17
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
vbaでIEの名前を付けて保存(A)をしたい
Microsoft ASP
-
ダウンロードダイアログをVBAから操作するには?
Visual Basic(VBA)
-
IEのダウンロード通知バーのVBA制御(保存他)
Visual Basic(VBA)
-
-
4
VBA IE操作でダイアログ表示後、ファイルを開くボタンが押下できない
Visual Basic(VBA)
-
5
ExcelVBAでリンク先の対象のファイルを保存
Visual Basic(VBA)
-
6
VBAでIEのファイルを自動的にダウンロードしたい
Visual Basic(VBA)
-
7
VBAでIEを操作、ポップアップされた画面の処理(Enter)を行いたい
Visual Basic(VBA)
-
8
VBA URLDownloadToFileについて
Visual Basic(VBA)
-
9
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
10
IE操作時、ファイルのダウンロードボタンの押下
Visual Basic(VBA)
-
11
WEBページからのメッセージをVBAで
Visual Basic(VBA)
-
12
VBA IE通知バーの制御 バー内のボタン 開く/保存/キャンセルを押す
Visual Basic(VBA)
-
13
VBAでIEの「ファイルのダウンロード」ダイアログを制御
Visual Basic(VBA)
-
14
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
15
ExcelVBAでスペースキー操作したい
Excel(エクセル)
-
16
VBA ログイン後csvファイルをダウンロードする
Excel(エクセル)
-
17
AddressOf と同じ機能を持ったコードをシートモジュールで記載する方法はありますでしょうか?
Visual Basic(VBA)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
19
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
VB.net でトグルボタンを実現し...
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAで多数のプログラムを一つの...
-
プロシージャからイベントをコ...
-
ASP.Net ラベルの内容をすぐに...
-
ボタン(コントロール)を丸くしたい
-
セルをマクロのボタンにしたい。
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
Excel マクロ 閉じるボタン
-
Button(コントロール)を半透明...
-
VBA でのボタンの移動について
-
ボタンをマウスで押し続けたと...
-
コマンドボタンの長押し
-
VBA ユーザーフォームラベルキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
フォームの再読み込み
-
Excel VBA Application.caller...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
ボタンをマウスで押し続けたと...
-
コマンドボタンやイメージにマ...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
[VB.net] ボタン(Flat)のEnable...
-
VB.net でトグルボタンを実現し...
-
閉じると「+」になり開くと「-...
-
Excel マクロ 閉じるボタン
-
C#プログラムで、ボタンをショ...
-
VBAで多数のプログラムを一つの...
-
ASP.Net ラベルの内容をすぐに...
-
TextBoxでEnterキーを押すと、...
-
アイコンとボタンの違い
おすすめ情報