Pythonで自動化!pyautoguiを使って日本語入力を実現する方法

Pythonで業務を自動化しようとしてpyautogui を使い始めたとき、こんな壁にぶつかったことはありませんか?

  • 英数字は入力できる
  • でも、日本語だけが打てない
  • エラーも出ず、原因が分からない

実はこれ、pyautoguiを使った自動化で非常によくあるつまずきポイントです。

この記事では、

  • なぜpyautoguiでは日本語が入力できないのか
  • 今でも安定して使える解決方法
  • 非エンジニアでもそのまま使える実装例

を、できるだけやさしく解説します。

目次

PyAutoGUIとは?

PyAutoGUI(パイオートGUI)は、Pythonで マウスやキーボード操作を自動化できるライブラリ です。

主に次のようなことができます。

  • マウスの移動・クリック
  • キーボード入力
  • 画面キャプチャや画像認識

Excelや業務アプリへの入力補助など、「人がやっている操作をそのまま再現する」用途でよく使われます。

pyautoguiで日本語入力ができない理由

まず、よくあるコードを見てみましょう。

Bash
import pyautogui as pg

pg.typewrite("こんにちは")

このコードを実行すると、

  • 英数字 → 入力できる
  • 日本語 → 入力されない

という現象が起きます。

なぜ起きるのか?

pyautoguiの typewrite() は、キー入力を1文字ずつ送信する仕組み です。

しかし、日本語入力は内部的に

  • IME(日本語入力システム)
  • 変換処理
  • 確定操作

といったステップを経ており、単純なキー送信では正しく処理されません。

これはバグではなく、pyautoguiの仕様による制限です。

解決方法は「クリップボード経由」

この問題を回避する、もっとも安定した方法が👉 日本語を直接打たず、貼り付けるという方法です。

そのために使うのが pyperclip です。

pyperclipをインストールする

まずはライブラリをインストールします。

Bash
pip install pyperclip

日本語を貼り付ける基本コード

次に、以下のコードを見てください。

Python
import pyautogui
import pyperclip

pyperclip.copy("こんにちは")
pyautogui.hotkey("ctrl", "v")

このコードでは、

  1. 日本語をクリップボードにコピー
  2. Ctrl + V で貼り付け

という、人が行う操作をそのまま再現しています。

これなら、日本語も問題なく入力されます。

よく使うなら関数化しておく

何度も使う場合は、関数にしておくと便利です。

Python
def paste_text(text):
    import pyperclip
    import pyautogui

    pyperclip.copy(text)
    pyautogui.hotkey("ctrl", "v")

使うときは、次のように書くだけです。

Python
paste_text("こんにちは")

補足|現在でもこの方法がベスト?

はい。2026年現在でも、この方法がもっとも安定しています。

pyautogui単体で日本語入力を無理に扱おうとすると、

  • 環境依存が強くなる
  • IME設定に左右される
  • 動いたり動かなかったりする

といった問題が起きがちです。

そのため、

日本語は「貼り付けるもの」

と割り切るのが、実務では一番安全です。

まとめ

  • pyautoguiでは日本語を直接入力できない
  • これは仕様による制限
  • pyperclipを使って貼り付ければ安定する

この方法を使えば、

  • 業務アプリへの自動入力
  • 定型文の一括入力
  • 手作業の削減

など、実用的な自動化が可能になります。

「難しそう」と感じるかもしれませんが、やっていることは 人の操作を少し賢く再現しているだけ です。

ぜひ一度、試してみてください。

目次