GASが退職で止まったのはなぜ?トリガーの持ち主を移し、20日の期限までに入れ直す
社員の退職でGASが止まるのは、インストール型トリガーが入れた人のアカウントで動くためで、移さなかったファイルも削除から20日で復元できなくなります。アカウントを消すと、毎朝の通知や集計を動かす人がいなくなります。直すには、持ち主のアカウントでトリガーを書き出し、ファイルを移してから、担当のアカウントで入れ直します。マクロの守りで書いた書き出しのスクリプトと、1日の上限の計算を載せます。(2026年10月時点)
読み解きから直す・置き換えるまでの流れと費用はExcelマクロの引き継ぎのページにまとめています。
要点
- GASのインストール型トリガーは入れた人のアカウントで動き、ほかのアカウントからは見えません。
- アカウントの削除から20日を過ぎると、移さなかったマイドライブのファイルは復元できません。
- トリガーから書き出せる項目は5つで、時刻と間隔は入らないので画面で写します。
- 6分かかる処理をトリガーで回せるのは、1日15回(無料)か60回(Workspace)までです。
- 上限は1ユーザーあたりなので、架空の3本を1つのアカウントに集めると1日94分になります。
目次
GASを作った社員が退職すると、なぜ止まるのですか?
GASのインストール型トリガーは、入れた人のアカウントで動くからです。Googleの説明(2026年9月3日更新)は、このトリガーが「常に作った人のアカウントで動く」としています。そのアカウントを削除すると、毎朝の通知や集計を動かす人がいなくなります。
削除したときの動きそのものを、Googleは書いていません。私は、動かすアカウントがない以上、止まるものとして扱います。
やっかいなのは、トリガーがほかのアカウントから見えないことです。後任の画面には何も出ず、止まった理由を探しにくくなります。VBAのマクロも含めた全体の流れは、Excelマクロの引き継ぎにまとめています。
コードが残るかどうかは、スクリプトの置き場所で決まります。スプレッドシートに付いたスクリプトの持ち主は、そのスプレッドシートの持ち主です。どの場合も、トリガーは担当のアカウントで入れ直します。
| スクリプトの置き場所 | 削除のあとのコード | すること |
|---|---|---|
| 残る社員が持ち主のスプレッドシート | 残る | 担当のアカウントでトリガーを入れ直す |
| 共有ドライブのファイル | 残る(組織のもの) | 担当のアカウントでトリガーを入れ直す |
| 退職者のマイドライブ | 20日までは復元で戻る | 復元して移し、トリガーを入れ直す |
| 退職者のマイドライブ(20日より後) | 戻らない | コピーがあればそこから作り直す |
アカウントの削除から20日の間に、何ができますか?
削除から20日までなら、特権管理者がアカウントを復元し、ファイルを移してからトリガーを入れ直せます。Google Workspaceの管理者ヘルプによると、削除したユーザーのデータは、20日以内に復元してから移します。復元すると、移さなかったドライブのファイルも戻ります。
20日を過ぎると、アカウントは復元できません。退職者のマイドライブにあったスプレッドシートと、そこに付いたスクリプトは戻りません。社内にコピーやダウンロードが残っていなければ、何をしていた処理かを聞き取り、コードから作り直すことになります。
削除の前なら選べる手が増えます。特権管理者は、削除の手続きの途中でドライブのファイルを別の人へ移せます。ほかの管理者は、削除の前に移しておきます。データを残したいときは、削除せずに停止かアーカイブにする方法もGoogleは案内しています。
止まったトリガーと持ち主は、どうやって書き出しますか?
持ち主のアカウントで、トリガーの一覧を書き出すApps Scriptを実行します。ScriptApp.getProjectTriggers()が返すのは、今実行している人がそのプロジェクトに入れたトリガーだけです。持ち主が複数いるなら、1人ずつ実行します。
マクロの守りで書いたlist_triggers.gsの要点は次の数行です。スプレッドシートに付いたスクリプトなら、「triggers」という名前のシートにも書きます。
function listMyTriggers() {
const me = Session.getEffectiveUser().getEmail();
const rows = ScriptApp.getProjectTriggers().map(t => [
me, t.getHandlerFunction(), String(t.getEventType()),
String(t.getTriggerSource()), t.getTriggerSourceId() || '', t.getUniqueId()]);
console.log(JSON.stringify(rows));
}
Triggerから取れるのは、動かす関数・種類・発生元・発生元のID・トリガーのIDの5つです。毎朝何時に動くか、何時間ごとかは取れません。時間で動くトリガーは、エディタの[トリガー]の画面で時刻と間隔を見て、表のメモの列に手で写します。
入れ直すときは、担当のアカウントでScriptApp.newTrigger('関数名').timeBased().atHour(8).everyDays(1).create()のように作ります。Googleの説明では、インストール型トリガーは書き換えられず、削除して作り直すしかありません。古いトリガーが残っていると二重に動くので、持ち主のアカウントが使えるうちに消しておきます。
担当のアカウントに集めると、1日の上限は足りますか?
1回の処理が短ければ足りますが、集めた分の合計で確かめます。Apps Scriptの上限は1ユーザーあたりです。トリガーの1日の合計時間は、無料のアカウントが90分、Google Workspaceが6時間です。1回の実行は6分までです。
1日に回せる回数は、合計時間の上限を1回の実行時間で割れば出ます。6分いっぱいかかる処理なら、無料のアカウントで15回、Workspaceで60回です。1分の処理なら90回と360回です。
退職した3人のトリガーを、1つの担当アカウントに集める架空の例で計算しました。毎朝の通知が1回2分、在庫の集計が1時間ごとに24回で各3分、フォームの転記が1日40回で各0.5分です。合計は1日94分で、無料のアカウントの90分を超えます。
上限を超えると「Service using too much computer time for one day.」で止まります。担当のアカウントは会社のWorkspaceのものにし、実行時間はエディタの実行数の画面で確かめます。計算はscripts/figs/gas_owner_left.pyで再現できます。実行時間は架空の値なので、自社の値に替えてください。
次の退職で止めないために、何を決めておきますか?
トリガーを個人のアカウントで入れないことです。私が引き継ぎの仕組みを作るときは、次の4つを先に決めます。
- ファイルは共有ドライブに置き、スクリプトもそこに付ける
- トリガーは、人に紐づかない担当のWorkspaceアカウントで入れる
- 引き継ぎ書に、関数・時刻と間隔・持ち主・失敗のメールを読む人を表で残す
- 退職の手続きに「トリガーの書き出しと入れ直し」を入れ、終わってからアカウントを削除する
いちばん効くのは2つ目です。人に紐づかないアカウントで入れておけば、退職のたびにトリガーを入れ直す作業がなくなります。
トリガーが失敗すると、「Summary of failures for Apps Script」という件名のメールが送られます。担当のアカウントのメールを複数の人が読めるようにしておくと、止まったことに気づきやすくなります。
このサイトで相談するには?
退職で止まったGASも、マクロの守りで、どこに何が残っているかを一緒に見ます。何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。
準備は要りません。無料で相談するからお送りください。返信は最短当日です。
よくある質問
- 共有ドライブに置いたスクリプトなら、退職しても止まりませんか?
- いいえ、トリガーは入れ直しが要ります。共有ドライブのファイルは組織のもので削除では消えませんが、トリガーは入れた人のアカウントで動きます。
- ほかの人が入れたトリガーを、管理者のアカウントから見られますか?
- いいえ、見られません。インストール型トリガーは入れたアカウントからしか見えないので、書き出しは持ち主のアカウントで行います。
- 削除から20日を過ぎても、アカウントは復元できますか?
- いいえ、復元できるのは削除から20日までです。コードのコピーやダウンロードが社内に残っていれば、そこから作り直します。
- 担当のアカウントは、無料のGmailでもよいですか?
- 勧めません。トリガーの1日の合計時間は、無料のアカウントが90分、Google Workspaceが6時間で、集めると無料では足りなくなりがちです。
この記事の実験・計算の条件
退職した3人分のトリガーを集める架空の例。通知2分×1回、集計3分×24回、転記0.5分×40回の計94分。実機の実行ではなく計算値です。
出典
- Google for Developers「Installable Triggers」(2026年9月3日更新)(2026年10月16日確認)
- Google Workspace 管理者ヘルプ「Delete or remove a user from your organization」(2026年10月16日確認)
- Google for Developers「Quotas for Google Services」(2026年9月3日更新)(2026年10月16日確認)
- Google for Developers「Container-bound Scripts」(2026年10月7日更新)(2026年10月16日確認)
- Google for Developers「Class ScriptApp」「Class Trigger」(Apps Script リファレンス)(2026年10月16日確認)