とある古のシステムのUIが悪いのでExcelVBAでがんばってみた。
VBAなら特にお金もかからないし、なにせIE縛りのシステムでも手軽にRPAできる。
ほんとエクセルは最高です。
さて、そんないけているIE縛りのレガシーなIE縛りのシステムをVBAでRPAする際に気をつけるポイントをまとめてみた。
どうみてもバッドノウハウ集ですね。
小画面を拾う
古のシステムではやたら新しいウインドウが開きます。
自分で開く場合はオープンするプロセスの中で新しいウインドウを捕捉できるのですが、
大半はjsとかで開かれ、メニューバーとかを潰したりとがんばっているのでそこを読み解くのは心が折れます。
開いた後ウインドウを探してタイトルで捕捉しましょう。
こんな感じでIEのウインドウをすべて探し出して、タイトルとかURLで補足
Set objShell = CreateObject("Shell.Application") For Each objWin In objShell.Windows If objWin.Name = "Internet Explorer" Then Set objIEsub = objWin If objIEsub.document.Title = "ユーザ検索画面" Then Exit For End If End If Next
子画面の表示が終わりきる前に動いてしまうことがあるので、そんなときはApplication.Waitでも入れましょう。
フレーム対処
古のシステムではなんでもない画面でもフレームが多用されてるのも特徴なのでこれも対処、
document.framesで掘っていきます。入れ子になっていてもがんがんいきましょう
Set inputTag = objIE.document.frames("contents").document.getElementById("ok") inputTag.Click
IDがついてない項目
これはしゃーないので気合いで対処します。
何番目のInputタグだとかで気合をいれて操作してください。
もうコツでもなんでもないですね。
IE専用にデザインされているシステムは使いにくいことも多いのですが
こんな感じでなんとか共存できるのではないかと。