![見出し画像](https://assets.st-note.com/production/uploads/images/102490030/rectangle_large_type_2_099a9207a73e1038c40ba35dde433ae1.png?width=1200)
第55回 Excel RPA IT限界集落 UI Automationの雄叫び
今後のスケジュールはコチラ
投げ銭ページはコチラ
登壇者:たーぼー(インコ)
日時 :2023年4月8日 20時
テーマ:Excel RPA IT限界集落 UI Automationの雄叫び
![](https://assets.st-note.com/img/1680959304751-NZpn5oc9Ke.png)
![](https://assets.st-note.com/img/1680951136695-QxTqM4eC0L.png?width=1200)
自己紹介
![](https://assets.st-note.com/img/1680951818425-OsfTn5S5aA.png?width=1200)
RPAとは
![](https://assets.st-note.com/img/1680951875932-M54XAzQxrB.png?width=1200)
![](https://assets.st-note.com/img/1680951925885-sciCa46BUD.png?width=1200)
![](https://assets.st-note.com/img/1680951959484-7nzB8VHbmL.png?width=1200)
UI Automationとは
![](https://assets.st-note.com/img/1680952126056-WBWT5GZVZb.png?width=1200)
![](https://assets.st-note.com/img/1680952153999-bMstAzxXrt.png?width=1200)
![](https://assets.st-note.com/img/1680952251245-U1C9TrQW81.png?width=1200)
使ってみよう
![](https://assets.st-note.com/img/1680952308700-bIrjcSkVYj.png?width=1200)
![](https://assets.st-note.com/img/1680952526220-AV9qJzeRiV.png?width=1200)
![](https://assets.st-note.com/img/1680952472409-p79BntLsAa.png?width=1200)
サンプルマクロを使って体験
![](https://assets.st-note.com/img/1680952587614-2FHKAx8jvm.png)
![](https://assets.st-note.com/img/1680952596886-vYPM6DJIS2.png?width=1200)
![](https://assets.st-note.com/img/1680952613746-Aef6Vpu6RT.png)
![](https://assets.st-note.com/img/1680952636285-DpqwEzeqnY.png?width=1200)
![](https://assets.st-note.com/img/1680952691449-2KsTDO4RrA.png?width=1200)
001_デスクトップ取得
![](https://assets.st-note.com/img/1680956128986-t2DmKGLqNw.png?width=1200)
![](https://assets.st-note.com/img/1680952754335-HRddNWhy3H.png?width=1200)
デスクトップがRootElementなのね
002デスクトップ配下のChrome_WidgetWin_1クラスのウィンドウを1つ取得
![](https://assets.st-note.com/img/1680953335649-9CAv9M6CMM.png)
![](https://assets.st-note.com/img/1680956148494-NpIyrJlpd8.png?width=1200)
![](https://assets.st-note.com/img/1680953034327-Hm7P7qZxsn.png?width=1200)
![](https://assets.st-note.com/img/1680953136304-0GMGih0Mvd.png?width=1200)
TreeScope_Childrenは1段下の構造まで検索
![](https://assets.st-note.com/img/1680953284360-Ycf3J2sjYd.png)
![](https://assets.st-note.com/img/1680953407994-2SDyGOPhYV.png)
003デスクトップ配下のトップウィンドウ全てを配列として取得
![](https://assets.st-note.com/img/1680956163153-EYcEYpOyXc.png?width=1200)
![](https://assets.st-note.com/img/1680953428176-Rrjik9H15H.png?width=1200)
CreateTrueCondition=なんでもOKの条件
![](https://assets.st-note.com/img/1680953548924-bkyep7GLMo.png?width=1200)
![](https://assets.st-note.com/img/1680953614942-Ik1fCl8RCD.png?width=1200)
004_デスクトップ配下のトップウィンドウからEdgeの可能性があるウィンドウ一覧を取得
![](https://assets.st-note.com/img/1680956179056-xJp8QvIriF.png?width=1200)
![](https://assets.st-note.com/img/1680953753259-c9xqHU2TdC.png?width=1200)
![](https://assets.st-note.com/img/1680953815643-6uleAiRvlD.png?width=1200)
005_取得したEdgeかもしれないウィンドウ一覧から更に絞り込む
![](https://assets.st-note.com/img/1680956195421-yPooIh81xx.png?width=1200)
![](https://assets.st-note.com/img/1680953905757-qVzuq0XeCh.png?width=1200)
最後にActiveだったものが一番先に抽出される
![](https://assets.st-note.com/img/1680954046547-oIHOVjKgCl.png?width=1200)
![](https://assets.st-note.com/img/1680954129997-8PMavVzdGl.png?width=1200)
006_取得したEdgeウィンドウ内の、ドキュメント配置領域を取得する
![](https://assets.st-note.com/img/1680954193215-YrVKgD82dF.png?width=1200)
![](https://assets.st-note.com/img/1680954752408-2Lj5kpjKWn.png?width=1200)
![](https://assets.st-note.com/img/1680954391687-KEAczwrpqd.png?width=1200)
SidebarContentsSplitViewで検索すると良さそう
![](https://assets.st-note.com/img/1680954532549-LsyUKX47mU.png?width=1200)
![](https://assets.st-note.com/img/1680954603298-TtWrl7yTUv.png?width=1200)
今回は4階層下のエレメントを取得したいので、4回同じコード。
![](https://assets.st-note.com/img/1680954827552-hjcqbVA6ND.png?width=1200)
![](https://assets.st-note.com/img/1680954860527-GejDvZVnFO.png?width=1200)
何故か1回目は失敗する。Sleepしてから再実行するといける。
![](https://assets.st-note.com/img/1680955039902-ZEQedjikwl.png)
007_Sample_006のコードを使い、Edgeのドキュメント配置領域を取得する関数を作成
![](https://assets.st-note.com/img/1680955090791-0xdM1BEwFZ.png?width=1200)
008_Edgeで開いたYahooのサイトを自動操作する
![](https://assets.st-note.com/img/1680955228079-a9VROWT6D9.png?width=1200)
![](https://assets.st-note.com/img/1680955251776-ltfM3IDfvl.png?width=1200)
![](https://assets.st-note.com/img/1680955285630-FfResnlxro.png?width=1200)
![](https://assets.st-note.com/img/1680955352440-9UJniGQmhO.png?width=1200)
![](https://assets.st-note.com/img/1680955438965-nBfOHjXzCa.png?width=1200)
![](https://assets.st-note.com/img/1680955476079-73Fp0M1Em2.png?width=1200)
![](https://assets.st-note.com/img/1680955586949-dXbqq5EuET.png?width=1200)
![](https://assets.st-note.com/img/1680955552327-T6jTIdEgNE.png?width=1200)
![](https://assets.st-note.com/img/1680955739477-2MR2lJwrFU.png)
Invoke=何か実行するの意味。ここではリンクClick。
![](https://assets.st-note.com/img/1680955750499-5wsO2xuOFh.png)
![](https://assets.st-note.com/img/1680955911213-yZK7e7XrrB.png?width=1200)
![](https://assets.st-note.com/img/1680955965676-A0x5O5Cog7.png?width=1200)
![](https://assets.st-note.com/img/1680955991107-voj8CsouZx.png)
UIAutomationの仕組みを理解しよう
![](https://assets.st-note.com/img/1680956098124-eth4LYEbHz.png?width=1200)
![](https://assets.st-note.com/img/1680956301678-OxXaxGPP0o.png?width=1200)
![](https://assets.st-note.com/img/1680956367183-G244DuCUEn.png?width=1200)
![](https://assets.st-note.com/img/1680956413911-5BtZnt8uq8.png?width=1200)
![](https://assets.st-note.com/img/1680956529085-4xQjnqoBWq.png?width=1200)
![](https://assets.st-note.com/img/1680956659780-MFkgvU88af.png)
UIAutomationのコードを書けるようになろう
![](https://assets.st-note.com/img/1680956700543-cl6C6ZWnXd.png?width=1200)
![](https://assets.st-note.com/img/1680956724428-jHggUTSFot.png?width=1200)
![](https://assets.st-note.com/img/1680956732805-Vds8tRtous.png?width=1200)
![](https://assets.st-note.com/img/1680956740706-wXiTjAhUJh.png?width=1200)
![](https://assets.st-note.com/img/1680956750768-oT5ss81PC6.png?width=1200)
その他_実際に使って感じた問題点への解決策
![](https://assets.st-note.com/img/1680956781638-cb3SOeTstm.png?width=1200)
その他_事例紹介
EXクラスを自作することでコーディング量を最小化
![](https://assets.st-note.com/img/1680956830972-MujHUXjKLP.png?width=1200)
基幹システムの画面自体をクラス化することで各要素へのアクセスを容易に
![](https://assets.st-note.com/img/1680956839377-7bRIHNVlLN.png?width=1200)
アプリの構造を調査→対象エレメントを取得するコードの作成までを自動化
![](https://assets.st-note.com/img/1680956852019-s01iVAChyG.png?width=1200)
おまけ
得られた知見を適当にまとめ
![](https://assets.st-note.com/img/1680956866170-aWNEofzW7H.png?width=1200)
CurrentとCacheについて
![](https://assets.st-note.com/img/1680956875061-nQXk9sgajb.png?width=1200)
![](https://assets.st-note.com/img/1680958172120-yeEHumnyVy.png)
![](https://assets.st-note.com/img/1680956814354-TowBDvMsyn.png)
![](https://assets.st-note.com/img/1680958370329-ZcmYN89bCy.png)
サンプルマクロと資料
![](https://assets.st-note.com/img/1681008334602-WJEFtGEs2d.png)
UIA_Explorer_Sample.xlsm は 独自開発ツール。
Inspectが導入できない環境でも構造解析支援ができたり、VBAコードの自動出力機能があります。これを見た人々の感想はこちら!
![](https://assets.st-note.com/img/1680957908195-ft8vaX2MWK.png)
スケジュールと投げ銭
![](https://assets.st-note.com/img/1680957171425-VMyPW4z6rW.png)
この記事が気に入ったらサポートをしてみませんか?