お店に届くメールを処理するスクリプトを、30分おきにトリガーで動かしています。
あるとき、処理するメールが3か月くらい1通も来ない時期がありました。その間もスクリプトは30分おきに動き続けています。何もしないのに動かしておいていいのか、止めたほうがいいのか、しばらく迷いました。
結局、そのままにしました。
この記事では、そのとき知りたかったことを、テスト用のスクリプトで1週間あまり動かして確かめました。
- ちゃんと動いているかは、どこで見るのか
- 「毎朝9時」と指定すると、実際には何時に動くのか
- 失敗したら、何が起きて、何が届くのか
- 処理するものがない間、止めるべきか
- 止めるときは、どうするのか
題材は、こちらの記事で作った「Gmailの添付ファイルをドライブに保存する」スクリプトです。トリガーの付け方も、この記事で説明しています。
→ Gmailの添付ファイルをGoogleドライブに自動保存する【GAS初心者向け・コピペOK】
この記事ではコードは書きません。GASの画面を開いて、表示を確かめていくだけです。
確かめた条件
テスト用のスクリプトに、トリガーを2つ付けて動かしました。
| 種類 | 間隔 | |
|---|---|---|
| 1つ目 | 分ベースのタイマー | 30分おき |
| 2つ目 | 日付ベースのタイマー | 午前9時〜10時(毎日) |
検索条件に合うメールを送らない限り、毎回「保存するものは0件」で終わる状態です。処理するメールが来なかった3か月と、同じ状態を作ったことになります。
ちゃんと動いているかを確かめる
エディタの左端に縦に並んだアイコンのうち、上から5番目の「実行数」を押します。

トリガーで動いた回が、新しい順に並びます。見るところは4つです。
| 列 | 見るところ |
|---|---|
| 種類 | トリガーで動いた回は「時間主導型」、エディタの「実行」ボタンで動かした回は「エディタ」と出る |
| 開始時間 | 何時何分に動いたか |
| 期間 | 1回にかかった時間 |
| ステータス | 「完了」なら正常。失敗すると赤い字で「失敗しました」 |
処理するものがない回は、1秒前後で終わる
保存するメールが0件の回は、ほとんどが0.6〜2秒で終わっていました。1週間で一番長かった回でも5.7秒です。
見られるのは過去7日分だけ
画面の上に「過去 7 日間」と出ています。それより前の記録は、この画面では見られません。
30分おきのトリガーだと、1日に48回、7日で300回以上の記録が並びます。最初は1ページに50件しか出ないので、前の日を見るには何ページもめくることになります。画面の一番下にある「1ページあたりの行数」を200に変えると、4日分くらいが1ページに収まります。
指定した時刻ちょうどには動かない
2つ目のトリガーは「日付ベースのタイマー」で、時刻を「午前9時〜10時」にしました。

時刻の選択欄は「9時」ではなく「9時〜10時」と、幅で選ぶ形になっています。この1時間のどこかで動く、という意味です。
実際に動いた時刻を実行数の画面で見ると、確かめた7日間、毎日 9:54:45 でした。

秒まで毎日同じです。Googleの公式ドキュメントにも、「指定した1時間のどこかで動き、その時刻が翌日以降も保たれる」という趣旨のことが書かれています。
「毎朝9時ちょうどに動いてほしい」という使い方には向きません。10時までに終わっていればいい作業に使ってください。
30分おきも「0分と30分」ではない
30分おきのトリガーは、毎時 26分10秒 と 56分10秒 に動いていました。
トリガーを付けたのは夜の22時55分で、1回目はその1分後、22時56分10秒に動きました。30分待たずに、付けた直後に1回目が来ます。そこから30分刻みなので、26分と56分になったようです。
失敗したらどうなるか
わざと失敗させて、確かめました。
壊し方は、コードの関数名を変えることです。function saveGmailAttachments() を function saveGmailAttachments2() に書き替えて保存しました。トリガーは saveGmailAttachments という名前で関数を探すので、見つからずに失敗します。
実行数の画面
次の回から、ステータスが赤い字の「失敗しました」に変わりました。

1回の時間は0.5秒前後で、正常な回の半分くらいです。関数が見つからず、すぐに止まるためです。
行の右端の「∨」を押すと、その回のエラー文が開きます。

Script function not found: saveGmailAttachments
「saveGmailAttachments という関数が見つからない」という意味です。
トリガーの一覧
トリガーの一覧には「エラー率」という列があります。何割の回が失敗したかを示す数字です。
1回失敗した時点で、30分おきのトリガーのエラー率は 0.32% でした。
丸1日失敗させ続けても、15.65% です。それまでの成功した回も含めて計算するので、数字はなかなか大きくなりません。
「0%でなければ、何か起きている」と思って見てください。0%以外の数字が出ていたら、実行数の画面で赤い「失敗しました」を探します。
失敗したら届くメール
失敗すると、Googleからメールが届きます。
届いたのは、最初に失敗してからちょうど24時間後でした。トリガーの「エラー通知設定」が、最初から「毎日通知を受け取る」になっているためです。1日分の失敗をまとめて、1通で知らせてきます。
| 実際に届いたもの | |
|---|---|
| 差出人 | noreply-apps-scripts-notifications@google.com |
| 件名 | Summary of failures for Google Apps Script: 無題のプロジェクト |
件名の最後には、スクリプトの名前が入ります。
本文は英語です。最初にこう書かれています。
Your script, 無題のプロジェクト, has recently failed to finish successfully.
「スクリプトが最近、正常に終わりませんでした」という意味です。
その下に、エラー文ごとの回数の表があります。
Error Message Count
Script function not found: saveGmailAttachments 48
さらに下に、失敗した1回ずつの記録が並びます。
10/4/26 9:26:10 PM JST saveGmailAttachments Script function not found: saveGmailAttachments time-based
日付は「月/日/年(下2桁)」の順です。「10/4/26 9:26:10 PM」は、2026年10月4日の午後9時26分10秒です。
迷惑メールと見分けにくい英語のメールですが、差出人がGoogleのこのアドレスなら本物です。直すかトリガーを消すまで、毎日届きます。
失敗メールは、トリガーごとに別々に届きました。上のメールに入っていたのは、30分おきのトリガーの48回だけです。毎朝9時のトリガーが失敗した1回(10月5日 9時54分)は、翌朝の9時54分に、別のメールで届きました。失敗が1回だけだったので、回数の表はなく、1回分の記録だけが書かれていました。
直したあと
関数名を元に戻して保存すると、次の回から「完了」に戻りました。
ただし、トリガーの一覧のエラー率はすぐには0%に戻りません。直した直後は15.65%から15.56%に下がっただけで、翌朝は14.76%、その日の午前中には逆に16.84%に上がっていました。過去の失敗も含めた割合なので、直したあともしばらく残り、上がったり下がったりします。
直したかどうかは、エラー率ではなく、実行数の画面で新しい回が「完了」になっているかで確かめてください。
処理するものがない間、止めるべきか
冒頭の迷いに戻ります。
1日に使っている時間
トリガーで動かせる時間には、1日あたりの上限があります。Googleの公式ドキュメント(2026年9月時点)では、次のとおりです。
| アカウントの種類 | トリガーで動かせる時間の合計 |
|---|---|
| 個人のGoogleアカウント(@gmail.com) | 1日90分 |
| Google Workspace(会社などの有料アカウント) | 1日6時間 |
→ Quotas for Google Services(Google公式・英語)
今回のテストでは、30分おきが1日48回、毎朝9時が1日1回で、合わせて49回です。処理するものがない回は1秒前後なので、1日に使うのは1分弱になります。90分の上限に比べれば、ごくわずかです。
処理するものがない間、動かしておいても困ることはほとんどありません。
止めたほうがいい場面
それでも、次のような場合は止めることを考えてください。
- その作業そのものが終わった。 もう二度とそのメールは来ない、と分かっているなら、動かしておく理由がありません
- 失敗が続いている。 失敗メールが毎日届きます。直せないなら、止めたほうが落ち着きます
- 1回の処理が重い。 たとえば1回に2分かかる処理を30分おきに動かすと、2分×48回で96分になり、個人アカウントの上限を超えます
止め方・消し方
トリガーの一覧で、止めたい行にマウスを乗せると、右端に鉛筆のマークと「︙」が出ます。
「︙」を押すと、メニューが開きます。

止めるときは「トリガーを削除」を選びます。
選ぶと「完全に削除しますか?」という確認が出ます。「この操作を元に戻すことはできません」と書かれているとおり、消したトリガーは元に戻せません。よければ「完全に削除」を押します。
一時停止のような項目は、このメニューにも、鉛筆のマークで開く編集画面にもありません。画面から止める方法は、削除だけです。
あとでまた使うかもしれないなら、消す前に、鉛筆のマークで編集画面を開いて設定をメモしておいてください。「何分おき」「何時」が分かれば、同じものを作り直せます。
つまずき集
トリガーが2つあると、どれがどれか分からない
トリガーの一覧には、何分おきか、何時かが出ません。

「イベント」の列は、30分おきも毎朝9時も「時間ベース」です。違うのは「前回の実行」の時刻だけです。実行数の画面でも、どちらも「時間主導型」と出るので見分けられません。
確かめるには、行にマウスを乗せて出てくる鉛筆のマークを押します。

鉛筆のマークは、マウスを乗せている間しか出ません。最初は見つけにくいと思います。

見るだけなら、最後に「キャンセル」で閉じてください。「保存」は押さなくて大丈夫です。
関数の名前を変えたら、トリガーが動かなくなった
Script function not found: saveGmailAttachments
トリガーは、付けたときの関数の名前で、関数を探します。あとからコードの中で名前を変えると、見つからずに失敗します。
困るのは、名前を変えて保存した時点では何も起きないことです。トリガーの一覧の「関数」の列は古い名前のまま、エラー率も0%のままです。次にトリガーが動いた時刻に、初めて失敗します。
直すには、コードの関数名を元に戻すか、トリガーを消して新しい名前で付け直します。
エラーが出ているのに「完了」になる
エラーが発生しました: Exception: Invalid file or folder ID: TEST_BROKEN_FOLDER_ID
こちらの記事で整えたコードは、処理全体を try-catch で囲んでいます。途中でエラーが起きても止まらずに、エラーの内容を実行ログに書いて終わる形です。
→ 動いたGASのコードを、後から直しやすい形に整える【CONFIG・関数分割・try-catch】
この形だと、エラーが起きても、実行数の画面では「完了」になります。
保存先フォルダのIDをわざと間違えて、トリガーで動かして確かめました。ステータスは「完了」で、行を開くと上のエラー文が「情報」として出ていました。赤い「エラー」ではありません。
失敗として数えられないので、エラー率は上がらず、失敗メールも届きません。気づくには、実行数の画面で行を開いて、中身を見るしかありません。
直したのに、エラー率が下がらない
上の「直したあと」で書いたとおりです。エラー率は過去の失敗も含めた割合なので、直してもしばらく残り、上がって見えることもあります。実行数の画面で、新しい回が「完了」になっていれば直っています。
まとめ
- 動いているかは「実行数」の画面で見る。トリガーの一覧のエラー率は、0%でなければ見に行く合図
- 「毎朝9時」は9時〜10時のどこかで、毎日同じ時刻に動く
- 処理するものがない回は1秒前後。止めるのは、作業が終わったときか、失敗が続くとき
次に
この記事で見たのは、トリガーで動かした「あと」の画面です。
失敗を知らせるメールには、弱いところがあります。
- 本文が英語
- 届くのは1日1回のまとめで、失敗してからしばらく気づけない
- スクリプトの中で try-catch を使ってエラーを受け止めていると、「完了」になってメールが届かない
このあとの記事では、スクリプトの中で失敗を受け止めて、日本語で自分あてに知らせる方法を扱います。
※2026年10月時点の画面で確かめた内容です。Googleの画面表示は変わることがあります。

コメント