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秒かけて移動」します。
マウスの移動でエラーがあれば調整してみてください。
スクリーンショット|画像キャプチャ
クリックしたい「座標情報」が一定でないとき、「画像認識」によって「画像の中心座標」を取得することができます。
操作の手順はこちらです。
- 「座標情報」がほしい「画像データ」をよみこむ
- 「座標情報」を取得する
- 取得した「座標情報」をクリックする
動作 | コード | 引数 | 意味 |
画像の中心座標を取得 | 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でなくてもいいものは「別のツール」をつかったほうが効率的かもしれません。