Python

最終更新日: 2023.10.19 (公開: 2023.10.19)

【Python】PyAutoGUIとは?できることや使い方を解説

【Python】PyAutoGUIとは?できることや使い方を解説

PyAutoGUIは、マウス操作やキーボード操作を自動化するためのライブラリです。本記事ではPyAutoGUIのインストール方法や使い方を解説します。

PyAutoGUIとは「Python」で使えるライブラリであり、PyAutoGUIを利用することで「マウス操作」や「キーボード入力」などの自動操作が可能となります。

PyAutoGUIによる自動操作をうまく活用できれば、単調な作業を効率よくこなせるようになるでしょう。

本記事では、PyAutoGUIのインストール方法や初期設定の方法、使い方などについて解説します。

PyAutoGUIとはどんなライブラリ?

PyAutoGUIとはどんなライブラリ?

PyAutoGUIとは、「マウス操作」や「キーボード操作」などを自動化したい時に使用する「Python」のライブラリです。

Windows、MacOS、LinuxなどOSを問わず使用でき、Python2、3のどちらでも動作します。

マウス操作やキーボード操作を自動化することで人的ミスの防止につながり、作業効率化の向上が期待できます。

PyAutoGUIは無料で使用でき、使い方もそれほど難しくないため、数ある「Python」のライブラリの中でも有用なツールです。

PyAutoGUIのインストール・初期設定の方法

PyAutoGUIのインストール・初期設定の方法

ここからは、PyAutoGUIのインストールおよび初期設定の方法について解説します。

PyAutoGUIは以下の手順で導入していきましょう。

  • PyAutoGUIをインストールしてみよう
  • PyAutoGUIを読み込ませよう

PyAutoGUIをインストールしてみよう

PyAutoGUIは「Python」のライブラリなので、「Python」がインストールされていることが前提となります。

「Python」をインストールしていない場合は、まず「Python」をインストールしてください。

PyAutoGUIをインストールするには、「Python」がインストールされた状態でコマンドプロンプトに「pip install pyautogui」と入力し実行します。MacOSの場合はターミナルで実行してください。

pip install pyautogui

実行後は、正しくインストールされたかを「pip list」を実行して確認しましょう。
pip listを実行するとインストールしたパッケージとパッケージのバージョンが表示されるため、PyAutoGUIとそのバージョンが表示されていれば正しくインストールできています。

PyAutoGUI

PyAutoGUIを読み込ませよう

インストールが完了したら、初期設定としてPyAutoGUIを読み込ませましょう。

「Python」インタプリタを起動して(MacOSはターミナル)以下のコマンドを実行してください。

import pyautogui
PyAutoGUI
import pyautogui

このコマンドを実行することで、「Python」でPyAutoGUIを使用できるようになります。

PyAutoGUIの使い方

PyAutoGUIの使い方

PyAutoGUIの具体的な使い方は、以下の通りです。

  • マウスカーソル移動を自動化させる
  • クリックを自動化させる
  • ドラッグを自動化させる
  • 文字入力を自動化させる
  • 特殊キー入力を自動化させる
  • キーの同時入力を自動化させる
  • スクリーンショットを撮る
  • 実行中のプログラムを停止させる
  • メモ帳に実行内容を保存する

それぞれ詳しく解説します。

マウスカーソル移動を自動化させる

マウスカーソル移動を自動化させるには「moveTo()」を使用します。マウスカーソルを移動させたい地点のX/Y座標を引数に与えることで、指定した位置にマウスカーソルが移動します。

座標を指定する必要があるため、画面のサイズを事前に確認しておいてください。
「print(pyautogui.size())」を実行することで画面サイズを確認できます。

moveTo()を使用した実際のコードは以下の通りです。

pyautogui.moveTo(300, 400)

このコードを実行すると、座標(300,400)にマウスカーソルが一瞬で移動します。

人が動かしているような挙動でマウスカーソルを移動させたい場合は、「duration」で移動時間を指定しましょう。

pyautogui.moveTo(300, 400, duration=3)

このコードを実行すると、3秒かけた指定した座標にマウスカーソルが移動します。

マウスカーソルを現在の位置から相対的に移動させたい場合はmoveTo()ではなく「moveRel()」を使用しましょう。

pyautogui.moveRel(100, -200, duration=3)

このコードを実行すると、3秒かけて現在の位置から右に100、上に200マウスカーソルが移動します。

クリックを自動化させる

クリックを自動化させるには「click()」を使用します。クリックをする座標やクリックするボタン、回数や間隔などを細かく指定することが可能です。

何も指定せず「pyautogui.click()」とした場合は、現在の位置で左クリックを1回おこないます。

クリックする座標とクリックするボタンを指定する場合のコードは以下の通りです。

pyautogui.click(300, 400, button=”right”)

このコードを実行すると、座標(300,400)までマウスカーソルが移動した後に右クリックを1回おこないます。

上記のコードに加え、クリック回数とクリック間隔も指定する場合のコードは以下の通りです。

pyautogui.click(300, 400, button=”right”, clicks=2, interval=1)

このコードを実行すると、座標(300,400)までマウスカーソルが移動した後に1秒間隔で右クリックを2回おこないます。

ドラッグを自動化させる

ドラッグを自動化させるには「dragTo()またはdrag()」を使用します。カーソル移動の際に使用したmoveTo()と同様に、dragTo()で指定した座標へカーソルを移動させることが可能です。

dragTo()を使用した実際のコードは以下のようになります。

pyautogui.dragTo(300, 400, duration=3, button=”left”)

このコードを実行すると、左ボタンを押したまま座標(300,400)に3秒かけてマウスカーソルが移動します。

drag()を使用することで、moveRel()の時と同じく現在位置からの相対的な移動が可能です。

drag()を使用した場合のコードは以下のようになります。

pyautogui.drag(100, -200, duration=3, button=”right”)

このコードを実行すると、右ボタンを押したまま、3秒かけて現在の位置から右に100、上に200マウスカーソルが移動します。

文字入力を自動化させる

文字入力を自動化させるには「write()」を使用します。write()に文字列を与えることで文字の自動入力が可能です。

処理速度は非常に早く、50文字程度の文字列であれば約0.1秒で入力が完了します。

write()を使用した実際のコードは以下の通りです。

pyautogui.write("test")

このコードを実行すると、testという文字列が入力されます。

特殊キー入力を自動化させる

特殊キー入力を自動化させるには「press()」を使用します。press()にあらかじめ決められている文字列を与えることで、特殊キーの自動入力が可能です。

EnterキーやBackspaceキー、Altキーなどが特殊キーに該当します。

press()を使用した実際のコードは以下の通りです。

pyautogui.press("backspace")

このコードを実行すると、Backspaceキーが入力されます。

キーの同時入力を自動化させる

キーの同時入力を自動化させるには「keyDown()」と「keyUp()」を組み合わせて使用します。keyDown()でキーを押してそのまま離さない動作、keyUp()で押していたキーを離す動作が可能です。

keyDown()とkeyUp()を使用した実際のコードは以下のようになります。

pyautogui.keyDown("shift")
pyautogui.keyDown(“a”)
pyautogui.keyUp(“shift”)
pyautogui.keyUp(“a”)

このコードを実行することで、Shiftとaが同時入力されます。

また「hotkey()」を使用することでもキーの同時入力ができます。hotkey()で任意のキーを引数に指定することにより、指定したキーを順番に押し、その操作の後に逆順で離す動作が可能です。

hotkey()を使用した実際のコードは以下のようになります。

pyautogui.hotkey(“shift”, “a”)

このコードを実行することで、Shiftとaが同時入力され、大文字の「A」が表示されます。

スクリーンから指定した画像を探す

スクリーンから指定した画像を探すには「locateCenterOnScreen」を使用します。この機能によって、デスクトップ画面のスクリーンショットを撮り、その中から指定した画像の中心の座標を返しますを探し出します。

特定の画像やアイコンの位置を自動的に検出できるため、特定のボタンやアイコンをクリックする操作を自動化する際に指定した画像の座標を事前に指定できない場合に役立つでしょう。ちます。

locateCenterOnScreenを使用した実際のコードは以下の通りです。

file = "test.png"
location = pyautogui.locateCenterOnScreen(file)

このコードを実行することで、デスクトップ上にtest.pngが存在しているかの確認がおこなわれ、存在していれば画像その中心の座標が取得できます。

実行中のプログラムを停止させる

実行中のプログラムを停止させるには「fail-safeモード」を使用します。fail-safeモードは、マウスカーソルを画面の一番左上(座標X0,Y0)に移動させると起動し、起動することで実行中のプログラムが停止されます。

マウスカーソルやキーボードの自動化が実行されていても、手動でのマウス操作やキー入力は可能です。なんらかの理由で実行中のプログラムを停止させたい場合は、自分でマウスカーソルを画面左上まで動かしましょう。

fail-safeモードが起動すると以下のようなエラーが表示されますが、動作としては正常なため問題ありません。

pyautogui.FailSafeException: PyAutoGUI fail-safe triggered from mouse moving to a corner of the screen. To disable this fail-safe, set pyautogui.FAILSAFE to False. DISABLING FAIL-SAFE IS NOT RECOMMENDED.

メモ帳に実行内容を保存する

最後に、ここまで紹介した動作を組み合わせてメモ帳を開き、実行内容を保存するまでの一連の流れをコーディングしてみましょう。

メモ帳に実行内容を保存する流れを自動化するには「pyautogui.PAUSE」の設定が有効です。

pyautogui.PAUSEはPyAutoGUIが操作した後の待機時間を設定するためのもので、これを設定しない場合、メモ帳が起動する前に文字の入力が始まってしまうため処理が正常に動作しません。

実際のコードは以下の通りです。

pyautogui.PAUSE = 1.0
pyautogui.press("win")
pyautogui.write("memo")
pyautogui.press("enter")
pyautogui.write("test")
pyautogui.hotkey("ctrl", "s")
pyautogui.write("test.txt", interval=0.25)
pyautogui.press("enter")

まずpress()でwinキーを入力しましょう。

その後、write()で検索ボックスにmemoと入力し、そのままpress()でEnterキーを入力することでメモ帳が起動します。

次の行では起動したメモ帳にtestと入力し、hotkey()で保存のショートカットキーを同時入力しています。

最後はwrite()でファイル名「test.txt」を入力し、press()でEnterキーを入力することでメモ帳への実行内容の保存は完了です。

PyAutoGUIを使う上で注意しておきたいポイント

PyAutoGUIを使う上で注意しておきたいポイント

PyAutoGUIを使う際、マウスやキーボードを自動化すると、動作の制御を「Python」がおこなうため、手動での入力動作が不規則になります。

手動での入力も可能ですが、「Python」が動作を制御している間は通常の動作ができない点には注意が必要です。

PyAutoGUIを使ってできる事例2選

PyAutoGUIを使ってできる事例2選

PyAutoGUIを使用することで、以下の業務を自動化できます。

  • Google検索での自動検索機能
  • Excelの自動化

それぞれ詳しく解説します。

Google検索での自動検索機能

PyAutoGUIを使用することで、Google検索の自動化が可能となります。

実際のコードは以下の通りです。この例ではGoogleChromeのアイコンを「chrome.png」としています。

import pyautogui
import time

google = "chrome.png"
location = pyautogui.locateCenterOnScreen(google)
pyautogui.click(location, clicks=2)
time.sleep(4)

pyautogui.write("test")
pyautogui.press("enter")

このコードを実行すると、デスクトップ上のGoogleChromeが起動し、文字列「test」でGoogle検索が実行されます。

複数行のテキストを一度に入力する場合や特殊な文字を扱いたい場合は、後述するライブラリ「pyperclip」を導入しましょう。

Excelの自動化

PyAutoGUIでExcelの操作を自動化させる手順は以下の通りです。

import pyautogui
import time

pyautogui.press(”win”)
pyautogui.write(”excel”)
time.sleep(1)

pyautogui.press(”enter”)
time.sleep(5)

position = pyautogui.locateOnScreen(”empty_book.jpg”)
pyautogui.click(position)

pyautogui.write(”test”)
pyautogui.hotkey(”ctrl”, ”s”)

pyautogui.write(”excelauto”, interval=0.25)
pyautogui.press(”enter”)

pyautogui.hotkey(“alt”, “f4”)

このコードを実行することでExcel起動後、文字列「test」を入力しファイル名「excelauto」で保存されます。

最後のaltとF4の同時入力は、Excelを終了させるための処理です。

PyAutoGUIと一緒に使いたいライブラリ

PyAutoGUIと一緒に使いたいライブラリ

PyAutoGUIはライブラリを併用することで、より効率的に使用することが可能です。

PuAutoGUIと一緒に使いたいおすすめのライブラリは以下の3つとなります。

  • timeライブラリ
  • openpyxlライブラリ
  • pyperclipライブラリ

それぞれ詳しく解説します。

timeライブラリ

timeライブラリは時間に関係する情報および関数のライブラリです。PyAutoGUIだけでプログラムを実行させると、動作が早すぎて「操作される側」の処理が追いつかないため、動作の間に「処理待ち時間」を設けることでこの問題を解決できます。その際に使用するライブラリがtimeライブラリです。

たとえば「time.sleep(3)」とすることで3秒の処理待ち時間を設定することが可能です。

timeライブラリは「Python」の標準ライブラリの一部で、別途インストールする必要はありません。timeライブラリを利用することで現在時刻の取得や時刻のフォーマット変換なども可能となります。

openpyxlライブラリ

openpyxlライブラリはExcelの操作に特化したライブラリです。

openpyxlライブラリをインストールすることで、ワークブックの作成や読み込み、セルの読み取りや書き込みなどがおこなえます。

Office全般の操作ができるようになる「pywin32ライブラリ」に対し、openpyxlライブラリはExcelの操作のみに特化したライブラリなので注意しておきましょう。

pyperclipライブラリ

pyperclipライブラリはクリップボードを操作するライブラリで、pyperclipライブラリを活用することで、クリップボードのコピー&ペーストが可能となります。

PyAutoGUIで日本語入力する際、特定の環境やアプリケーションでは直接の入力が正常におこなえないことがあります。そのような場合、クリップボードを経由する方法が有効であり、pyperclipはその自動化に役立つライブラリです。

具体的には、Google検索の自動化などで日本語入力をおこないたい場合、先述したwrite()関数だけでは不十分な場合があるため、その場合には、pyperclipライブラリが有効な手段となります。

PyAutoGUIを使って各種操作を自動化させよう

PyAutoGUIを使って各種操作を自動化させよう

本記事では、PyAutoGUIのインストール方法や初期設定の方法、使い方などについて解説しました。

PyAutoGUIを使用すればさまざまな動作を自動化できるため、業務の効率化を検討している場合に活躍するライブラリです。

インストールや操作も比較的簡単なことから、「Python」を理解していればすぐに使うことができます。

さまざまな作業の自動化に役立つ機能が揃っているため、日頃から「Python」を扱う機会が多い方はぜひPyAutoGUIの導入を検討してみてください。

アクセスランキング 人気のある記事をピックアップ!

    コードカキタイがオススメする記事!

    1. 子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      2024.06.17

      子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      #プログラミングスクール

    2. 【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      2022.01.06

      【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      #プログラミングスクール

    3. 【未経験でも転職可】30代におすすめプログラミングスクール8選!

      2024.01.26

      【未経験でも転職可】30代におすすめプログラミングスクール8選!

      #プログラミングスクール

    4. 初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      2024.01.26

      初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      #JAVA

    5. 忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      2024.01.26

      忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      #プログラミングスクール

    1. 【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      2022.01.06

      【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      #プログラミングスクール

    2. 【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      2024.01.26

      【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      #プログラミングスクール

    3. 【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    4. 【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    5. 【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      2024.01.26

      【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      #プログラミングスクール