メインコンテンツへスキップ
見出し画像

GAS超初心者講座4:実行も自動化!さまざまトリガーまとめ

    はじめに

    前回は、`remindPendingItems()` を手動実行して、未対応だけをメールとSlackへ通知しました。
    今回はこの関数を、毎朝9時台に自動で動かします。
    GASでは「いつ動かすか」を決める仕組みを トリガー と呼びます。

    画像
    ※この画像は、記事内容を説明するためにイメージとして作成したものです。実際の画面・環境とは異なる場合があります。

    トリガーには種類がある

    まずは名前だけで大丈夫です。

    時間主導型: 毎日9時など、時間で動く
    起動時: ファイルを開いたときに動く
    編集時: セル編集で動く
    フォーム送信時: 回答時に動く

    今回使うのは 時間主導型トリガー です。

    画像
    ※この画像は、記事内容を説明するためにイメージとして作成したものです。実際の画面・環境とは異なる場合があります。

    AIへの頼り方

    AIには「既存関数を自動実行したい」と伝えます。
    `remindPendingItems()` は残し、トリガー設定用の関数だけ追加します。

    AI依頼文例

    Google Apps Scriptで、既存の関数 remindPendingItems() を毎朝9時に自動実行したいです。
    時間主導型トリガーを作成するための setupDailyReminderTrigger() を作ってください。
    同じトリガーが重複して増えないように、既存の remindPendingItems 用トリガーを消してから作り直す形にしてください。
    GAS初心者にも分かるように、どの関数を一度だけ手動実行するかも説明してください。

    通知処理とトリガー作成処理は分けます。

    トリガー設定用コード

    次を追加します。

    function setupDailyReminderTrigger() {
      const functionName = 'remindPendingItems';
    
      ScriptApp.getProjectTriggers()
        .filter(trigger => trigger.getHandlerFunction() === functionName)
        .forEach(trigger => ScriptApp.deleteTrigger(trigger));
    
      ScriptApp.newTrigger(functionName)
        .timeBased()
        .everyDays(1)
        .atHour(9)
        .create();
    }

    `.timeBased()` は時間主導型、`.everyDays(1)` は毎日、`.atHour(9)` は9時台です。
    ぴったり9:00ではなく、9時台のどこかで実行されます。

    画像
    ※この画像は、記事内容を説明するためにイメージとして作成したものです。実際の画面・環境とは異なる場合があります。

    一度だけ手動実行する

    Apps Scriptで `setupDailyReminderTrigger` を選び、一度だけ実行します。
    初回は権限確認が出るので、内容を確認して許可します。

    成功すると、「トリガー」に `remindPendingItems` が追加されます。
    予約のために、`setupDailyReminderTrigger` だけを一度実行します。

    画像
    ※この画像は、記事内容を説明するためにイメージとして作成したものです。実際の画面・環境とは異なる場合があります。

    うまく動かないとき

    確認するのは3つです。

    1. remindPendingItems を手動実行すると通知が届くか
    2. setupDailyReminderTrigger を一度実行したか
    3. トリガー一覧に remindPendingItems が登録されているか

    エラー文は省略せずAIへ渡します。「権限」「関数が見つかりません」「プロパティ未設定」などが直す場所のヒントです。

    まとめ

    今回は、`remindPendingItems()` を毎朝9時台に動かす時間主導型トリガーを作りました。
    通知関数を完成させる、トリガー作成関数を追加する、一度だけ手動実行する。この順番なら、GASの自動化は扱いやすくなります。


    【今日の私のひとこと】

    全4回の超初心者講座を行ってきましたが、
    トリガー実行までの導線を知っていたら、あとは生成AIに頼ればどんなことだってできますね!
    次は、「AIと一緒にGAS自動化シリーズ」を進めていけたらと思っています。

    #GoogleAppsScript #GAS #業務効率化 #スプレッドシート #note #GAS初心者 #AppsScript #トリガー #時間主導型トリガー #自動実行

     
     
    高校教員(数学)|2歳児のパパ AIや学び直しを使って、自分でできることを増やしていく実践記録。AI・GAS・小規模アプリ、仕事の改善、お金の学び、子育てと習慣化について、実際に試して分かったことを発信しています。

    あなたへのおすすめ