見出し画像

第60回 UIオートメーションでの外部アプリの自動制御(第二回)

今後のスケジュールはコチラ
投げ銭ページはコチラ

登壇者:たーぼー(インコ)
日時 :2024年10月5日19時
テーマ:UIオートメーションでの外部アプリの自動制御(第二回)

第一回 UIオートメーション会の記事はこちら

自己紹介

いいいい一般人??

前回のおさらい

UI Automationからメモ帳アプリを自動操作の実演
下のメモが気になるw

使ってみよう1

参照設定:UI Automation Client
UI Automationで捕まえることができるデスクトップ上のオブジェクトを列挙する
Sub ウィンドウタイトル列挙()
    Dim uia As New CUIAutomation
    Dim Elems As IUIAutomationElementArray
    Dim cnd As IUIAutomationCondition
    Set cnd = uia.CreateTrueCondition
    Set Elems = uia.GetRootElement.FindAll(Treescope_Children, cnd)
    Dim i As Integer
    For i = 0 To Elems.Length -1
        Debug.Print Elems.GetElement(i).CurrentName
    Next

End Sub


イミディエイトウィンドウ 動作結果
ウィンドウタイトル名を指定する場合の例
条件に合致する最初のウィンドウを取得する例


ウィンドウ内の要素を取得する

要素を掘り下げていってクイックアクセスツールバーのカスタマイズをクリックする例

Inspect構造を視覚化する公式ツール

使ってみよう2

直接ツリー構造を下ってEdit画面を取得操作する例

今回の本題

同期処理=実行した機能が終了しないとVBAに処理が戻らない
PropertyContditionFlag_MatchSubstring


最初からEdgeウィンドウを取得する例
ファイルダイアログなどを開いて、それに対してUIAutomation操作しようとしてもウィンドウ閉じるまで処理がVBAに戻らない。

実務での活用事例

開発に慣れてきたらこれを思い出してほしい

今日伝えたいこと

https://ss1.xrea.com/inkolab.s205.xrea.com/tool/UIAutomationExplorer/UIAutomation_Explorer.html

RPAチャレンジのサイトを操作してみる
これをサイトの目的の位置にドラッグするとツリー内オブジェクトが特定できる。
右下は利用可能なPatternのリストやテスト実行できるウインドウ。Inspectにもない機能
自動生成されたコード

インスタントラーメン

オブジェクト選択した状態でインスタントラーメンアイコン押すと
全要素TreeWalkerコードが生成。この後は好きなの選んで操作してね。

ダンプ機能

VBEオブジェクトブラウザのリストアップもできちゃう

最後までお読みいただきありがとうございます。
投げ銭ページこちらです。ご支援お待ちしております。

この記事が気に入ったらサポートをしてみませんか?