【Python入門】PyAutoGUIで自動スクリーンショットツールを作る方法を解説!

【Python入門】PyAutoGUIで自動スクリーンショットツールを作る方法を解説!

Pythonのライブラリ「PyAutoGUI」を使って、簡単に自動スクリーンショットツールを作る方法を解説します。この記事では、画面キャプチャの基本から、GUI(グラフィカルユーザーインターフェース)でボタンを押してキャプチャできるツールの作成までを、初心者にも分かりやすく丁寧に紹介します。

PyAutoGUIとは何か?

PyAutoGUIは、Pythonでマウス操作やキーボード操作、画面キャプチャなどを自動化するためのライブラリです。Windows、Mac、Linuxのいずれの環境でも使用でき、プログラミングによって人間の操作を模倣することができます。

このライブラリを使えば、Pythonを通して画面全体のスクリーンショットを撮ることができ、それを自動で保存することも可能です。

PyAutoGUについて詳しく知りたい方は、ぜひこちらの記事もご覧ください。

【初心者向け】PyAutoGUIの使い方完全ガイド|Pythonで画面操作を自動化しよう!

PyAutoGUIを使った基本のスクリーンショット方法

まずは、PyAutoGUIを使って画面キャプチャを行う基本的な方法を紹介します。

必要なライブラリのインストール

PyAutoGUIはpipで簡単にインストールできます。

pip install pyautogui

スクリーンショットを撮るPythonコード

以下は画面全体をキャプチャして画像として保存するシンプルなコードです。

import pyautogui

# 画面全体をキャプチャ
screenshot = pyautogui.screenshot()

# ファイルとして保存
screenshot.save('screenshot.png')

このコードを実行すると、現在の画面全体を撮影し、”screenshot.png”という名前で保存します。

TkinterでGUIを作成してボタンでキャプチャする方法

次に、Pythonの標準ライブラリであるTkinterを使って、ボタンを押すとスクリーンショットが撮影される簡単なアプリケーションを作成してみましょう。

Tkinterは、PythonでGUIアプリを作るためのライブラリです。ボタンやラベル、テキスト入力などを簡単に作ることができます。

GUI付きのスクリーンショットツールのコード

import pyautogui
import tkinter as tk
from datetime import datetime
import os

# スクリーンショットを保存する関数
def take_screenshot():
    now = datetime.now()
    filename = now.strftime("screenshot_%Y%m%d_%H%M%S.png")
    screenshot = pyautogui.screenshot()
    screenshot.save(filename)
    status_label.config(text=f"スクリーンショットを保存しました: {filename}")

# GUIの設定
root = tk.Tk()
root.title("スクリーンショットツール")
root.geometry("300x150")

# ボタンの作成
capture_button = tk.Button(root, text="スクリーンショットを撮る", command=take_screenshot)
capture_button.pack(pady=20)

# ステータス表示用のラベル
status_label = tk.Label(root, text="")
status_label.pack()

# メインループ開始
root.mainloop()

このコードでは、ウィンドウが表示され、「スクリーンショットを撮る」ボタンをクリックすると、現在の画面がキャプチャされ、ファイルとして保存されます。

保存ファイル名は日時を含む形式(例: screenshot_20250321_120101.png)になっており、複数回の保存でも上書きされる心配がありません。

コードの解説

GUI付きのスクリーンショットツールのコードを理解することで、Pythonでの実用的なアプリ作成の流れがより明確になります。それぞれの構文や関数の意味を知っておくと、今後の応用やカスタマイズにも役立ちます。

pyautogui.screenshot()

画面全体のスクリーンショットをPillow(PIL)画像オブジェクトとして返します。Pillowは画像操作ライブラリで、PyAutoGUIの内部で使用されています。

datetime.now().strftime()

現在の時刻を取得して、”年_月_日_時_分_秒”の形式で文字列に変換します。ファイル名の重複を避けるために使われています。

tk.Button()commandオプション

GUIにボタンを表示し、押したときに特定の関数を呼び出すように設定しています。

status_label.config(text=...)

ボタンを押したあと、スクリーンショットが保存されたことをユーザーに伝えるための表示です。

Python初心者にとってのメリット

このようにPyAutoGUIとTkinterを組み合わせることで、プログラミング初心者でも自分だけの便利なツールを作ることができます。特にGUIを使ったアプリは、完成したときの満足感も大きく、プログラミングの学習モチベーションにもつながります。

また、画面キャプチャツールは実用性も高く、日々の作業記録、ゲーム画面の保存、資料作成などさまざまなシーンで活用できます。

応用アイデア

  • 一定時間ごとに自動でキャプチャする
  • 特定の画面領域だけをキャプチャする
  • キャプチャした画像を自動でフォルダ分け
  • DropboxやGoogle Driveに自動アップロード(外部API連携)

といったように、アイディア次第でさらに便利なツールに発展させることも可能です。

まとめ

今回は、【Python入門】PyAutoGUIで自動スクリーンショットツールを作る方法として、基本的なキャプチャコードから、Tkinterを用いたGUIアプリの作り方までを丁寧に解説しました。

PyAutoGUIとTkinterの組み合わせは、初心者にとっても取り組みやすく、日常的に使える実用的なツール作りに最適です。この記事を参考に、ぜひ自分だけのスクリーンショットツールを作ってみてください。