Google Apps Script(GAS)のトリガーは、決めた時刻や操作をきっかけに、関数を自動で動かす仕組みです。
公式ドキュメントをもとに、種類と作り方、上限をまとめました。
- 時間主導トリガーは、最短1分ごと〜最長月1回まで
- 編集時・フォーム送信などは、イベント型のインストール型トリガーで作る
- インストール型トリガーは、作成者のアカウントの権限で動く
- トリガーは、1ユーザー1スクリプトあたり20個まで
- 通常のスクリプト実行は1回6分まで。シンプルトリガーは30秒まで
公式資料に基づく説明と掲載コードのローカル検証を掲載しています。
上限や仕様は、Googleの都合で変わることがあります。
数値は、公式ページで最新を確かめてください。
トリガーの種類
トリガーには、シンプルトリガーとインストール型トリガーがあります。
関数名を onOpen や onEdit にするだけで動くのがシンプルトリガーで、権限の制限が強くなっています。
認可が必要な処理をしたいときは、インストール型を使います。
関連記事:onEditが動かない原因
コードで時間主導トリガーを作る
ScriptApp.newTrigger() で作れます。
function myFunction() {
console.log('時間主導トリガーの実行: ' + new Date().toISOString());
}
function createTimeTrigger() {
const exists = ScriptApp.getProjectTriggers().some(function (trigger) {
return trigger.getHandlerFunction() === 'myFunction' &&
trigger.getEventType() === ScriptApp.EventType.CLOCK;
});
if (exists) {
console.log('同じ関数の時間主導トリガーがあります。設定画面で間隔を確認してください。');
return;
}
ScriptApp.newTrigger('myFunction').timeBased().everyHours(6).create();
}公式のドキュメントには、6時間ごとや、毎週月曜の9時といった例があります。
この例は、自分が作成した同じ関数の時間主導トリガーがあれば、新しく作りません。
まずmyFunctionを手動実行してログを確認し、createTimeTriggerを1回実行します。
既存トリガーの間隔は変更しないため、設定画面で6時間ごとになっているか確認してください。
別のアカウントが作成したトリガーは、この一覧取得では確認できません。
スプレッドシートのイベント型トリガー
function createOnOpenTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('myFunction')
.forSpreadsheet(ss)
.onOpen()
.create();
}編集時やフォーム送信のトリガーも、同じ形で作ります。
画面から設定する手順
- Apps Scriptに実行対象の関数を保存します。
- 左側の「トリガー」を開き、右下の「トリガーを追加」を選びます。
- 実行する関数とイベントのソースを選びます。
- 時間で動かす場合は「時間主導」、セル編集で動かす場合は「スプレッドシートから」→「編集時」を選びます。
- 保存し、求められた権限を確認して認可します。
フォーム送信は、回答先のスプレッドシートに設定する場合とGoogleフォーム自体に設定する場合で、受け取るイベントが異なります。
上限
| 項目 | 上限 |
|---|---|
| トリガーの数 | 1ユーザー1スクリプトあたり20個 |
| トリガーの合計実行時間 | 無料アカウント90分/日、Workspace 6時間/日 |
| 1回の実行時間 | 6分 |
| 時間主導の間隔 | 最短1分〜最長月1回 |
| アドオンの時間主導 | 1時間に1回まで |
スクリプトの実行や、APIのリクエストでは、トリガーは起動しません。
ファイルが閲覧・コメントのみの状態で開かれたときも、インストール型トリガーは動きません。
まとめ
- 時間で動かすなら、時間主導トリガー
- 権限が要る処理は、インストール型トリガー
- 20個・90分・6分の上限に注意する
参考:Google Apps Script「Installable Triggers」「Quotas for Google Services」(2026年9月30日確認)。
動作確認と停止方法
自動実行の結果は左側の「実行数」で確認します。
時間主導トリガーは秒単位の定刻実行を保証するものではなく、日次の時刻指定にも実行時刻の幅があります。
停止するときは「トリガー」で対象の関数とイベントを確かめ、対象トリガーだけを削除します。
確認した範囲と公式資料
2026年10月2日に公式資料と掲載コードを照合しました。
コードの分岐はGoogleのサービスを代替したローカルテストで確認し、実サービスでの実行とは区別しています。
GAS上の認可・トリガー発火・同時実行は未検証です。
