困っている人
- PyAutoGUIとはどういうものか。RPA、VBA・マクロとの違いを知りたい。
- PyAutoGUIでマウス・キーボード操作を自動化する方法を教えてほしい。
- PyAutoGUIとRPA、VBA・マクロとの違いを知ることができます。
- マウス・キーボード操作を自動化する方法が分かります。
目次
PyAutoGUIとは
PyAutoGUIとはPythonライブラリの1つで、マウスやキーボード操作を自動化できるツール(無料)のことです。Windows、macOS、Linuxで動作します。
具体的には、マウスを自動操作してアプリケーション(Excelなど)ファイルを開いたり、キーボードを自動操作して数値や文字を入力することができます。
また、事前に用意した画像がデスクトップ上にあるかどうか認識させ、クリックなどの指示も可能です。
PyAutoGUIを使えば人間よりも何倍も速く正確に、ルーチン業務を処理することができます。 RPAとはロボティック・プロセス・オートメーションの略で、ロボットによる業務の自動化を表す言葉です。 基本的には、PyAutoGUIと同じで、マウスやキーボード操作を自動化できるのですが、プログラミングの知識がなくても動かせる点が特徴です。 ただし、導入規模に応じて費用が高額になってしまうところがネックです。 VBA(Visual Basic for Applications)とは、Excel、Access、Wordなどのオフィスソフトにおいて、プログラミング言語のVisual Basicの簡易版を使って、複雑な処理でも自動化できる点が特徴です。 ただし、オフィスソフトでしか動作しません。 PyAutoGUIはデスクトップ上で様々なアプリケーション(オフィスソフトを含む)をまたぐ操作が可能で、RPAに近い機能を持っています。 プログラミング言語Pythonを覚える必要がありますが、無料で使えるというメリットがあります。 注意点としては、クラウド型のプログラミング実行環境であるGoogle Colab(グーグルコラボ)では動作しません。 ローカル型のプログラミング実行環境であるJupyterNotebook(ジュピターノートブック)をダウンロードする必要があります。 具体例として商品マスタ(Excel)の作成を紹介しますが、下記の8種類の基本的な構文を使用しています。 JupyterNotebookの実行環境を使ってマウス操作・キーボード操作を自動化し、商品マスタ(Excel)を作成します。 PyAutoGUIでコードを書く際には、座標を取得するのが面倒ですが、自動化の仕組みは単純です。 上記の8種類の基本的な構文だけで、自動実行のプログラミングコードの記述が可能です。 一見、コードが多くて難しそうに見えますが、ほとんどコピペなので簡単に作成できます。 ところどころに「sleep」を入れているのは、コンピューターの処理時間を確保して自動実行の安定化を図るためです。 Excel操作の自動化だけならVBA・マクロでも実現できますが、PyAutoGUIではExcel操作だけでなく、様々なアプリケーションをまたぐ操作が可能なため汎用性の高いツールです。 プログラミング言語Pythonを習得すれば無料で利用できるので、是非マウス・キーボード操作の自動化を試してみてください。 Pythonを勉強したいけど、いきなり数十万円もするプログラミングスクールに申し込む勇気がない。低価格で始められる、初心者にオススメなPython学習サイトが知りたい方は、Python学習サイトまとめを参考にしてください。
PyAutoGUIとは|RPA、VBA・マクロとの違い
RPAとは
WinActorの場合(年間費用)
VBA・マクロとは
PyAutoGUIのメリット
実行環境について
PyAutoGUIの基本操作
PyAutoGUIの基本操作一覧表
No.
基本的な構文
説明
1
pg.position()
現在のマウスの座標(x,y)を取得
2
pg.moveTo(x=100, y=200, duration=1)
指定の座標(x=100,y=200)まで、1秒でマウスを移動
3
pg.click(x=100, y=200, button=’left’)
指定の座標(x=100,y=200)で、1マウスを左クリック
4
pg.doubleClick(x=200, y=100)
指定の座標(x=100,y=200)で、ダブルクリック
5
sleep(3)
3秒間待機
6
pg.typewrite(‘excel’, 0.1)
「excel」とタイピング(1文字0.1秒)
7
pg.hotkey(‘return’)
「returnキー」を入力
8
pg.hotkey(‘ctrl’,’space’)
「ctrlキー」と「spaceキー」を同時入力(英字とひらがなの切り替え)
PyAutoGUIを使った自動化の具体例
PyAutoGUIによる処理内容(プログラミングコード)の詳細
プログラミングコード
#必要なライブラリのインポート
import pyautogui as pg
from time import sleep
#Excelの起動
pg.moveTo(x=1345, y=0, duration=1)
pg.moveTo(x=1345, y=12, duration=0.5)
pg.click(x=1345, y=12, button='left')
sleep(1)
pg.typewrite('excel', 0.1)
pg.hotkey('return')
sleep(3)
pg.moveTo(x=358, y=227, duration=1)
pg.doubleClick(x=358, y=227)
sleep(2)
#商品マスタの項目(列名)入力
pg.hotkey('ctrl','space')
pg.typewrite('syouhinnko-do\n')
pg.hotkey('tab')
pg.typewrite('syouhinnmei\n')
pg.hotkey('tab')
pg.typewrite('tannka\n')
pg.hotkey('return')
#商品コード入力
pg.hotkey('ctrl','space')
pg.typewrite('A001')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A002')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A003')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A004')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A005')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A006')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A007')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A008')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A009')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('A010')
pg.hotkey('return')
pg.hotkey('tab')
#商品名入力
for i in range(9):
pg.hotkey('shift', 'return')
sleep(1)
pg.typewrite('rinngo')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('budou')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('banana')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('momo')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('nasi')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('mikann')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('mango-')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('meronn')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('itigo')
pg.hotkey('return')
pg.hotkey('return')
pg.typewrite('doriann')
pg.hotkey('return')
pg.hotkey('tab')
sleep(1)
pg.hotkey('ctrl','space')
#単価の入力
for i in range(9):
pg.hotkey('shift', 'return')
pg.typewrite('150')
pg.hotkey('return')
pg.typewrite('300')
pg.hotkey('return')
pg.typewrite('200')
pg.hotkey('return')
pg.typewrite('400')
pg.hotkey('return')
pg.typewrite('200')
pg.hotkey('return')
pg.typewrite('250')
pg.hotkey('return')
pg.typewrite('450')
pg.hotkey('return')
pg.typewrite('900')
pg.hotkey('return')
pg.typewrite('350')
pg.hotkey('return')
pg.typewrite('1000')
pg.hotkey('return')
#Excelファイルの保存
pg.moveTo(x=132, y=13, duration=1)
pg.click(x=132, y=13, button='left')
pg.moveTo(x=137, y=164, duration=1)
pg.click(x=137, y=164, button='left')
sleep(3)
pg.hotkey('ctrl','space')
pg.typewrite('syouhinnmasuta')
pg.hotkey('return')
pg.moveTo(x=347, y=257, duration=1)
pg.click(x=347, y=257, button='left')
sleep(1)
pg.hotkey('return')
sleep(1)
pg.moveTo(x=67, y=14, duration=1)
pg.click(x=67, y=14, button='left')
pg.moveTo(x=82, y=216, duration=1)
pg.click(x=82, y=216, button='left')
PyAutoGUIのまとめ