【VBA】UIAutomationで業務改善1

UIAutomation

どうも。RPAをぶっ潰す勢いで開発するjimです✌

もう、色んな企業が導入しているRPA。

しかし!RPAを使ったところで、僕には勝てないということを思い知らせてやろう😆

ってことで、今回は『UIAutomation』使ってWinを自分の手足のように操ってやろうっていう記事です。

とりあえず、「『UIAutomation』って何?」って感じですよね?

ユーザーインターフェースオートメーションといって、アプリケーションのエレメントを取得して操作するためのAPIです。

VBAと聞くとエクセル操作しかできないと思われたりしますが、API使えば自動化の幅は広がります😄

で、実際には、他のAPIと組み合わせてマクロを組むことになると思います。

例えば、『UIAutomation+ハンドルの取得&送信』みたいな感じ。

1、まずハンドルを取得

2、そのハンドルのエレメントをUIAutomationで取得して実行

3、エレメントorハンドルを取得するまで無限ループ(待機)

そんな感じ。

 

自動化の対象は?

そもそも、何で『UIAutomation』を使おうと思ったかというと、派遣先の社内システムが、IEじゃなくて何だかよくわからないヤーツで作られてたから😅

これが、IEだったら『Internet Controls』と『HTML Object Library』使って自動化できるわけだけど😥

勿論、『UIAutomation』でIEも操作できますよ。

あと、Google Chromeはエレメントが取得できないっぽいけど、Microsoft Edgeは取得できるっぽいので操作できるかも。

Eclipseなどのエディタ類もエレメント取得できるっぽいから、プログラミングにプログラミングさせることも出来ちゃうかも。

まあ、パソコンの殆どが自動化の対象だと思っていいかもしれません。

『かも』ばっかで済みません。実際に操作したのは社内システムだけなので。。。

 

エレメントの取得について

IEを自動化したことある人なら分かると思うんですが、取得方法はクリソツです👈

ただ、IEのように開発者ツールがあればいいのですが、ないものを操作するときはキツイです。。。

そゆときは『ぴろぴろ~』を使ってエレメントのIDや名前などを調べます。(自己流)

『なに?ぴろぴろ~』ってと思いました?何かぴろぴろするやつがあるんです。

ダウンロード(download archiveから)⇒UIAutomationSpy

releases\44\93a26058-f33a-4f5b-bbbe-4a93b0071e00

赤字のファイルを『UIAutomation.0.8.7B3.NET35.zip』に変更して解凍します。

その中の『UIAutomationSpy.exe』がぴろぴろです。

開いてStartをクリックすると、ぴろぴろし始めます。

カーソルを取得したいエレメントに合わせます。

今回はエッジのタブを取得してみました。

んで、そのエレメントのIDやNAMEを指定して操作するわけなんだけど、今回はここまでで。

またね✋

 

next:【VBA】UIAutomationで業務改善2