GASの処理が実行時間の上限に引っかかって途中で止まる
■ 先に結論
Apps Script(GAS)には「1回の実行は6分まで」と「トリガーで動いた分の合計は1日90分まで(Workspaceは6時間)」の2つの上限があります。
合計はユーザーごとなので、重い処理を足すと別の定期実行まで止まることがあります。
6分は処理を区切って続きから再開、合計はトリガーの棚卸しで対処します。
- 止まった回のエラーの文と時間を見る
- 1日の合計computer time for one day と出る
- 1回6分6分ほどで止まっている
- 合計なら「マイ トリガー」で全部の定期実行を棚卸し
- 6分なら処理を区切り、続きは次の実行へ
- 区切っても1日の合計はその分だけ使う
- 両方の上限に収まれば最後まで動く
※2026年10月時点の公式の値です。試用アカウントには追加の制限が適用されます。
一般向け(gmail.com など)
- 1回の実行: 6分
- トリガーの合計: 90分/日
Google Workspace
- 1回の実行: 6分
- トリガーの合計: 6時間/日
出典: Google サービスの割り当て

1どちらの上限か見分ける
- スプレッドシートの「拡張機能」 → 「Apps Script」を開く
- 左の「実行」で失敗した回を開く
- エラーの文と、その回の時間を見る
Service using too much computer time for one day. なら1日の合計、6分ほどで止まっていれば1回の上限です。どちらでもなければ別の原因です。セルで使うカスタム関数は1回30秒が上限で、この方法の対象外です。
出典: Google サービスの割り当て / トラブルシューティング / コンテナにバインドされたスクリプト
21日の合計はトリガーを棚卸しする
- script.google.com を開く
- 左の「マイ トリガー」で全部のトリガーを確認
- 不要なものは右のその他アイコンから「トリガーを削除」
削除は取り消せない前提で、消す前に関数名と設定を控えます。
出典: インストール可能なトリガー
36分の上限は処理を区切る
5分を過ぎたら進んだ行を保存し、1分以上あとに続きを動かすトリガーを作ります。コードはスプレッドシートから開いた編集画面に貼ります(単体のスクリプトでは動きません)。
- 今の処理を、1行分ずつ processRow の中へ移す
- startJob を1回手動で実行し、承認画面で許可する(アプリが「未確認」という警告が出ることがあります)
- 左の「トリガー」で古い定期トリガーを「その他」 → 「トリガーを削除」
- 「トリガーを追加」で startJob を動かす定期トリガーを作る
const KEY = 'NEXT_ROW';
function startJob() {
PropertiesService.getScriptProperties().deleteProperty(KEY);
runInParts();
}
function runInParts() {
ScriptApp.getProjectTriggers().forEach(function (t) {
if (t.getHandlerFunction() === 'runInParts') ScriptApp.deleteTrigger(t);
});
const start = Date.now();
const props = PropertiesService.getScriptProperties();
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1'); // ← 自分のシート名に
const last = sheet.getLastRow();
let row = Number(props.getProperty(KEY) || 2);
while (row <= last) {
if (Date.now() - start > 5 * 60 * 1000) {
props.setProperty(KEY, String(row));
ScriptApp.newTrigger('runInParts').timeBased().after(60 * 1000).create();
return;
}
processRow(sheet, row);
row++;
}
props.deleteProperty(KEY);
}
function processRow(sheet, row) {
// ← ここに1行分の処理を書く
}
トリガーは1スクリプト・1ユーザー20個までなので、続き用は毎回消します。
出典: Google サービスの割り当て / コンテナにバインドされたスクリプト / トラブルシューティング / Google サービスの承認 / ClockTriggerBuilder / Properties