【AI生成連載】自動化ノウハウ 第5回 タスクスケジューラでPythonプログラムを定期実行する

Python自動化

【AI生成連載】自動化ノウハウ 第5回 タスクスケジューラでPythonプログラムを定期実行する

こんにちは!「自動化ノウハウ」連載の第5回です。これまでの連載では、Pythonを使った業務効率化スクリプトの作り方についてご紹介してきました。しかし、せっかく便利なスクリプトを作っても、毎回自分の手で実行しなければならないのは面倒ですよね。

そこで今回は、Windowsに標準搭載されている「タスクスケジューラ」を使って、Pythonプログラムを自動的に定期実行する方法を初心者の方にもわかりやすく解説していきます。「毎朝9時にレポートを自動作成したい」「深夜にデータのバックアップを取りたい」といったニーズに応える、実務でとても役立つ内容です。

タスクスケジューラとは?基本を理解しよう

タスクスケジューラとは、Windowsに標準で組み込まれている「特定の時刻や条件でプログラムを自動実行してくれる機能」です。特別なソフトをインストールする必要がなく、無料で使えるのが大きな魅力です。

なぜ定期実行が必要なのか

例えば、以下のような作業を自動化したいケースはよくあります。

  • 毎日決まった時間にWebサイトから最新データを取得したい
  • 毎週月曜日にレポートファイルを自動生成したい
  • 深夜にサーバーの状態をチェックしてログを残したい

こうした作業を人の手で毎回実行するのは非効率ですし、うっかり忘れてしまうリスクもあります。タスクスケジューラを使えば、こうした心配から解放され、業務の自動化・効率化を実現できます。

タスクスケジューラの起動方法

タスクスケジューラは、Windowsのスタートメニューから簡単に起動できます。

  1. スタートメニューの検索ボックスに「タスクスケジューラ」と入力
  2. 検索結果に表示された「タスクスケジューラ」をクリック

これだけで、タスクスケジューラの管理画面が開きます。とてもシンプルなので、初めての方でも迷うことは少ないはずです。

事前準備:Pythonスクリプトとバッチファイルの用意

タスクスケジューラでPythonプログラムを実行するには、事前にいくつかの準備が必要です。ここでは一連の流れを丁寧に解説します。

実行したいPythonスクリプトを用意する

まずは定期実行したいPythonスクリプトを用意しましょう。今回は例として、実行された日時をテキストファイルに記録するだけの簡単なスクリプトを使います。


import datetime

with open("log.txt", "a", encoding="utf-8") as f:
    now = datetime.datetime.now()
    f.write(f"{now} にスクリプトが実行されました\n")

このスクリプトを「auto_task.py」という名前で、わかりやすい場所(例:C:\pytasks\auto_task.py)に保存しておきます。

バッチファイル(.bat)を作成する理由

タスクスケジューラから直接Pythonファイルを指定することも可能ですが、実行環境によってはエラーが起きやすいため、バッチファイル(.bat)を経由して実行するのがおすすめです。バッチファイルを使うことで、Pythonの実行パスや作業ディレクトリを明確に指定でき、トラブルを未然に防げます。

以下のような内容のテキストファイルを作成し、拡張子を「.bat」に変更して保存します。


cd /d C:\pytasks
"C:\Python311\python.exe" auto_task.py

※「C:\Python311\python.exe」の部分は、実際にご自身のPCにインストールされているPythonの実行ファイルのパスに置き換えてください。パスがわからない場合は、コマンドプロンプトで where python と入力すると確認できます。

タスクスケジューラでタスクを登録する手順

準備が整ったら、いよいよタスクスケジューラにタスクを登録していきます。順を追って解説します。

基本タスクの作成

  1. タスクスケジューラを開き、右側の「操作」パネルから「基本タスクの作成」をクリック
  2. タスクの名前(例:「Python定期実行タスク」)と説明を入力し、「次へ」をクリック
  3. トリガー(実行するタイミング)を選択します。「毎日」「毎週」「ログオン時」など、目的に応じて選びましょう
  4. 実行する日時を細かく設定します

操作の設定:バッチファイルを指定する

トリガーの設定が終わったら、次に「操作」の設定を行います。

  1. 「プログラムの開始」を選択して「次へ」をクリック
  2. 「プログラム/スクリプト」の欄に、先ほど作成したバッチファイルのパスを指定します(例:C:\pytasks\run_task.bat)
  3. 内容を確認し、「完了」をクリックすればタスクの登録は完了です

詳細設定でより柔軟な運用を

基本タスクの作成が終わった後、タスク一覧から該当タスクをダブルクリックすると、さらに詳細な設定が可能です。

  • 「ユーザーがログオンしているかどうかにかかわらず実行する」:PCにログインしていなくても実行させたい場合に選択します
  • 「最上位の特権で実行する」:管理者権限が必要な処理の場合にチェックします
  • 「条件」タブ:バッテリー駆動時は実行しない、といった細かい条件設定も可能です

これらの設定をうまく活用することで、より実務に即した柔軟な自動実行環境を構築できます。

動作確認とよくあるトラブルの対処法

タスクを登録したら、正しく動作するか必ず確認しましょう。ここでは確認方法とよくあるトラブルへの対処法を紹介します。

手動で実行してテストする

タスクスケジューラの一覧画面から対象のタスクを右クリックし、「実行」を選択すると、設定した時刻を待たずにすぐにテスト実行できます。先ほどの例であれば、「log.txt」に実行日時が記録されているかを確認してみましょう。

よくあるトラブルと解決策

初心者の方がつまずきやすいポイントをまとめました。

  • タスクが実行されているのにファイルが更新されない
    →バッチファイル内の「cd /d」で指定したフォルダパスや、Pythonファイルのパスが間違っていないか確認しましょう。
  • 「操作の履歴」がタスクスケジューラに表示されない
    →タスクスケジューラライブラリの右側「操作」パネルにある「すべてのタスク履歴を有効にする」をクリックすると、履歴が確認できるようになります。
  • PCがスリープ状態だと実行されない
    →タスクのプロパティにある「条件」タブから、「スリープを解除して実行する」にチェックを入れることで解決できます。

これらのポイントを押さえておけば、トラブルが発生してもスムーズに解決できるはずです。

まとめ

今回は、Windowsのタスクスケジューラを使ってPythonプログラムを定期実行する方法について解説しました。ポイントを振り返ってみましょう。

  • タスクスケジューラはWindows標準機能で、無料で定期実行を実現できる
  • Pythonスクリプトを直接指定するより、バッチファイルを経由させると安定して動作する
  • 「基本タスクの作成」ウィザードに沿って進めれば、初心者でも簡単にタスクを登録できる
  • 動作確認とトラブルシューティングの方法を知っておくと安心して運用できる

一度この仕組みを構築してしまえば、日々の定型作業から解放され、業務の自動化を大きく前進させることができます。ぜひ今回の内容を参考に、ご自身の業務に合わせた自動化にチャレンジしてみてください。

次回の連載では、さらに一歩進んだ自動化テクニックについてご紹介する予定です。お楽しみに!

\ IT・AI特化の就労支援・スキルアップ /

【Neuro Dive】AI・データサイエンスの詳細を見る >

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