【Python】PyAutoGUIの使い方|かんたんRPA

Python

RPAの導入を検討しているときに無料ツールに出会いました。

Pythonをつかった完全無料のRPAツールのつくり方をご紹介します。

スポンサーリンク

PRAとは

RPAとは「Robotic Process Automation」の略称です。
「ロボットによる工程の自動化」という理解ですね。

たとえばExcelやWebブラウザの自動操作ができて、このようなメリットが期待されています。

  • 働き方改革の実現
  • 人的ミスの防止
  • 人手不足の解消

PyAutoGUIとは

プログラミング言語「Python」でつかえるマウス操作」や「キーボード入力」を自動操作する無料のツールです。

事前準備

こちらはすでに「Python」がインストールされていることが前提です。

まずはpipをつかってライブラリをインストールしておきましょう。

pip install pyautogui

使い方

実際にRPAツールのテストでつかった、わたしが思う「よく使われる」機能をご紹介します。

おもにこのライブラリで自動制御できることはこちらです。

  • マウスの操作
  • キーボードの操作

マウスの操作

パソコン画面の「座標情報」をつかってマウスの制御をします。

事前知識

ここでつかわれる「座標」について理解をしておきましょう。

画面の「左上」が(x=0,y=0)です。
ポインタが「右」にすすめば「x」が増えます。
ポインタが「下」にすすめば「y」が増えます。

こちらはイメージです。

ポインタ
動作コード
ポインタの現在位置を表示position()

設定をするうえで、マウスの座標を調べるときによく使いました。

クリック
動作コード
左ボタンをクリックclick(x,y)
左ボタンをダブルクリックdoubleClick(x,y)
左ボタンを押しながらドラッグ
(ポインタ現在位置から開始)
dragTo(x,y)
右ボタンをクリックrightClick(x,y)

引数で「duration」を指定できます。
たとえば、「duration=3」とすれば「3秒かけて移動」します。

マウスの移動でエラーがあれば調整してみてください。

スクリーンショット|画像キャプチャ

クリックしたい「座標情報」が一定でないとき、画像認識」によって「画像の中心座標」を取得することができます。

操作の手順はこちらです。

  1. 「座標情報」がほしい「画像データ」をよみこむ
  2. 「座標情報」を取得する
  3. 取得した「座標情報」をクリックする
動作コード引数意味
画像の中心座標を取得locateCenterOnScreen()file_name「画像データ」を指定します
grayscaleグレースケールの選択ができます
confidence画像の精度を調整します

座標情報がほしい「画像データ」をあらかじめ準備する必要があります。スクリーンショット機能とトリミングをつかって作っておきましょう。

(こちらは作成例です)

キーボードの操作

基本的にはキーの名前をそのまま入力します。

キーの入力」はこちらです。

動作コード
「上」を押すpress(“up”)
「下」を押すpress(“down”)
「左」を押すpress(“left”)
「右」を押すpress(“right”)
enterを押すpress(“enter”)
tabを押すpress(“tab”)
左側のスタートボタン
(Windowsキー)を押す
press(“winleft”)

キーを同時押し」するときはこちらです。

動作コード
「ctrl」+「c」の同時押しhotkey(“ctrl”,”c”)
「tab」+「shift」の同時押しhotkey(“shift”,”tab”)
「winleft」+「up」の同時押しhotkey(“winleft”,”up”)

「press」や「hotkey」のまえに「pyautogui.」を記述してくださいね。

文字入力」はこちらです。

動作コード
文字の入力write()

たとえば、第2引数に「0.5」を入力すると「0.5秒ごとに」文字を入力します。

入力エラーがあればお試しください。

スポンサーリンク

あわせて使いたいライブラリ3選

「PyAutoGUIだけ」では、いろいろと不都合がありますので他のライブラリもあわせて使います。

  • time…動作スピードを抑制させるため
  • openpyxl…Excelの操作をするため
  • pyperclip…キーボードで「日本語入力」をするため

time

PyAutoGUIだけでプログラムを実行させると、動作がはやすぎて「操作される側」の動作が追いつきません

そのためこのライブラリをつかって、動作のあいだに「処理待ち時間」をもうけます。

たとえば、このような使い方です。
「5秒まって」と書いてあります。

time.sleep(5)

pyperclip

PyAutoGUIだけでは、「日本語入力」ができません。
英数字のみ対応のようです。

そのため、日本語を入力したいときは「クリップボードを経由して文字入力をします。

たとえば、このような使い方です。

pyperclip.copy("これは日本語です。")
pyautogui.hotkey("ctrl", "v")

openpyxl

このライブラリをつかってExcelからデータを取得します。

「セルに入力している値を順番にシステムに転記する」といった自動化をするときに使います。

まとめ

PyAutoGUIをつかった無料PRAの作り方をご紹介いたしました。

今回のテストでは、自動化させたいツールの応答速度にあわせて調整が必要なため「time.sleep()」をかなり多くつかいました。

プログラムの実行速度や精度などを考えると、PRAでなくてもいいものは「別のツール」をつかったほうが効率的かもしれません。

タイトルとURLをコピーしました