スプレッドシートやドキュメントで作成したプログラムは、トリガーにより自動実行することも可能です。
これにより、いちいちプログラムを実行しなくても実行されるため、実行忘れを防ぐと同時に、定期的に実行する操作の完全な自動化を図ることができます。
トリガーには特有の実行制限などもあり、少し注意が必要な部分もあります。しかし完全な自動化という点ではその効果は大きく、試みる価値は十分にあります。その特徴を理解して、ぜひ有効に活用しましょう!
トリガーの種類
ひとくちにトリガーといっても、複数の種類があります。目的に応じて使い分けていきましょう。
スプレッドシートに関連するトリガー
スプレッドシートに加えられた操作を検知して発動するトリガーたちです。
イベントの種類 | 内容 |
---|---|
起動時 | スプレッドシートを起動したとき |
編集時 | スプレッドシートを編集したとき |
変更時 | スプレッドシートを変更したとき |
フォーム送信時 | フォームを送信したとき |
●「編集」とは…
・スプレッドシートのセル内の値が変更された場合です。(ただし入力モードに入ったとしても、入力の前後で値が変化していない場合は当てはまりません。)
・セルを結合させた場合も対象になります。
●「変更」とは…
・セル内の値の変更に限らず、スプレッドシートに何かしらの変更が加えられた場合です。行の追加・削除、フォントの変更、図形の挿入など、ありとあらゆる変更が対象になります。
・つまり「変更」は「編集」を含んでいますので、両方をトリガー設定すると、編集発動時には変更もあわせて発動します。そのため同じ操作の場合は、重複してしまいます。
日時に関連するトリガー
指定の日時や間隔に従って発動するトリガーたちです。
イベントの種類 | 設定項目 |
---|---|
特定の日時 | 任意の日時に実行 |
分ベースのタイマー | 1分おきに実行 5分おきに実行 10分おきに実行 15分おきに実行 30分おきに実行 |
時ベースのタイマー | 1時間おきに実行 2時間おきに実行 4時間おきに実行 6時間おきに実行 8時間おきに実行 12時間おきに実行 |
日付ベースのタイマー | ◯時〜◯時に実行(1時間区切りで実行タイミングを選ぶ) |
週ベースのタイマー | 毎週◯曜日に実行 ※時間も日付ベースのタイマーと同様に選べます。 |
月ベースのタイマー | 毎月◯日に実行 ※時間も日付ベースのタイマーと同様に選べます。 |
カレンダーに関連するトリガー
カレンダーに加えられた操作を検知して発動するトリガーたちです。2020/08現在のところ、次の1種類のみです。
イベントの種類 | 設定項目 |
---|---|
カレンダー更新済み (設定されたアドレス(googleアカウント)のカレンダーが更新された時に実行) | カレンダーオーナーのアドレス |
トリガー設定の手順
- スクリプトエディタの画面が開きます。
- 【重要】この段階で、画面右上のgoogleアカウントが正しく選択されているか確認ください。もし希望のアカウントが表示されていない場合などは、そのブラウザでログインするようにしてください。
※正しく選択されていないと、エラーが生じる可能性があります。詳しくはコチラをご確認ください。
トリガー設定の画面が開くので、適宜設定していきます。
①実行する関数を選択
→発動対象のプログラムを選びます。(通常はプログラマーより指示します)
②実行するデプロイを選択
→Headを選びます。
※早い話が、プロジェクトのversion選択です。Headとは、その時点での最新保存版を指します。
③イベントのソースを選択
→目的に応じて、プログラムの発動方式を選びます。前節参照ください。
④ここは③によって内容が変わりますので、希望に合うものを選んでください。
⑤トリガー実行中にエラーが生じた場合、その旨がメールで通知されます。通知の頻度を選んでください。
⑥保存をクリック
これで、トリガー設定完了です!
※設定したプログラムをまだ実行したことがない場合は、このような警告画面が表示される場合があります。この場合は、リンク先の手順で対応してください。
トリガーを設置した場合の実行アカウントについて
トリガー発動によりプログラムを実行する場合、その実行アカウントは、トリガーを設置したgoogleアカウントになります。
つまり、プログラムの操作対象となるファイルやフォルダーに対して適切な権限をもったアカウントで、トリガーを設定する必要があります。
(特にプログラムがgmailを操作する場合、注意が必要です。プログラムはその実行アカウントのgmailしか操作できません。そのためgmailを操作したい場合は、そのgmailのgoogleアカウントにログインした状態でトリガーを設置する必要があります。)
詳しくはこちらをご覧ください。
トリガーの制限
GASではプログラム実行に関する各種の制限がありますが、トリガーでプログラムを実行する場合は、さらに特有の制限がいくつか加えられます。
トリガー特有の制限は次です。
項目 | 内容 |
---|---|
トリガーの数 | 20(ユーザまたはスクリプトあたり) |
トリガーの合計実行時間 | 90分(1日あたり) |
●トリガーの数… トリガーを設置できる数に制限があることを意味します。
●トリガーの合計実行時間… トリガーでプログラムを実行した合計時間に制限があることを意味します。これを超えるとエラーになります。(1日ごとにリセット)
特に1分に1回とかのハイペースでトリガー発動させた場合、合計実行時間の制限には容易にひっかかりえます(1回の実行時間を3秒としても、3秒×60分×24時間=72分と、かなりギリギリです)
これらに引っ掛かった場合、実行時間を短縮するか、もしくは実行アカウントを複数用意するといった対応が必要になります。