IE上に表示されたイメージアイコンをクリックすると、図に示す画面が現われます。
これをVBA制御により「名前を付けて保存」ボタンを押したいのですがうまくいかずご教授頂きたいです。
(なお、恐縮ながらSendkeysを利用する方法は求めておりません。また、こちら社内システムででてくる画面であるためリンクを示すことができません、申し訳ございませんがご理解願います。)
質問は↑につきますが、やってみたこと①②について補足で示します。
①SendMessageを利用する場合
https://oshiete.goo.ne.jp/qa/1809850.html
→コピペでやりたいことにかなり近いことができましたが、「開く(O)」ボタンを押してしまっています。若干理解不足ではありますが、このソースでは、「名前を付けて保存」、又は「保存」という記述しかないのに、なぜ「開く」ボタンが押さる挙動となるのかわかっていません。
②UIAutomationを利用する場合
https://oshiete.goo.ne.jp/qa/9622324.html
→エラーがでてしまい、うまくボタンをおすところまで行きませんでした。
わからないなりにUIAutomation関連の知識を入れながらパラメータを変えての試行錯誤しましたがギブアップです。うまくボタンをとらえることができません。(いや、知識不足がかなり大きいです。。)
こちらは、以前「通知バー」制御に関する投稿させて頂いた内容で、うまくいった経緯があること、また、「名前を付けて保存」ボタンが押下が成功したら、後の「名前を付けて保存ダイアログボックス」制御がそのまま利用できそうなので試してみた次第です。
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も見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
ダウンロードダイアログをVBAから操作するには?
Visual Basic(VBA)
-
vbaでIEの名前を付けて保存(A)をしたい
Microsoft ASP
-
IEのダウンロード通知バーのVBA制御(保存他)
Visual Basic(VBA)
-
-
4
VBA IE操作でダイアログ表示後、ファイルを開くボタンが押下できない
Visual Basic(VBA)
-
5
IE操作時、ファイルのダウンロードボタンの押下
Visual Basic(VBA)
-
6
VBA IE通知バーの制御 バー内のボタン 開く/保存/キャンセルを押す
Visual Basic(VBA)
-
7
Alt+P,Alt+NをPostmessageで送るには
Visual Basic(VBA)
-
8
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
9
VBA URLDownloadToFileについて
Visual Basic(VBA)
-
10
VBAでIEを操作、ポップアップされた画面の処理(Enter)を行いたい
Visual Basic(VBA)
-
11
ExcelVBAでリンク先の対象のファイルを保存
Visual Basic(VBA)
-
12
VBAでIEの「ファイルのダウンロード」ダイアログを制御
Visual Basic(VBA)
-
13
WEBページからのメッセージをVBAで
Visual Basic(VBA)
-
14
VBAでIEのファイルを自動的にダウンロードしたい
Visual Basic(VBA)
-
15
ウィンドウにキー送信で ENTER を送りたい
Visual Basic(VBA)
-
16
ExcelVBAでスペースキー操作したい
Excel(エクセル)
-
17
(UWSC) 「#32770」の意味わかりますか?
その他(プログラミング・Web制作)
-
18
VBA ログイン後csvファイルをダウンロードする
Excel(エクセル)
-
19
Webページ中の javascript をVBAから実行するには
Visual Basic(VBA)
-
20
Excel VBAでのIE操作でクリックができないボタンはあるのでしょうか
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
VB.net でトグルボタンを実現し...
-
コマンドボタンやイメージにマ...
-
他のアプリケーションとの連携
-
VBAのボタンの位置が変わって困...
-
[VB.net] ボタン(Flat)のEnable...
-
ASP.Net ラベルの内容をすぐに...
-
ユーザーフォームに別シートか...
-
Access VBA でデータペーストを...
-
Excel マクロ 閉じるボタン
-
プロシージャからイベントをコ...
-
ボタン上にビットマップ、アイ...
-
C#プログラムで、ボタンをショ...
-
閉じると「+」になり開くと「-...
-
C♯初心者で、四則演算の電卓を...
-
VBA CommandButtonの文字ずれ
-
VB2010 クリック数カウント
-
VBA MsgBoxで、”いいえ(No)”ボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
フォームの再読み込み
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
アイコンとボタンの違い
-
ボタンをマウスで押し続けたと...
-
閉じると「+」になり開くと「-...
-
セルをマクロのボタンにしたい。
-
VBA マクロでの網掛けについて
-
VB.net でトグルボタンを実現し...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
VBAで多数のプログラムを一つの...
-
プロシージャからイベントをコ...
-
VBA でのボタンの移動について
-
VBAでオプションボタンによって...
-
[Excel VBA]コマンドボタンの入...
おすすめ情報