pythonを使用してExcelファイルの操作を勉強しています。
本日の気づきは、厳密にはPythonの復習ではなくWindowsのタスクスケジューラに関してです。
pythonでExcelを操作しているので、openpyxlというパッケージを使用しています。
定時で行っていることがあるならミスを避けるためにも自動でしてほしかったりします。
Pythonの機能でも出来るそうなのですが私には敷居が高い気がしましたので
Windowsのタスクスケジューラを使って実装してみます。
タスクスケジューラ
スタートメニューを表示して検索フォームに「タスクスケジューラ」と入力すると出てきます。
私は今後もお世話になりそうだったのでタスクバーにピン留めました。
タスクを作成
タスクスケジューラを起動し上部、もしくは右部の「操作」から「タスク作成」をクリック。
全般の設定
先ずは作成画面の「全般」タブにタスクの名前や説明を入力します。
特に説明はどのようなことをするのか、詳しく記述した方がよさそうです。
(忘れっぽいのでここは個人的に注意です。)
セキュリティオプション
同じく「全般」のタブ下部です。
初期値は「ユーザーがログオンしているときのみ実行する」にチェックが入っているのですが
今回のタスクはシャットダウン時でも行ってほしかったので
(私の場合、そもそも電源を入れ忘れていることが多いので・・・。)
- 「ユーザーがログオンしているかどうかにかかわらず実行」と
- 「最上位の特権で実行する」
の二か所にチェックを入れなおしました。
※本来は「ユーザーがログオンしているかどうかにかかわらず実行」のみ、チェックを入れれば良いようなのですが
これだと、私のPCでは実行エラーが出てしまいました。(0x800710E0)
やはりPCは自分で初期設定した方が知識も付きますし、応用力も上がりますね。
今回はいい経験になりました。
トリガーの設定
次に、何時そのタスクを実行するのか「トリガー」を設定します。
タブ下部にある「新規」をクリックしてトリガーの内容を決めて行きます。
私の場合は毎月20日の朝9時に実行してほしかったので
- 「毎月」にチェック
- 開始のカレンダーはそのまま。
- 時間を「9:00:00」に設定。
こちらだけ設定し、「OK」ボタンをクリック。
操作設定
お次はどのような内容を行うのか「操作」を設定します。
タブ下部にある「新規」をクリックしてトリガーの内容を決めて行きます。
ここがちょこっと初心者には敷居が高かったように感じました。
プログラム/スクリプト
今回はPythonを使用するので「pythonw.exe」のパスを入力します。
どこに入れたか忘れた場合は(私がそうでした)
スタートメニューを表示して検索フォームに「pythonw.exe」と入力すると出てきますので
アイコンを右クリックして「プロパティ」を選択。
表示された内容の中の「場所」が絶対パスなのでこちらをコピーし貼り付けます。
あくまでもそのアイコンがある場所なので語尾に「\pythonw.exe」を付けるのを忘れずに。
引数の追加
こちらは実行させたいプログラムのファイル名を記述
コマンドライン引数を渡したい場合は半角スペースを開けて入力します。
開始
上部のファイルがある場所のパスを記述。
こちらもスタートメニューから検索をかけてもいいですし
VScodeであればファイル名を右クリックでパスをコピーできるのでこちらの方が手軽かもしれません。
(こちらの場合はパスの中にファイル名も記述されるので、ファイル名は削除する必要があります。)
条件
タスクを実行するかどうかを判断する「条件」を設定します。
個人的にバッテリー電源の時には実行してほしくなかったので、初期値のままにしています。
設定
上記以外の追加設定を「設定」で行います。
が、特に変更するものもなかったので、初期値のままにしています。
パスワード設定と念のための確認
ログオフ時もタスク実行を選んだので最後にパスワードを入力してタスクの作成は完了です。
これで、タスクスケジューラウインドウ中央上部のタスク一覧に作成したタスクが表示されているはずなので
念のため右クリックから「実行する」をクリックして動作するか確認します。
エラーが起きたりした場合は
同様に右クリックから「プロパティ」をクリックするとタスク設定の上書き修正が行えます。
一応、タスクを実行できたかどうかはタスク一覧から確認できるのですが
個人的にはプログラムファイルの方にもログを出力できるようにしておいた方がよいと感じました。
今回のタスクスケジューラは今後も利用していく頻度が高そうなので
色んな状況を考えて設定をするためにも要勉強だなと感じます。
また、PC購入時に初期設定をお願いしていたのでどのような設定をされていたのかもわかり
そちらも大変有意義でした。
初期設定をしてくれた方、ありがとうございました!