GAS学習note:Day6 トリガーで自動実行!〜放っておいても動くGASを作ろう〜
はじめに
前回(Day5)では、関数を整理して再利用できるGASコードを作りました。
でも、まだ手動で「▶ 実行」ボタンを押さないと動きませんよね。
そこで今回は、GASの最大の魅力とも言える機能——
✅ トリガー(Trigger)による自動実行
をマスターします。
「毎朝8時に在庫チェックを自動実行」
「週1回、期限切れをメールで通知」
こうした仕組みを作れば、自分がいなくても動く業務ロボットが完成します。
1️⃣ トリガーとは?
トリガー(Trigger)とは、GASを自動で動かすきっかけのこと。
たとえば:
⏰ 時間主導型トリガー:毎日・毎週・特定の時刻に自動実行
🧾 編集トリガー:シートの内容が変更された時に動く
📧 フォーム送信トリガー:Googleフォーム送信後に動く
今回は、一番使われる「時間トリガー」を使っていきます。
2️⃣ 例:毎朝8時に期限チェックを自動実行する
ステップ①:スクリプトを開く
メニューの「拡張機能」→「Apps Script」をクリック
ステップ②:自動化したい関数(例:dueAlert())を確認
Day4で作った期限チェック関数を使います👇
function dueAlert() {
const sh = SpreadsheetApp.getActive().getActiveSheet();
const last = sh.getLastRow();
const today = new Date();
today.setHours(0, 0, 0, 0);
for (let r = 2; r <= last; r++) {
const due = sh.getRange(r, 6).getValue();
const status = sh.getRange(r, 7).getValue();
if (!(due instanceof Date)) continue;
due.setHours(0, 0, 0, 0);
if (due < today && status === false) {
sh.getRange(r, 8).setValue("期限切れ");
sh.getRange(r, 6, 1, 3).setBackground("#f4cccc");
} else {
sh.getRange(r, 8).setValue("");
sh.getRange(r, 6, 1, 3).setBackground(null);
}
}
}
ステップ③:トリガーを設定する

画面左の⏱️アイコン(トリガー)をクリック
「トリガーを追加」ボタンを押す
「実行する関数」→ dueAlert を選択
「イベントの種類」→「時間主導型」
「時間ベースのトリガー」→「日付ベースのタイマー」
「午前8時〜9時」などを選び、「保存」
これで毎朝自動で dueAlert() が実行されます🎉
3️⃣ ChatGPTと一緒に設定を確認してみよう
トリガーは便利ですが、最初は「動かない!」「エラーで止まる!」となることも。
そんな時こそ、ChatGPTを頼ってOKです。
💬 実際のやり取り(スクショ風)
📘 あなた(質問)
トリガーを設定したけど、実行ログに「Exception: You do not have permission to call getActiveSheet」って出ます。
🤖 ChatGPT(回答)
トリガー実行時は「ユーザー操作なし」で動くため、getActiveSheet() は使えません。
代わりにシート名を明示的に指定しましょう👇
const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("タスク管理");
📘 あなた
修正したら動きました! でも、初回実行で「承認が必要です」と出ました。
🤖 ChatGPT
それは正常です。初回だけGoogleがアクセス権限を確認します。
ダイアログで「承認を続ける」→「許可」を選んでください。
📘 あなた
OKです!翌朝ちゃんと自動で「期限切れ」になっていました✨
4️⃣ ChatGPTと学ぶ「自動化の思考法」
ChatGPTはコードだけでなく、仕組みを考える相棒にもなります。
たとえばこんな使い方👇
🧭 「毎週金曜に在庫をチェックして、補充要リストをメール送信するには?」
💡 ChatGPT:「トリガー+MailApp.sendEmail() の組み合わせでできますよ!」
こうして、単なるエラー修正ではなく、
業務設計 × AI × コード の三位一体で学んでいけるのが、生成AI時代の学び方です。
5️⃣ よくあるトラブルと対策
症状原因対処法getActiveSheet が動かないトリガー実行では「アクティブシート」が存在しないgetSheetByName("シート名") に変更権限エラーが出る初回実行時の認証「権限を確認」→「許可」で解決指定時刻に動かないGoogleサーバー側で若干のズレあり実行時刻は±15分の誤差を想定トリガーが消えたスクリプトをコピー・移動した新しいスクリプトで再設定が必要
まとめ:Day6で学んだこと
Day6では、「自分がいなくても動くGAS」 を実現するトリガー設定を学びました。
今日のポイント
トリガーは「GASを自動で動かすスイッチ」
時間トリガーを使えば、定時実行が可能
ChatGPTを使えば、設定エラーも安心して修正できる
💡 GAS × トリガー × ChatGPT = “AIが支える自動化システム”
これであなたのGASは、毎朝・毎週・毎月、自分で動くようになりました。
次は、通知機能(メール・Slackなど) を組み合わせて、
「自動チェック+自動報告」に発展させていきましょう!
