メインコンテンツへスキップ

⌨️ PyAutoGUI キーボード操作

📖 はじめに

PyAutoGUIでは、キーボードからの文字入力や特殊キーの押下、ショートカットキーの実行などを自動化できます。

GUI自動化では、

  • 検索ボックスへの入力
  • ショートカットキーによる保存
  • Tabキーによるフォーカス移動
  • Enterキーによる決定

など、キーボード操作はマウス操作と並んで頻繁に利用されます。

この記事では、PyAutoGUIで利用できる代表的なキーボード操作について紹介します。


📦 PyAutoGUIの読み込み

最初にライブラリをインポートします。

import pyautogui

✍️ 文字を入力する

文字列を入力するには write() を使用します。

import pyautogui

pyautogui.write("Hello World!")

現在フォーカスされている入力欄へ文字が入力されます。

日本語入力(IME)には対応していないため、日本語を直接入力することはできません。

write()は英数字や記号の入力を目的とした関数です。日本語入力を自動化する場合は、クリップボードを利用した貼り付けなど別の方法を検討してください。


⏱️ 文字入力速度を指定する

文字を1文字ずつゆっくり入力することもできます。

pyautogui.write(
    "Hello",
    interval=0.2
)

この例では、0.2秒ごとに1文字ずつ入力されます。

デバッグ時や、入力速度が速すぎると認識されないシステムで役立ちます。


⌨️ 特殊キーを押す

特殊キーを押すには press() を使用します。

例えばEnterキーを押します。

pyautogui.press("enter")

Escキーの場合は次のようになります。

pyautogui.press("esc")

🔁 同じキーを複数回押す

press()には押下回数を指定できます。

pyautogui.press(
    "tab",
    presses=5
)

Tabキーを5回押します。

また、押下間隔も指定できます。

pyautogui.press(
    "down",
    presses=10,
    interval=0.1
)

カーソルキーの下を10回押します。


📋 よく使われるキー

PyAutoGUIでは、多くの特殊キーを文字列で指定します。

キー 指定する名前
Enter enter
Tab tab
Esc esc
Space space
Backspace backspace
Delete delete
Insert insert
Home home
End end
Page Up pageup
Page Down pagedown
up
down
left
right

キー名は文字列で指定します。大文字・小文字を区別しないものもありますが、公式ドキュメントの表記に合わせて小文字で記述することをおすすめします。


🎹 Functionキー

Functionキーも利用できます。

pyautogui.press("f5")

ブラウザの更新などで利用できます。

他にも

  • f1
  • f2
  • f3
  • f12

まで利用できます。


🤝 複数キーを同時に押す

ショートカットキーを実行するには hotkey() を使用します。

例えばコピーは次のようになります。

pyautogui.hotkey(
    "ctrl",
    "c"
)

貼り付けは

pyautogui.hotkey(
    "ctrl",
    "v"
)

保存は

pyautogui.hotkey(
    "ctrl",
    "s"
)

となります。

hotkey()は、キーを順番に押し、逆順で離してくれるため、安全にショートカットを実行できます。

Ctrl+CCtrl+Sなどのショートカットは、hotkey()を利用すると簡潔に記述できます。


🎛️ キーを押したままにする

キーを押したままにしたい場合は keyDown() を使用します。

pyautogui.keyDown("shift")

キーを離すには keyUp() を使用します。

pyautogui.keyUp("shift")

例えばShiftキーを押しながらカーソルを移動する場合は次のようになります。

pyautogui.keyDown("shift")

pyautogui.press("right")
pyautogui.press("right")
pyautogui.press("right")

pyautogui.keyUp("shift")

📑 複数キーを順番に入力する

キーの一覧を渡すこともできます。

pyautogui.press([
    "tab",
    "tab",
    "enter"
])

Tabキーを2回押した後、Enterキーを押します。

画面遷移やダイアログ操作でよく利用されます。


🌍 修飾キー

ショートカットで利用する主な修飾キーです。

キー 指定する名前
Ctrl ctrl
Shift shift
Alt alt
Windowsキー win
Command(macOS) command
Option(macOS) option

OSによって利用できるキーは異なります。


💡 実践例

次の例では、

  1. テキストを入力
  2. 全選択
  3. コピー

を実行します。

import pyautogui

pyautogui.write("Hello World!")

pyautogui.hotkey(
    "ctrl",
    "a"
)

pyautogui.hotkey(
    "ctrl",
    "c"
)

GUI自動化では、ショートカットキーを利用すると、マウス操作より高速かつ安定して処理できる場合があります。


⚠️ キーボード操作で注意すること

キーボード入力は、現在フォーカスされているウィンドウや入力欄へ送信されます。

そのため、

  • 別のウィンドウをクリックしてしまった
  • ダイアログが表示された
  • 入力欄にフォーカスがない

といった状況では、意図しない場所へ入力される可能性があります。

また、IMEが日本語入力モードになっていると、期待どおりに入力できないことがあります。

入力を開始する前に、対象の入力欄へ確実にフォーカスがあることを確認しましょう。


🔐 安全に利用するためのポイント

キーボード操作では、入力先を誤ると予期しないデータの変更につながる場合があります。

特に、

  • Deleteキー
  • Backspaceキー
  • ショートカットキー
  • Enterキー

などは、現在の画面状態によって実行結果が大きく変わります。

処理の途中でダイアログが表示される場合は、画面状態を確認してからキー入力を行うように設計すると、安全性が向上します。

Deleteキーや保存系ショートカットを自動実行する場合は、テスト環境で十分に確認してください。 誤ったウィンドウで実行されると、ファイルの削除や意図しない上書き保存につながる可能性があります。


📝 まとめ

PyAutoGUIでは、文字入力からショートカットキーまで幅広いキーボード操作を自動化できます。

代表的な機能は次のとおりです。

  • write():文字入力
  • press():キーを押す
  • hotkey():ショートカットキー
  • keyDown():キーを押したままにする
  • keyUp():キーを離す

マウス操作と組み合わせることで、ほとんどのGUI操作を自動化できます。また、ショートカットキーを積極的に利用すると、マウス操作よりも高速で安定したスクリプトを作成できる場合があります。