スポンサーリンク

【PyAutoGUI】PythonでWindowsのマウスとキーボードを操作する

特定のキーを繰り返して押す作業を自動化したい

Kintone(キントーン)のレコードの情報を更新するために、編集、保存、次への作業を最初のレコードから最後のレコードまで繰り返し行うことがありました。これをショートカットキーで行っていたのですが、レコード数が少なければ手動で問題ありませんが、これが数百とか数千以上あるとちょっと大変です。

ちなみに、レコード詳細画面で「E」は編集モード「Ctrl+S」が保存「J」が次のレコードに移動を行うショートカットキーで、これを繰り返し連打していました。

ショートカットキーでkintoneを操作する方法 | kintone ヘルプ
kintoneのヘルプです。 kintoneを利用するために必要な設定や操作方法などを説明します。

キントーン側でJavascriptを使うやり方もあるかと思うのですが、初心者で無料体験中なので、どうやればいいかわからなかったので、VBScriptとか使ってWindows側からできないかな?と調べていたらPythonとPyAutoGUIというモジュールを使ってできるといったページを見つけたので、試すことにしました。

PyAutoGUIをインストール

WindowsにPythonがインストールされていることが前提ですが、その状態でコマンドプロンプトを起動し、PyAutoGUIをコマンドでインストールします。

Pythonのバージョン確認するコマンド

python -v

PyAutoGUIをインストールするコマンド。

pip install pyautogui

pipはPythonのパッケージ管理ツールで、コマンドを実行すると、以下の画面が表示されます。

PyAutoGUIインストール画面

インストール完了時の表示。

PyAutoGUIインストール完了

インストールされているPythonのパッケージとバージョンを確認するコマンド

pip list

インストールされたパッケージの確認

ここにPyAutoGUIがあればOKです。

Keyboardモジュールも必要

自動化処理を実行中に中断したい場合に備え、特定のキー押下で停止できるようにする場合、キーの押下を検出するためにkeyboardモジュールが必要です。PyAutoGUI同様にコマンドプロンプトからコマンドでインストールします。

pip install keyboard

Python実行ファイルを用意

以下のソースをテキストエディタで拡張子を.pyにして適当な場所に保存します。

import pyautogui
import keyboard
import os

# 一時停止
os.system('PAUSE')

# 処理を実行するたびに1秒待機
pyautogui.PAUSE = 0.5

# 画面のサイズを取得
width, height = pyautogui.size()

# 指定の位置にカーソルを移動
pyautogui.moveTo(100, 400, duration=2)

# 現在のカーソルの位置で左クリックを1回
pyautogui.click(button="left")

# 順番にキーを押す処理を繰り返す
num = 0
end_num = 10

while num < end_num:
    if keyboard.is_pressed("shift"):
        print("SHIFTキーが押されたので中断します。")
        os.system('PAUSE')

    print(str(num+1)+"回目の処理を実行中です。(SHIFTキーで停止)")
    pyautogui.press("e")
    pyautogui.hotkey("ctrl", "s")
    pyautogui.press("j")
    num += 1

    if num == end_num:
        print("処理が終わりました。同じ処理を繰り返しますか?")
        os.system('PAUSE')
        num = 0
        continue

print("処理が終わりました。")

# 一時停止
os.system('PAUSE')

pyファイルを実行

pyファイルを直接実行したい場合

ファイルをダブルクリックします。

Pythonスクリプト実行中の画面

コマンドプロンプトから実行したい場合

コマンドプロンプトからpyファイルを呼び出せば、記載されたスクリプトが実行されます。例えば、test.pyというファイルがCドライブ直下にあったとしたら、以下のようになります。

python c:\test.py

処理を中断したいとき

誤った操作になってしまったときは、Pythonの画面でキーボードのPAUSEを押下すると一時停止。Python及びコマンドプロンプトでCtrl+Cを押すと終了させることができます。

Excelなどでも使えそう

今回、Kintone(キントーン)上で繰り返しキー操作を行うためにこのスクリプトを使いましたが、Excel(エクセル)やWindows上で自動で繰り返し行いたい作業がある場合に使えそうです。

タイトルとURLをコピーしました