添付画像に示すような、あるアプリ(非MicroSoft)で表示される2つのコンボボックスをもつダイアログボックスをUI AutomationでVBA制御したいです。
(参照添付画像:調べたコントローラ情報も載せました。)
具体的に制御したい事は以下2点ですが、うまく動作できないためご助言を頂きたいです。
■制御したいこと
①右側のコンボボックスを▼を押す。
→現状:左側のコンボボックスの▼が押されてしまう。
②任意のファイル形式を選択する。
→現状:入力はできないため、ボックス内にあるPNG形式を選択したい。
■実際にやったこと。
制御コードは、下記サイトの最下段コード「通知バーの名前を付けて保存」を参考にしました。
<https://www.ka-net.org/blog/?p=4855>
①の対応のみ(以下参照)
Set uiAuto = New UIAutomationClient.CUIAutomation
Set elmRoot = uiAuto.GetRootElement
Set W= uiAuto.CreatePropertyCondition(UIA_NamePropertyId, "開く")
'この開くは、ダイアログボックスの名前
Set X= uiAuto.CreatePropertyCondition(UIA_ClassNamePropertyId, "#32770")
Set Y= uiAuto.CreateAndCondition(W, X)
Set Z = elmRoot.FindFirst(TreeScope_Subtree, Y)
SET A = uiAuto.CreatePropertyCondition(UIA_NamePropertyId, "開く")
'(この「開く」は、どちらコンボボックスも▼(ドロップダウン)の名前が「開く」という名前であったため採用)
SET B = uiAuto.CreatePropertyCondition(UIA_ControlTypePropertyId, UIA_ButtonControlTypeId)
SET C =uiAuto.CreateAndCondition(A,B)
Set O = Z.FindFirst(TreeScope_Subtree, C)
Set P= O.GetCurrentPattern(UIA_InvokePatternId)
P.Invoke
その他下記2つも試してみましたが、Set Zで取得できずでした(Z is Nothing)。
・Set Aで、"開く"→"ファイルの種類(T):" (右側のコンボボックスの名前)
・Set Bで、UIA_ButtonControlTypeId → UIA_ComboBoxControlTypeId
なお、②については対応方針を打ち出せていないです。
このような状況ですが、ご助言頂けると助かります。
No.1ベストアンサー
- 回答日時:
まあ、自分も教わったクチなので余り大した事が言えません・ω・
>IUIAutomationElementArray
複数の要素を一度に取得して、ループさせてインデックスで目的の要素を判別したらどうでしょう。
お返事遅くなりました。
大変大きなツールを得られました。
実際にはなかなかすぐにできず、基礎から理解しながら進めることになりました。お蔭様でこの手のことにようやく理解が進むようになりました。
本当にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ExcelVBAでスペースキー操作したい
Excel(エクセル)
-
親ウインドウにあるOKボタンを押す方法
Visual Basic(VBA)
-
EnumChildWindowsの使い方(VBA)
Visual Basic(VBA)
-
-
4
Excel VBAで他アプリケーションの文字列取得
Excel(エクセル)
-
5
ウィンドウにキー送信で ENTER を送りたい
Visual Basic(VBA)
-
6
Alt+P,Alt+NをPostmessageで送るには
Visual Basic(VBA)
-
7
ExcelVBAでAPIを使って外部ウインドウのエディットテキストを取得する方法
Visual Basic(VBA)
-
8
ExcelVBAで他のアプリをスクロールさせたい
その他(プログラミング・Web制作)
-
9
他アプリの操作(メニューバー)
Visual Basic(VBA)
-
10
VBA IE ダウンロード ダイアログ制御(名前を付けて保存)
Visual Basic(VBA)
-
11
今更、VBAでRPA、キーボード操作自動化ってどうやるの?
Visual Basic(VBA)
-
12
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
13
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
14
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
15
VBAでコントロールのハンドルを取得したい
Visual Basic(VBA)
-
16
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
17
VBAでの SendKeysの変数指定方法
Excel(エクセル)
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
20
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
電気の配電盤の52番、27番は何...
-
プロコンって何ですか?
-
switchbot の指ロボットで除湿...
-
C/C,M/Cの意味
-
【VBA】UI Automationコンボボ...
-
位置型PIDと速度型PIDの使い分...
-
自動制御について質問です。 ス...
-
発電所のガバナとは何のことで...
-
国土交通省営繕機械設備自動制...
-
リレー制御の警報のBL、BZって...
-
CVVって何ですか? なに線です...
-
自動制御機器について質問です...
-
ノーズR補正の計算
-
モーターの定格電流の出し方
-
動力ブレーカーの容量計算
-
空調機の商用運転とインバータ...
-
モーター
-
電線の焼損の仕方について。
-
単相3線式の定格電流の計算につ...
-
電流値の計算方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
電気の配電盤の52番、27番は何...
-
プロコンって何ですか?
-
ジョブ≒バッチファイル≒シェル...
-
自動制御について質問です。 ス...
-
FLネットとイーサネットの違い...
-
switchbot の指ロボットで除湿...
-
リレー回路のシミュレーション...
-
位置型PIDと速度型PIDの使い分...
-
C/C,M/Cの意味
-
【VBA】UI Automationコンボボ...
-
中途採用のMSCってなんの略なん...
-
質問です。 送水圧力制御とはな...
-
ワンループコントローラについ...
-
自動制御について質問です。 ス...
-
遮断器に並列で付いている51G、...
-
【直流電気】直流電源を使うの...
-
制御の意味
-
フルクローズドループとセミク...
-
RJ45 切り替えスイッチは作れる?
-
リレー制御の警報のBL、BZって...
おすすめ情報