毎月送られてくる名簿を、社内システムに1件ずつコピペして登録する。同じソフトの同じ画面で、似たような操作を何十回も繰り返す。「APIがあれば一瞬なのに…」と心の中でつぶやきながら、今日もマウスとキーボードを酷使していませんか?😩
そんな反復作業を、Pythonコードに丸投げできる魔法のライブラリがPyAutoGUIです。マウスを動かしてクリック、キーボードで入力、ホットキーでショートカット実行—これらを全部自動化できれば、空いた時間で本当にやりたい仕事に集中できる未来が手に入ります✨
PyAutoGUIは、画面・マウス・キーボードでの操作をPythonから実行できるライブラリです。Windows/Mac両対応で、コードもシンプル。APIが公開されていないデスクトップアプリや社内システムを「擬似的にAPI化」して扱える、業務効率化の強い味方です🛠
SNSやクラウドサービスはAPIが充実しているが、デスクトップアプリや社内システムは比較的APIが公開されていないケースが多い。そういった「画面からしか操作できないツール」での反復作業こそ、PyAutoGUIが最も輝く場面。
pip install pyautogui でインストールpyperclipも自動で入るので追加インストール不要座標は画面左上を(0, 0)として、x座標(横軸)・y座標(縦軸)で指定します。pyautogui.moveTo(150, 100)でカーソル移動、pyautogui.click()でクリック。click(150, 100)のように引数に座標を渡せば、移動とクリックを1行で済ませることもできます。右クリックはclick(button="right")、ドラッグはdragTo(300, 200, duration=1, button="left")といった具合に直感的に書けます🎯
特定のキーを押すならpyautogui.keyDown("enter")。文字をタイピングするならpyautogui.typewrite("hello")でOKです。ただしtypewriteは日本語に対応していないため、日本語を入力したい場合は次のテクニックが必須になります。
pyperclip.copy("こんにちは")で文字列をクリップボードにコピーし、pyautogui.hotkey("ctrl", "v")(Macなら"command", "v")でペーストすれば、日本語もスムーズに入力できます。これは実務でめちゃくちゃ使えるテクニックなので、ぜひ覚えておきましょう📝
動画で紹介されている実用例が、まさに業務あるあるの神シナリオ。「人事部から毎月届く新入社員の名簿CSVを、APIのない勤怠管理システムに手作業で登録している」という状況をPyAutoGUIで自動化します。
pandas.read_csv()でCSVファイルを読み込むiterrows()で1行ずつループ処理これを実行すると、人間の手では絶対に追いつけないスピードで、正確に何十件・何百件のデータが登録されていきます。手作業なら半日かかる仕事が、コーヒーを淹れる間に終わるようになる—これが自動化の威力です☕✨
PyAutoGUIを使いこなすには、Python基礎・自動化の発想力・周辺ライブラリの知識を組み合わせて学ぶのが最短ルート📖 反復作業から自分を解放してくれる5冊を厳選しました。
PyAutoGUIを含む業務自動化テクニックの定番書。Excel操作・PDF処理・Web自動化など、明日から使えるレシピが詰まっています。1冊持っておけば「これもPythonでできるんだ」という発見の連続になります。
関数・クラス・例外処理・ファイル操作など、自動化スクリプトを安定動作させるための基礎力をつける入門書。土台が固まると、PyAutoGUIのコードもブレずに書けるようになります。
CSVやExcelの読み込み、集計、フィルタリングを学べる一冊。PyAutoGUIと組み合わせれば、「データ取得→画面操作→結果記録」という一連の業務フローをまるごと自動化できます。
UiPathやPower Automateと比較しながら、Pythonによる自動化のメリット・デメリットを学べる書籍。社内提案や仕組み化を任されるエンジニアにとって、視野を広げる良書です。
自動化スクリプトは「動けばいい」で済ませがち。でも長く使うほど、Pythonicな書き方の差が保守性に効いてきます。リファクタリング力を養って、自分も他人も助かるコードを書きましょう。
A. SeleniumはWebブラウザの操作専用、PyAutoGUIは画面全体(デスクトップアプリ含む)の操作が可能です。Webサイト自動化ならSelenium、デスクトップアプリや社内システムの自動化ならPyAutoGUIが向いています。
A. デフォルトで「マウスを画面左上に高速移動するとスクリプト中断」というフェイルセーフ機能が有効になっています。万一の時は左上にカーソルを叩きつけるイメージで動かせば停止できます。
A. 解像度・ウィンドウサイズ・DPIスケーリングが変わると座標もズレます。対象ウィンドウを画面の左上に固定する、pyautogui.position()でリアルタイムに座標を取得しながら調整する、画像認識(locateOnScreen)で位置を動的に検出する、などの対策が有効です。
A. システム設定の「プライバシーとセキュリティ → アクセシビリティ」で、PythonスクリプトをVS Codeから動かしているならVS Codeを、ターミナルから動かしているならターミナルをオンにしてください。許可しないとマウス・キーボード操作が無効になります。
A. typewriteは半角ASCII文字のキー入力をシミュレートする仕組みのため、IME経由が必要な日本語には対応できません。pyperclip.copy()でクリップボードに文字列を入れ、hotkey("ctrl", "v")でペーストするのが定番の解決策です。
PyAutoGUIは、APIが提供されていないデスクトップアプリや社内システムでも、Pythonから自由に画面操作を自動化できる強力なライブラリです。マウス・キーボード操作の基本を押さえ、CSVやpandasと組み合わせれば、毎月の定型作業が一瞬で片付くようになります🚀
書籍で土台を固めながら手を動かしていけば、自動化スキルは確実に血肉になります。今日から「退屈な反復作業」をPythonに任せて、自分は本当にやりたいクリエイティブな仕事に時間を使っていきましょう🤖💡