無料 RPA ツールのPulover’s Macro Creatorを使用して、 RPA の自作を目指すチュートリアルの第4回です。今回も前回に引き続き、マウス操作の基本について解説していきます。
無料 RPA の Pulover’s Macro Creator 上でマウス操作を手動作成する
前回は Pulover’s Macro Creator に備わった操作の記録ツールを使って、マウス操作のコマンド・アクションと、座標系、ウィンドウをアクティブにする方法を解説しました。ただ、実務で RPA を使う場合に、いくら「定型作業の自動化こそが RPA の神髄だ!」といってみたところで、電卓のボタンをポチポチクリックするだけということは多分ありません。
ただ「もしや実務では使えないのでは?」と思っても心配ありません。ちゃんと使えるように解説していきます。
関連記事
本連載の他の記事やPulover’s Macro Creator 関連の情報は、以下のページにまとめています。
下準備1:メモ帳を起動する RPA を作成する
電卓は右クリックやスクロールなど、ちょっとマウスの全体的な機能を説明するには不足するので、まずはメモ帳を起動するだけの RPA を作成します。
Windows 10の電卓はストアアプリのためこの方法は使えませんが、一般的なアプリケーションであれば、Pulover’s Macro Creator でとても簡単に起動ができます。
新しい PMC ファイル、またはマクロのタブを作成して、上図のアイコンをクリック(または、F8キー、「コマンド」メニューから「実行 / ファイル / 文字列 / その他」をクリック)します。
ダイアログが開いたら、「コマンド」がRunであることを確認し、Target テキストボックスの右端にある「…」ボタンをクリックし、ファイル選択画面を出します。
ファイル選択画面を開いたら、「C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories」を開き、「メモ帳」ショートカットを選択します(かんたんにアプリケーションファイルを登録する方向)。
選択したらOKでダイアログを閉じます。Run アクション・コマンドが登録されます。実行してメモ帳が起動することを確認します。
下準備2:メモ帳が起動するのを待って、メモ帳のウィンドウをアクティブにする
※この節のメモ帳の起動を待つ方法は、「いい加減な」方法です。ちゃんとした方法は後日、別記事にて解説します。
まずは、電卓のときと同様に遅延を設定したいですが、先ほどのRun コマンドには「遅らせる」や「遅延」の入力欄がありませんでした。そこで、手動で追加します。
一時停止を行う
一時停止ボタン(F5キー、「コマンド」メニュー内「一時停止」)を押し、表示されたダイアログにどのくらい待機するかを入力します。環境にも寄りますが、数百ミリ秒~数秒程度でメモ帳が起動するのが一般的だと思います。
メモ帳をアクティブにする
さらに、メモ帳ウィンドウをアクティブにするコマンドを追加します。メモ帳を起動してください。
メモ帳を起動したら、
ウィンドウボタン(F6, 「コマンド」メニュー内の「ウィンドウ」)を押します。
表示されたダイアログで、①コマンドを「WinSet」から、「WinActivate」にします(前回の最後に確認したコマンドです)。
次に、②WinTitleボタンをクリックして、表示されたリストの中から、Titleのチェックを外し、Classだけにします。
最後に③「…」ボタンをクリックします。そうすると、Pulover’s Macro Creator のウィンドウが一時的に隠れ、マウスカーソルになんだかいろいろと難しそうなことが書かれたツールチップがついてくるようになるので、メモ帳の上で右クリックします。
設定・右クリックが上手くいくと、下図のようになります。
下のテキストボックスに、「無題 メモ帳」とか表示されていた場合は失敗なので、WinTitle ボタンで「Title」のチェックがちゃんと外れているか確認してください。
上の図と同じような内容になったら、OKを押してコマンドの追加を完了します。
今回は、わざわざTitle のチェックを外しました。理由は、メモ帳は開いているファイル名がタイトルに反映されるからです。
さらに、保存されていない場合、 「* 無題 – メモ帳」のように、保存していないことを示す*がついてしまい、 RPA で一律に扱うのが面倒になっています。一方で、複数メモ帳を起動しているときに、たった1つのメモ帳のウィンドウを特定したい場合などは、このウィンドウのタイトルが役に立つ場合があります。
このようにウィンドウコマンドは、非常に種類が多く、利用するパラメーターも多くなりがちです。慣れるまではとても難しいような気がしますが、慣れてくると自在に RPA を自作できるようになります。
少しずつ解説を増やして行くので、今はウィンドウをアクティブにするにはこうするのだ、と覚えておいてください(言うまでもなく一番使うコマンドです)。
メモ帳をドラッグして移動する
下準備が長くなってしまいましたが、それだけ本格的な RPA の自作に近づいているということですね。それではいよいよマウスでドラッグする操作を、まずは記録からやっていきましょう。
Pulover’s Macro Creator のメインウィンドウでCtrl + T(または、「マクロ」メニューからマクロを追加)、マクロを追加ボタンをクリックしてマクロのタブを新しく作成します。
新規のマクロタブが開いた状態で、Ctrl + R, F9と押してマクロの記録を開始します。もしくは、新しいマクロタブを作らずに、Ctrl + R, F10で一気に新規マクロの作成から記録まで行ってしまってもいいかもしれません。
マクロの記録が開始されたら、起動しておいたメモ帳のタイトルバーをドラッグし、適当な位置まで移動させてから記録を終了します。
通常、この方法で記録された場合、最初のLeft Move & Click がスクリーン座標になってしまっているので、2個目のLeft Move & Clickに揃えるのでしたね(前回記事参照)。ということで、今回も前回と同様の手順で数値を揃えます。
さらに、メモ帳を起動して、アクティブにした後、ウィンドウの位置を変えたいので今記録したLeft Move & Click の2行をCtrl キーを押しながらクリックしたり、Shiftキーを押しながらカーソルキーで選択したりして、選択状態にします。選択したら、 Ctrl + cキーでコピーし、最初にメモ帳を起動する RPA シナリオを作ったマクロタブでCtrl + v を押してペーストします。
上図のような状態になったら、メモ帳を終了してから RPA を実行してみましょう。いかがでしょうか。ちゃんと動作しましたか?
ちゃんとドラッグされるようにする
はい、ドラッグはされないはずです。何故でしょうか? それは、ウィンドウ座標の同じ座標上でマウスのボタンを押したり離したりしているからです。これではただのクリックですね。
しかし、ウィンドウ座標はウィンドウ上の1点を示すので、タイトルバーをドラッグしてもスクリーン座標上はマウスカーソルは動きますが、ウィンドウ座標上は常に同じ座標になるはずです。これではウィンドウをドラッグできないのでしょうか?
絶対位置でのドラッグ & ドロップ その1
とはいえ、やってみないと分かりませんね。今度は、2番目の Left Move & Click をダブルクリックして編集ウィンドウを表示します。そこで、試しに Y の数値を変更してみます。
筆者の場合には、Y の初期値 8 を + 100して108 としてみました。皆さんはもう少し小さい数値でもいいかもしれません(あんまり大きいと画面外に出る怖れがあります)。
実行してみると、今度はちゃんとウィンドウが動きました。ウィンドウ座標上でも、タイトルバーのドラッグがちゃんと動くことが分かりました。
絶対位置でのドラッグ & ドロップ その2
ドラッグ & ドロップはできるようになりましたが、このままだと2つに分かれたコマンドで数値を調整しなければならず、少し面倒です。できたらまとめて調整したいですね。
そこで、コマンドを変えてみます。1つめのLeft Move & Click アクションをダブルクリックして編集ウィンドウを開きます。そして、「アクション」を移動してクリックから、ドラッグアンドドロップに変更します。そうすると、座標の2つめが編集できるようになるので、先ほど2番目の Left Move & Click に入れた座標と同じものを入力しましょう。
筆者の場合は上図のようになります。座標については、各自で少し異なると思います。
OK をクリックすると、アクションがLeft Click & Dragに変化していることが分かります。残った Left Move & ClickをDeleteキーで削除したら、 RPA を実行してみましょう。きちんと動作していることが確認できますね。これで、試行錯誤や調整が楽になりました。
相対座標でのドラッグ & ドロップ
100ピクセル動かしたいときに +100した数値を入力しなければならず、少し面倒くさいですね。繰り上がり・繰り下がりが発生するような数値だったらわざわざ電卓を使う必要があるかもしれません。また、画像認識や変数といった高度な機能を利用するようになると、より面倒になってきます。
そこで、相対位置によるドラッグ & ドロップに挑戦してみます。すこし手順が複雑になります。
まずは、F2キーまたはマウスのボタンから、マウスのコマンド/アクションを新規に追加します。
アクションを「移動」、座標を先ほどまでの上段の数字と同じにします。ここまでできたら、OKをクリックして閉じます。
新しく、Move アクションがLeft Click & Dragの上に追加されていると思います。もし、違う位置にあったらWin Activateと Left Click & Dragの間になるように移動します。
次に、Left Click & Drag ダブルクリックして編集ダイアログを表示します。
編集ダイアログが表示されたら、まずは「相対」にチェックをいれます。それから、下段のX を「下段のX – 上段のX」、下段のYを「下段のY – 上段のY」の数値にします。筆者の場合は、下段のXが0, 下段のYが100になりました(移動させる座標・ピクセル分ということです)。それが終わったら、上段のX, Yをゼロにします。
上図のような状態になったら、OKをクリックしてダイアログを閉じ、 RPA を実行します。先ほどと同じようにウィンドウが動いたら成功です。
相対位置・相対座標と最初にマウスの移動コマンドを追加した理由
通常、座標というのはスクリーン座標ならデスクトップの左上が原点(0, 0), ウィンドウ座標ならウィンドウの左上が原点の(0, 0) となるのでした。
それに対して「相対」にチェックを入れた相対位置(相対座標とも)とは、マウスカーソルのある位置からどれだけ移動した場所かを示しています。そのため、スクリーン座標、ウィンドウ座標関係なく、Xがプラスなら右に動き、マイナスなら左に動く。Yがプラスなら下に動き、マイナスなら上に動く。という意味になります。
人間は、マウスを動かすときにわざわざ、「画面の左上から見てあそこに移動しよう…」とは考えないので、人間がマウスを動かすときの感覚に近いと言えますね。「赤色のエラー表示を見つけたら、その右隣のボタンをクリックして、エラーを確認していく……」というような操作に使いやすいです。
そして、ドラッグアンドドロップアクションの前にマウスの移動アクションを追加したのは、メモ帳のタイトルバーにカーソルを移動させておくためです。というのも、 RPA を起動した段階ではマウスカーソルがどこにあるのか分からないので「ここからドラッグスタートだよ」という位置まで移動させておかないと、変なところからドラッグを開始してしまうからですね。
初期位置に関しては、相対位置は向かないのでまずはウィンドウ座標上でどこからスタートするかを決めないと上手く動作しないことが多いことに気をつけてください。
一定時間待つ、ウィンドウをアクティブにするといった操作は、普段はユーザーのいろいろな操作の結果、自然と作られます。
そのため、ただそれだけをしたいとなった場合、余計なユーザーの操作が記録されない、コマンドを直接するやり方の方がずっと楽な場合があります。
Pulover’s Macro Creator では、編集中のマクロ RPA に直接、操作の記録を追記することもできますし、タブを分けられるので、別のタブからコピーしてくることも出来ます。
「記録」に頼らない座標の調べ方
今まではマウスをクリックする座標、移動先の座標などは RPA の記録から数字を引っ張ってきていました。ただ、ここまで学習してきたようにマウスの操作を記録しても、ウィンドウのアクティブ状態などに左右されてしまい、安定しにくいです(できるならキーボード操作を使うべし、という理由です)。
そこで、F2のマウスコマンドの新規追加から作って行きたいのですが、座標を調べるのが面倒ですよね? Pulover’s Macro Creatorではこれをサポートする機能がついています。
メモ帳を起動した状態で、PMCのメインウィンドウからMove アクションをダブルクリックし、マウスコマンドの編集ダイアログを表示します。
そして、上図の「…」ボタンをクリックします。これをクリックすると、PMCのウィンドウが隠れ、色々表示されたツールチップがマウスカーソルを追従してくるようになるので、「必ずメモ帳をアクティブにしてから」メモ帳のタイトルバーの適当なところを右クリックします。
そうすると、PMCのウィンドウが再登場し、座標の数値が変更されます。つまり、右クリックした座標を自動で入力してくれているのです。先にメモ帳をアクティブにしたのは、メモ帳以外がアクティブだと、そのウィンドウにとってのウィンドウ座標になってしまうからです。タイトルバーを右クリックしたのに、特にYの値がさっきと全然違うな、というときは違うウィンドウがアクティブだった可能性があるので、やり直してみてください。
この機能がなく、手入力でAHK を記述するときは、別に補助ツールを用意するか、画面のスクリーンショットを撮影し、それを画像ソフトに取り込んで何ピクセル離れているか…を計測していました。ワンストップで計測から入力・設定までできるので、本当に便利になりました。
その他のクリック・ドラッグ系操作
マウス操作について、全ボタン試していると紙面がいくらあっても足りないので、各機能の紹介をしていきます。
基本的に、このマウス編集ダイアログでは、「アクションでどんな操作をするか」、「座標でどこでやるか」、「ボタンの上段でどのマウスボタンを使うか」「ボタンの下段でマウスボタンをどんな状態にするか」を設定します。ですので、アクションと座標はほぼやったので、後はボタンを決めるだけなのでそれほど難しくないです。以下、箇条書きと上図の番号が対応します。
- マウスカーソルを動かさないその場で、ボタン操作を行います(相対座標0, 0と同じ意味)。
- ボタン・ホイール操作を伴わないでカーソルだけ移動します。
- マウスカーソルを移動してから、ボタン操作を行います。
- マウスホイールを、上方向に回転させます。
- マウスホイールを、下方向に回転させます。
- 座標の上側の位置からドラッグし、下側の位置でドロップします。
- 左クリック(メインのボタン)で操作します
- 右クリック(メニューが表示されるボタン)で操作します
- マウスホイールの押し込み(センタークリックボタン)を操作します。
- マウスの拡張ボタンを操作します。通常、ブラウザの進むボタンに割り当てられているようなボタンです。
- マウスの拡張ボタンを操作します。通常、ブラウザの戻るボタンに割り当てられているようなボタンです。
- マウスボタンを押してすぐに離す、通常のクリック操作を行います。ボタンを押し込んでいる時間を調整したいときは、13, 14のホールドを使います。
- マウスボタンの押し込み操作だけをします(ドラッグの開始)、14と一緒に使わないとマウスボタンが押し込まれたままになります。
- マウスボタンを放す操作をします。単独では通常機能しません。
- 4, 5, 12とセットの時に使えます。何回クリックするか、どのくらいホイールを回転させるかを設定します。ディレイを設定できないので、ここではなく「繰り返し」と「遅らせる」を設定する方が安定する場合があります(特にゲームなど)。
おわりに
お疲れ様でした。2回に分けたのにすごいボリュームになってしまいました。しかし、本記事まで終わらせると大分 RPA でどういう風に操作を作ったらいいか、が分かって来たと思います。ちょっと複雑なことにはまだ対応できませんが、それでも面倒な作業をある程度楽にできるようにはなってきていると思います。
実際、筆者の基準では「まだまだこんなもんじゃ満足できないぞ」という感覚ですが、このくらいでも「ある程度散らばった情報をコピーしてまとめる」といった操作が可能なので、実務でも高額な RPA ソリューションを導入して、今回までの内容でできることを行っている企業もあるようです。
ですので、ここまで終えた皆さんは、「 RPA のシナリオ? まあ、基本的なのなら自作できるかな」と言っても全然問題ないと思います!
とはいえ、まだまだ基本編も全て終わっていないので、さらなる高みを目指したい人は、引き続き本連載にお付き合いください。
2件のフィードバック