日々の繰り返し作業を自動化したいと思ったことはありませんか? Pythonの「PyAutoGUI」ライブラリを活用すれば、手作業で行っていたオフィスワークやPC操作を簡単に自動化できます。本記事では、PyAutoGUIを使ったRPA(Robotic Process Automation)の基礎から応用までを詳しく解説します。
PyAutoGUIとは?
PyAutoGUIは、Pythonを使用してPCのマウスやキーボード操作を自動化できるライブラリです。
主な機能
- マウス操作:クリック、移動、ドラッグ
- キーボード入力:キー入力、ショートカットキー操作
- スクリーンキャプチャ:画像認識によるGUI要素の検出
- メッセージボックス:確認用のポップアップ表示
これらの機能を組み合わせることで、手作業で行っていたルーチンワークを効率的に自動化できます。
PyAutoGUIのインストールと基本操作
まず、PyAutoGUIをインストールしましょう。
pip install pyautogui
次に、基本的な操作を確認していきます。
画面サイズの取得
import pyautogui
# 画面サイズを取得
screen_width, screen_height = pyautogui.size()
print(f"画面サイズ: {screen_width}x{screen_height}")
マウス操作の基本
# マウスを特定の位置に移動
pyautogui.moveTo(500, 500, duration=1)
# クリック操作
pyautogui.click()
# ドラッグ操作
pyautogui.dragTo(100, 100, duration=2)
キーボード操作の基本
# 文字入力
pyautogui.write("Pythonで自動化", interval=0.1)
# ショートカットキー操作(Ctrl + S)
pyautogui.hotkey("ctrl", "s")
PyAutoGUIを使用したRPAの具体例
1. Webアプリのログイン自動化
以下のスクリプトは、ブラウザを開いてログイン操作を自動化します。
import pyautogui
import webbrowser
import time
# 指定のURLを開く
webbrowser.open("https://example.com/login")
time.sleep(3)
# ユーザー名の入力
pyautogui.click(500, 300)
pyautogui.write("my_username")
# パスワードの入力
pyautogui.click(500, 350)
pyautogui.write("my_password")
# ログインボタンをクリック
pyautogui.click(500, 400)
2. Excelデータの入力自動化
Excelに定型データを入力する作業も自動化できます。
# Excelを開く
pyautogui.press("win")
time.sleep(1)
pyautogui.write("Excel")
pyautogui.press("enter")
time.sleep(3)
# セルにデータを入力
pyautogui.click(300, 300)
pyautogui.write("データ入力自動化")
3. 画像認識によるボタンクリック
特定のボタンやアイコンをスクリーン上で検出し、クリックすることも可能です。
# 画像を認識してクリック
button_location = pyautogui.locateOnScreen('login_button.png', confidence=0.8)
if button_location:
pyautogui.click(button_location)
print("ボタンをクリックしました")
else:
print("ボタンが見つかりません")
PyAutoGUIの自動実行方法
定期的にスクリプトを実行するために、以下の方法を活用できます。
Windowsの場合(タスクスケジューラ)
- 「タスクスケジューラ」を開く
- 「基本タスクの作成」→スクリプトのパス(例:
C:\path\to\script.py
)を指定 - スケジュール(毎日・毎時間など)を設定
macOS/Linuxの場合(cron)
ターミナルで以下のコマンドを入力し、スケジュールを設定します。
crontab -e
例: 毎日午前9時にスクリプトを実行
0 9 * * * /usr/bin/python3 /path/to/script.py
PyAutoGUIを使う際の注意点
- 解像度依存:スクリプトはPCの画面解像度に依存するため、環境が異なると調整が必要。
- 誤動作防止:安全対策として、マウスを画面の隅に動かすとスクリプトを停止する設定を活用。
pyautogui.FAILSAFE = True
まとめ
PyAutoGUIを活用すれば、手作業による繰り返し業務を簡単に自動化できます。特に以下のような作業に役立ちます。
- 定型的なデータ入力(Excel、Webフォームなど)
- ボタン操作を伴う反復作業
- 画像認識を用いたGUI操作の自動化
これを機に、PythonでRPAに挑戦してみませんか?
コメント