マクロの守り中小企業のAI導入支援|Excelマクロ(VBA)の属人化の解消からExcelマクロ(VBA)の引き継ぎ 専門

コラムよくある困りごと

GASが退職で止まったのはなぜ?トリガーの持ち主を移し、20日の期限までに入れ直す

社員の退職でGASが止まるのは、インストール型トリガーが入れた人のアカウントで動くためで、移さなかったファイルも削除から20日で復元できなくなります。アカウントを消すと、毎朝の通知や集計を動かす人がいなくなります。直すには、持ち主のアカウントでトリガーを書き出し、ファイルを移してから、担当のアカウントで入れ直します。マクロの守りで書いた書き出しのスクリプトと、1日の上限の計算を載せます。(2026年10月時点)

読み解きから直す・置き換えるまでの流れと費用はExcelマクロの引き継ぎのページにまとめています。

要点

  • GASのインストール型トリガーは入れた人のアカウントで動き、ほかのアカウントからは見えません。
  • アカウントの削除から20日を過ぎると、移さなかったマイドライブのファイルは復元できません。
  • トリガーから書き出せる項目は5つで、時刻と間隔は入らないので画面で写します。
  • 6分かかる処理をトリガーで回せるのは、1日15回(無料)か60回(Workspace)までです。
  • 上限は1ユーザーあたりなので、架空の3本を1つのアカウントに集めると1日94分になります。
目次
  1. GASを作った社員が退職すると、なぜ止まるのですか?
  2. アカウントの削除から20日の間に、何ができますか?
  3. 止まったトリガーと持ち主は、どうやって書き出しますか?
  4. 担当のアカウントに集めると、1日の上限は足りますか?
  5. 次の退職で止めないために、何を決めておきますか?
  6. このサイトで相談するには?
  7. よくある質問

GASを作った社員が退職すると、なぜ止まるのですか?

GASのインストール型トリガーは、入れた人のアカウントで動くからです。Googleの説明(2026年9月3日更新)は、このトリガーが「常に作った人のアカウントで動く」としています。そのアカウントを削除すると、毎朝の通知や集計を動かす人がいなくなります。

削除したときの動きそのものを、Googleは書いていません。私は、動かすアカウントがない以上、止まるものとして扱います。

やっかいなのは、トリガーがほかのアカウントから見えないことです。後任の画面には何も出ず、止まった理由を探しにくくなります。VBAのマクロも含めた全体の流れは、Excelマクロの引き継ぎにまとめています。

コードが残るかどうかは、スクリプトの置き場所で決まります。スプレッドシートに付いたスクリプトの持ち主は、そのスプレッドシートの持ち主です。どの場合も、トリガーは担当のアカウントで入れ直します。

スクリプトの置き場所 削除のあとのコード すること
残る社員が持ち主のスプレッドシート 残る 担当のアカウントでトリガーを入れ直す
共有ドライブのファイル 残る(組織のもの) 担当のアカウントでトリガーを入れ直す
退職者のマイドライブ 20日までは復元で戻る 復元して移し、トリガーを入れ直す
退職者のマイドライブ(20日より後) 戻らない コピーがあればそこから作り直す

アカウントの削除から20日の間に、何ができますか?

削除から20日までなら、特権管理者がアカウントを復元し、ファイルを移してからトリガーを入れ直せます。Google Workspaceの管理者ヘルプによると、削除したユーザーのデータは、20日以内に復元してから移します。復元すると、移さなかったドライブのファイルも戻ります。

Google Workspaceのアカウント削除からの日数の図。0日でトリガーを動かすアカウントがなくなり、20日までは特権管理者が復元してファイルを移せる。20日を過ぎると移さなかったマイドライブのファイルは戻らないアカウントを削除してからの日数0日5日10日15日20日削除の前特権管理者が復元できる復元できない0日 削除トリガーを動かすアカウントがなくなる20日 期限移さなかったマイドライブのファイルが戻らない削除の前持ち主のアカウントでトリガーを書き出す → ファイルを移す → 担当のアカウントで入れ直す0〜20日復元する → ファイルを移す → 担当のアカウントでトリガーを入れ直す → もう一度削除20日より後コピーやダウンロードが残っていなければ、コードから作り直す出典:Google Workspace 管理者ヘルプ(ユーザーの削除)、Apps Script「Installable Triggers」。確認日 2026-10-16。共有ドライブのファイルは削除で消えない
図1 アカウントの削除からの日数と、できること。Googleの管理者ヘルプと「Installable Triggers」をもとに、マクロの守りが1枚にまとめました。

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回です。

1回の実行時間ごとにトリガーで1日に回せる回数の横棒グラフ。6分いっぱいの処理は無料アカウントで15回、Google Workspaceで60回。1分の処理は90回と360回1回の実行時間ごとの、トリガーで1日に回せる回数(計算値)無料アカウント(1日 90分)Google Workspace(1日 6時間=360分)0.5分/回180回720回1分/回90回360回2分/回45回180回3分/回30回120回6分/回 (上限)15回60回計算:1日の回数 = トリガーの合計時間の上限 ÷ 1回の実行時間。上限は Apps Script の Quotas(2026-09-03 更新、確認日 2026-10-16)
図2 1回の実行時間ごとの、1日に回せる回数(計算値)。6分の処理は、無料のアカウントで15回、Workspaceで60回までです。

退職した3人のトリガーを、1つの担当アカウントに集める架空の例で計算しました。毎朝の通知が1回2分、在庫の集計が1時間ごとに24回で各3分、フォームの転記が1日40回で各0.5分です。合計は1日94分で、無料のアカウントの90分を超えます。

架空の3つのトリガーを1つの担当アカウントに集めた1日の合計時間の積み上げ棒。通知2分、集計72分、転記20分で合計94分。無料の上限90分を超え、Workspaceの360分には収まる3つのトリガーを1つの担当アカウントに集めたときの、1日の合計(架空の例)毎朝の発注の通知:1回 × 2分 = 2分在庫の集計(1時間ごと):24回 × 3分 = 72分フォームの転記(送信のたび):40回 × 0.5分 = 20分無料の上限 90分Workspace の上限 360分合計 94分架空の例。上限は1ユーザーあたり(Quotas、確認日 2026-10-16)。計算は scripts/figs/gas_owner_left.py
図3 3つのトリガーを集めた1日の合計(架空の例、計算値)。合計94分は、無料のアカウントでは上限を超え、Workspaceの360分には収まります。

上限を超えると「Service using too much computer time for one day.」で止まります。担当のアカウントは会社のWorkspaceのものにし、実行時間はエディタの実行数の画面で確かめます。計算はscripts/figs/gas_owner_left.pyで再現できます。実行時間は架空の値なので、自社の値に替えてください。

次の退職で止めないために、何を決めておきますか?

トリガーを個人のアカウントで入れないことです。私が引き継ぎの仕組みを作るときは、次の4つを先に決めます。

  1. ファイルは共有ドライブに置き、スクリプトもそこに付ける
  2. トリガーは、人に紐づかない担当のWorkspaceアカウントで入れる
  3. 引き継ぎ書に、関数・時刻と間隔・持ち主・失敗のメールを読む人を表で残す
  4. 退職の手続きに「トリガーの書き出しと入れ直し」を入れ、終わってからアカウントを削除する

いちばん効くのは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分。実機の実行ではなく計算値です。

出典

  1. Google for Developers「Installable Triggers」(2026年9月3日更新)(2026年10月16日確認)
  2. Google Workspace 管理者ヘルプ「Delete or remove a user from your organization」(2026年10月16日確認)
  3. Google for Developers「Quotas for Google Services」(2026年9月3日更新)(2026年10月16日確認)
  4. Google for Developers「Container-bound Scripts」(2026年10月7日更新)(2026年10月16日確認)
  5. Google for Developers「Class ScriptApp」「Class Trigger」(Apps Script リファレンス)(2026年10月16日確認)