SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

Automation Anywhere -【A360】ドラッグ&ドロップ操作を自動化してみた!

AI/RPA
2021.07.17

みなさん、こんにちは。鈴木です。

今回は、ドラッグ&ドロップ操作の自動化をご紹介したいと思います。

Let's RPA!!


□目次

  1. はじめに
  2. 基本設定
  3. ドラッグ&ドロップを極める
  4. まとめ

 ・Automation 360 ビルドバージョン:9637

1.はじめに

1.ドラッグ&ドロップについて

RPAによる業務の自動化において、さまざまな画面操作を自動化しますが、
ドラッグ&ドロップの操作は、自動化の機会が少ないのではないかと思います。

RPAにおいてはレアな操作かもしれませんが、
いざというときのためにドラッグ&ドロップをどのように自動化か確認しておきましょう!

参考:ドラッグ&ドロップの操作

マイビデオ2.gif

2.基本設定

1.自動化のポイント

自動化する前にドラッグ&ドロップの動きを細かく確認しましょう。

001.png

 【移動対象をつかむ】

  ① 移動対象のオブジェクトにマウスカーソルを移動する
  ② 左クリックをクリックした状態のままにする

 【目的地で離す】

  ③ 目的地までマウスカーソルを移動する
  ④ 左クリックをクリックしていない状態にする

それでは、この動きをアクションで実現していきましょう。

2.使用するアクションについて

「マウスパッケージ」の「クリック」アクションを2つ使って、

ドラッグ&ドロップを自動化することができます。

先ほど確認したドラッグ&ドロップの動きは、このような設定になります。

002.png

設定内容も簡単ですし、難しくなさそうですね!

3.ドラッグ&ドロップを極める

ドラッグ&ドロップの自動化はとても簡単そうなのですが、

実際の業務の自動化で使おうとすると、非常に困ってしまうことがあります。

皆さんはお気づきでしょうか?

1.ドラッグ&ドロップで困ること

 ☝「マウス位置」の指定方法

003.png

 画像のように固定値(X:788、Y:1166)で設定すると、
 「移動対象」や「目的地」がずれた場合、
 正確にドラッグ&ドロップができない可能性があります。

 システムの画面やブラウザでスクロールなどがずれるだけでも影響がありそうですね。

2.解決策

 固定値で指定するのではなく、毎回座標を取得することで

 より安定したドラッグ&ドロップを実現したいと思います。

 下記の手順で「移動対象」と「目的地」の座標を取得します。

  ①「キャプチャ」アクションや、「画像認識」パッケージを使い、
   「移動対象」又は「目的地」を右クリックする。

    ※クリック、左クリックすると処理が実行されてしまう場合は、
     右クリック等影響のないイベントを選択してください。

  ②マウスカーソルの座標を取得し、
   「移動対象」又は「目的地」の座標として変数に格納する。

 取得した座標は、「クリック」アクションの「マウス位置」に設定します!

3.ボットを作成する

 マウスカーソルの座標を取得するアクションはないので、

 下記のようなVBScriptで座標を取得します。

  1. '***************************************
  2. 'マウスカーソルの座標取得
  3. '***************************************
  4. Function GetMousePoint()
  5. Dim myPoint, x, y
  6. myPoint = API_GetMessagePos
  7. x = myPoint(0)
  8. y = myPoint(1)
  9. GetMousePoint = x & "," & y
  10. End Function
  11. '************************
  12. 'API呼び出し
  13. '************************
  14. Function API_GetMessagePos()
  15. Set Excel = WScript.CreateObject("Excel.Application")
  16. Dim ret, strHex, x, y
  17. Dim strFunction
  18. Const API_STRING = "CALL(""user32"",""GetMessagePos"",""J"")"
  19. strFunction = API_STRING
  20. ret = Excel.ExecuteExcel4Macro(strFunction)
  21. strHex = Right("00000000" & Hex(ret), 8)
  22. x = CLng("&H" & Right(strHex, 4))
  23. y = CLng("&H" & Left(strHex, 4))
  24. API_GetMessagePos = Array(x, y)
  25. End Function

 座標を取得する機能として何度も呼び出したいので、

 このVBScriptを実行して結果(座標)を返却するボットを作成しました。

 【マウスカーソルの座標を取得するボット】

004.png

 上記の座標取得ボットを使ってドラッグ&ドロップを実行する

 デモボットを作成しました。

 【ドラッグ&ドロップ操作のデモボット】

005.png

 実行している様子はこちらの動画をご覧ください。

4.まとめ

ドラッグ&ドロップ操作の自動化をご紹介しました。

座標の取り方を工夫することで、より良いドラッグ&ドロップができるようになったと思います。

ご覧いただいた動画内では、ドラッグ&ドロップ以外のボット開発のTipsをご紹介していますので、

是非ご覧ください。

またお会いしましょう!それでは!
 

AA_EV_Banner2.png

著者紹介

先端技術推進統括部
RPAビジネス推進部
鈴木 陽介

C#によるシステム開発、POS開発を経てRPAエンジニアに。