みなさん、こんにちは。鈴木です。
今回は、ドラッグ&ドロップ操作の自動化をご紹介したいと思います。
Let's RPA!!
□目次
・Automation 360 ビルドバージョン:9637
1.はじめに
1.ドラッグ&ドロップについて
RPAによる業務の自動化において、さまざまな画面操作を自動化しますが、
ドラッグ&ドロップの操作は、自動化の機会が少ないのではないかと思います。
RPAにおいてはレアな操作かもしれませんが、
いざというときのためにドラッグ&ドロップをどのように自動化か確認しておきましょう!
参考:ドラッグ&ドロップの操作
2.基本設定
1.自動化のポイント
自動化する前にドラッグ&ドロップの動きを細かく確認しましょう。
【移動対象をつかむ】
① 移動対象のオブジェクトにマウスカーソルを移動する
② 左クリックをクリックした状態のままにする
【目的地で離す】
③ 目的地までマウスカーソルを移動する
④ 左クリックをクリックしていない状態にする
それでは、この動きをアクションで実現していきましょう。
2.使用するアクションについて
「マウスパッケージ」の「クリック」アクションを2つ使って、
ドラッグ&ドロップを自動化することができます。
先ほど確認したドラッグ&ドロップの動きは、このような設定になります。
設定内容も簡単ですし、難しくなさそうですね!
3.ドラッグ&ドロップを極める
ドラッグ&ドロップの自動化はとても簡単そうなのですが、
実際の業務の自動化で使おうとすると、非常に困ってしまうことがあります。
皆さんはお気づきでしょうか?
1.ドラッグ&ドロップで困ること
☝「マウス位置」の指定方法
画像のように固定値(X:788、Y:1166)で設定すると、
「移動対象」や「目的地」がずれた場合、
正確にドラッグ&ドロップができない可能性があります。
システムの画面やブラウザでスクロールなどがずれるだけでも影響がありそうですね。
2.解決策
固定値で指定するのではなく、毎回座標を取得することで
より安定したドラッグ&ドロップを実現したいと思います。
下記の手順で「移動対象」と「目的地」の座標を取得します。
①「キャプチャ」アクションや、「画像認識」パッケージを使い、
「移動対象」又は「目的地」を右クリックする。
※クリック、左クリックすると処理が実行されてしまう場合は、
右クリック等影響のないイベントを選択してください。
②マウスカーソルの座標を取得し、
「移動対象」又は「目的地」の座標として変数に格納する。
取得した座標は、「クリック」アクションの「マウス位置」に設定します!
3.ボットを作成する
マウスカーソルの座標を取得するアクションはないので、
下記のようなVBScriptで座標を取得します。
- '***************************************
- 'マウスカーソルの座標取得
- '***************************************
- Function GetMousePoint()
- Dim myPoint, x, y
- myPoint = API_GetMessagePos
- x = myPoint(0)
- y = myPoint(1)
- GetMousePoint = x & "," & y
- End Function
- '************************
- 'API呼び出し
- '************************
- Function API_GetMessagePos()
- Set Excel = WScript.CreateObject("Excel.Application")
- Dim ret, strHex, x, y
- Dim strFunction
- Const API_STRING = "CALL(""user32"",""GetMessagePos"",""J"")"
- strFunction = API_STRING
- ret = Excel.ExecuteExcel4Macro(strFunction)
- strHex = Right("00000000" & Hex(ret), 8)
- x = CLng("&H" & Right(strHex, 4))
- y = CLng("&H" & Left(strHex, 4))
- API_GetMessagePos = Array(x, y)
- End Function
座標を取得する機能として何度も呼び出したいので、
このVBScriptを実行して結果(座標)を返却するボットを作成しました。
【マウスカーソルの座標を取得するボット】
上記の座標取得ボットを使ってドラッグ&ドロップを実行する
デモボットを作成しました。
【ドラッグ&ドロップ操作のデモボット】
実行している様子はこちらの動画をご覧ください。
4.まとめ
ドラッグ&ドロップ操作の自動化をご紹介しました。
座標の取り方を工夫することで、より良いドラッグ&ドロップができるようになったと思います。
ご覧いただいた動画内では、ドラッグ&ドロップ以外のボット開発のTipsをご紹介していますので、
是非ご覧ください。
またお会いしましょう!それでは!
著者紹介
先端技術推進統括部
RPAビジネス推進部
鈴木 陽介
C#によるシステム開発、POS開発を経てRPAエンジニアに。