Pythonでマウス操作を自動化する方法まとめ

Pythonでマウス操作を自動化したい方に向けて、基本的なやり方から実践的なテクニックまで、初心者にもわかりやすく解説します。本記事を読めば、日々の面倒な作業を効率化できる自動化スクリプトが作れるようになります。


Pythonのマウス操作は「PyAutoGUI」や「pynput」で簡単に実現できる

Pythonでマウスの移動やクリック、ドラッグ、スクロールなどの操作を自動化するには、「PyAutoGUI」や「pynput」といったライブラリを使うのが一般的です。これらを活用すれば、どんなアプリケーションでも人間の代わりにマウス操作を自動化できます。


なぜPythonでマウス操作を自動化するのか?

  • ExcelやWebブラウザなど、Pythonで直接操作できるアプリは多いですが、全てのアプリに対応しているわけではありません。
  • 直接操作できないアプリでも、マウスとキーボードを自動化することで作業効率を大幅にアップできます。

主要ライブラリの特徴と使い方

PyAutoGUI

インストール方法

pip install pyautogui

基本的な使い方

操作コマンド例説明
マウス移動pyautogui.moveTo(300, 400)指定座標(x=300, y=400)に移動
現在位置取得pos_x, pos_y = pyautogui.position()現在のマウス座標を取得
左クリックpyautogui.click()現在位置で左クリック
座標指定クリックpyautogui.click(x=100, y=200)指定位置でクリック
右クリックpyautogui.click(button='right')右クリック
ダブルクリックpyautogui.click(clicks=2, interval=0.5)0.5秒間隔で2回クリック
長押しpyautogui.mouseDown() / pyautogui.mouseUp()マウスボタンの押下・解除
スクロールpyautogui.scroll(500) / pyautogui.scroll(-500)上方向/下方向にスクロール

応用例:ペイントで四角形を自動描画

import pyautogui

length = 100
pyautogui.moveTo(300, 400)
pyautogui.mouseDown()
pyautogui.moveTo(700, 400)
pyautogui.moveTo(700, 500)
pyautogui.moveTo(300, 500)
pyautogui.moveTo(300, 400)
pyautogui.mouseUp()

このように座標を指定して移動・クリック・ドラッグなどを組み合わせることで、複雑な操作も自動化できます。


pynput

インストール方法

pip install pynput

基本的な使い方

from pynput.mouse import Button, Controller
mouse = Controller()
mouse.position = (500, 300)           # 指定位置に移動
mouse.click(Button.left, 1)           # 左クリック
mouse.press(Button.left)              # ボタン押下
mouse.move(100, 100)                  # 相対移動
mouse.release(Button.left)            # ボタン離す
mouse.scroll(0, 2)                    # スクロール

pynputはイベント駆動型の記述が得意で、クリックイベントの監視やリアルタイム制御にも向いています。

マウス操作自動化のポイント

  • 座標指定:画面左上が(0,0)。モニター解像度によって最大値が異なるため、事前に座標を確認しましょう。
  • クリックの種類:左クリック、右クリック、ダブルクリック、長押しなど多様な操作が可能です。
  • スクロールやドラッグ:ホイール操作やドラッグ&ドロップも簡単に自動化できます。
  • 画像認識との連携:PyAutoGUIは画像認識で特定ボタンを探してクリックすることも可能です。

まとめ

Pythonでマウス操作を自動化するには「PyAutoGUI」や「pynput」が便利です。座標指定やクリック、スクロール、ドラッグなど多彩な操作が簡単に実装でき、日々の作業効率化に大きく貢献します。まずはサンプルコードを試して、身近な作業から自動化を始めてみましょう。

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村

Recent Posts