本記事ではPyAutoGUIの使い方について解説します。
今回はExcelを起動し、ファイルに名前をつけて保存し、Excelを閉じるまでの動作を自動化します。
安定的に動作させるには少しコツが必要です。
画面が必ず同じ大きさで同じ場所に出現するとは限らない状況でも正常に動作するよう、座標を指定したクリックは使いません。
以下の点を念頭においておくだけで安定した動作を実現可能となります。
・タイマーを設ける
・ショートカットキーを最優先で使用する
・移動はタブや矢印キーで行う
誤動作すると思いもよらない作業を始めてしまい大変危険です。
本記事で紹介するようなショートカットキーを多用して可能な限り安定した動作が得られる手法を選びましょう。
※本解説はwindows環境に限ります
インストールがまだの方はこちらの記事を読んで導入してください。
pyperclip:テキストの貼り付けに使います
datetime:ファイル名に日付をつけるために使います
import pyautogui as pg
import pyperclip
import datetime
全ての動作後に3s待機するように設定しておきます。
Excelが開ききっていないのに次の動作を始めてしまうようなことを防ぎます。
pg.PAUSE=3
あらかじめ中身は空でいいのでtest.xlsxというファイルを作っておきます。
pg.press(‘win’)でwindowsキーを押す動作が指定できます。
Windowsの検索からファイルを起動すると再現性高く起動できるので覚えておくと良いです。
pyperclipでファイルのパスを内部で保持しておき(●●の部分は自身の環境に合わせて記入)、pg.hotkeyを使ってペースト動作を行い、エンターキーを押すまでを実行します。
pg.press('win')
pyperclip.copy(r'C:\Users\●●\test.xlsx')
pg.hotkey('ctrl','v')
pg.press('enter')
ショートカットキー(fn12)を使用することで確実に動作させます。
pg.hotkey('fn','f12')
今回は保存先を変更せずに保存しますが、
変更したい場合はTabキーを複数回使用することで確実に動作させる方法が安定します。
デフォルトでファイル名のところにフォーカスされているので、名前を貼り付けるか書き込むだけでOKです。
もし保存先を変更した場合はTabで移動していきファイル名の入力部分に合わせます。
今回は実行した日付をファイル名にしたいので、datetimeを使って本日の日付データをtodayという変数に代入しておきます。
today=datetime.datetime.today()
ファイル名に使う文字列をfilenameとして、月-日-test.xlsxとなるように保存します。
filename=str(today.month)+"-"+str(today.day)+"-test"
コピー&ペーストでも貼り付けられますが、writeで入力する方法を使います。
どちらでも安定した動作が得られます。
pg.write(filename)
保存動作はショートカットキーで行います。
保存のボタンは「アンダーバー付きのS」になっているのでAlt+sのショートカットで実行できます。
pg.hotkey('alt','s')
最後もやはりショートカットキーを使用します。
pg.hotkey('alt','f4')
以上でExcelを開き、名前をつけて保存、Excelを閉じるまでの一連の動作は完了です。
import pyautogui as pg
import pyperclip
import datetime
pg.PAUSE=3
pg.press('win')
pyperclip.copy(r'C:\Users\●●\test.xlsx')
pg.hotkey('ctrl','v')
pg.press('enter')
pg.hotkey('fn','f12')
today=datetime.datetime.today()
filename=str(today.month)+"-"+str(today.day)+"-test"
pg.write(filename)
pg.hotkey('alt','s')
pg.hotkey('alt','f4')
以上で紹介は終わりです。