GASのトリガー設定完全ガイド。定時実行を5分で設定する
GASで書いたスクリプトを「毎日決まった時間に自動実行する」「フォームが送信されたら動かす」には、トリガーの設定が必要です。トリガーはGUIで設定でき、コード不要で定期実行が始まります。
トリガーの種類一覧
| 種類 | タイミング | 主な用途 |
|---|---|---|
| 時間主導型(分) | 1分〜60分ごと | リアルタイムに近い監視処理 |
| 時間主導型(時間) | 1時間〜12時間ごと | 定期集計・同期処理 |
| 時間主導型(日次) | 毎日の指定時間帯 | 日報・日次レポート送信 |
| 時間主導型(週次) | 毎週の指定曜日・時間 | 週次レポート送信 |
| フォーム送信時 | フォームに回答が届いたとき | 通知・転記処理 |
| スプレッドシートを開いたとき | ファイルを開くたびに | 初期化・権限チェック |
| スプレッドシートの変更時 | セルが編集されるたびに | 入力チェック・リアルタイム連携 |
時間主導型トリガーの設定手順
- エディタを開く(拡張機能 → Apps Script)
- 左サイドバーの時計アイコン(トリガー)をクリック
- 右下の「トリガーを追加」ボタン
- 設定:
- 実行する関数:自動実行したい関数名を選択
- 実行するデプロイ:「Head」
- イベントのソース:「時間主導型」
- 時間ベースのトリガーのタイプ:「日付ベースのタイマー」
- 時刻:「午前8時〜9時」など
- 「保存」ボタン → Googleアカウントで承認
実行時間の注意点
「午前8時〜9時」と設定しても、8時ちょうどに実行されるわけではありません。Googleのインフラ側で8時〜9時の間のランダムな時刻に実行されます。「8時ちょうどに必ず送りたい」という場合は、Cron式を使った設定(やや上級)が必要です。
フォーム送信トリガーの設定
- 回答スプレッドシートのApps Scriptを開く
- トリガーを追加
- 設定:
- 実行する関数:通知関数(例:
onFormSubmit) - イベントのソース:「スプレッドシートから」
- イベントの種類:「フォーム送信時」
- 実行する関数:通知関数(例:
トリガーの実行ログを確認する
トリガーが正常に動いているか確認する方法:
- エディタ → 左サイドバー「実行数」アイコン
- 実行した関数・時刻・ステータス(完了/エラー)が表示される
- エラーが出ていたら詳細をクリックしてエラーメッセージを確認
よくあるエラーと対処
「承認が必要です」エラー:
スクリプトの権限が許可されていません。関数を手動実行して承認フローを完了させてください。
「実行時間の上限を超えました」エラー:
GASは1回の実行が最大6分です。処理を分割するか、続きから再開できる仕組み(スクリプトプロパティで進捗を保存)を実装してください。
トリガーが実行された形跡がない:
実行数ログを確認。ログに出ていない場合は、トリガー設定が保存されていない可能性があります。トリガー一覧画面を再確認してください。
複数トリガーの管理
トリガーが増えてきたら、GASコードで一括管理する方法も有効です。
// 既存トリガーを全削除してから再設定する(管理しやすい)
function resetTriggers() {
// 既存トリガーを全削除
ScriptApp.getProjectTriggers().forEach(t => ScriptApp.deleteTrigger(t));
// 日次レポートトリガー(毎日8時)
ScriptApp.newTrigger('sendDailyReport')
.timeBased()
.everyDays(1)
.atHour(8)
.create();
// 週次レポートトリガー(毎週月曜9時)
ScriptApp.newTrigger('sendWeeklyReport')
.timeBased()
.onWeekDay(ScriptApp.WeekDay.MONDAY)
.atHour(9)
.create();
console.log('トリガーを再設定しました');
}
Sheet Lab のまとめ
スプレッドシートの基本からGASの自動化まで、一通りの流れを学んできました。次は実際に自社の業務に当てはめて試してみてください。わからないことがあればお問い合わせからご相談ください。
Free Newsletter
AIを業務に活かしたいなら
SMR-Labメルマガ
毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。
