GAS | GASのプログラム(マクロ)をトリガーで自動実行するための手順

スプレッドシートやドキュメントで作成したプログラムは、トリガーにより自動実行することも可能です。

これにより、いちいちプログラムを実行しなくても実行されるため、実行忘れを防ぐと同時に、定期的に実行する操作の完全な自動化を図ることができます。

 

トリガーには特有の実行制限などもあり、少し注意が必要な部分もあります。しかし完全な自動化という点ではその効果は大きく、試みる価値は十分にあります。その特徴を理解して、ぜひ有効に活用しましょう!

トリガーの種類

ひとくちにトリガーといっても、複数の種類があります。目的に応じて使い分けていきましょう。

スプレッドシートに関連するトリガー

スプレッドシートに加えられた操作を検知して発動するトリガーたちです。

種類起動条件
起動時任意のユーザーがスプレッドシートを開くたびに起動する(ブラウザの再読み込みを含む)
編集時任意のユーザーがスプレッドシートを編集するたびに起動する。
変更時任意のユーザーがスプレッドシートを変更するたびに起動する。
フォーム送信時連結されたgoogleフォームから、スプレッドシートにデータが送信されるたびに起動する。

●「編集」とは…
・スプレッドシートのセル内の値が変更された場合です。(ただし入力モードに入ったとしても、入力の前後で値が変化していない場合は当てはまりません。)
・セルを結合させた場合も対象になります。

●「変更」とは…
・セル内の値の変更に限らず、スプレッドシートに何かしらの変更が加えられた場合です。行の追加・削除、フォントの変更、図形の挿入など、ありとあらゆる変更が対象になります。
・つまり「変更」は「編集」を含んでいますので、両方をトリガー設定すると、編集発動時には変更もあわせて発動します。そのため同じ操作の場合は、重複してしまいます。

日時に関連するトリガー

指定の日時や間隔に従って発動するトリガーたちです。

種類起動条件
特定の日時指定日時(分単位)になれば起動
分ベースのタイマーx 分おきに起動(x = 1, 5, 10, 15, 30)
時間ベースのタイマーx 時間おきに起動(x = 1, 2, 4, 6, 8, 12)
日付ベースのタイマー1日おきに起動(起動時間帯を、1時間幅で選択できる)
週ベースのタイマー1週間おきに起動(起動曜日を選ぶ。また起動する時間帯を、1時間幅で選択できる)
月ベースのタイマー1月おきに起動(起動日付を選ぶ。また起動する時間帯を、1時間幅で選択できる)

カレンダーに関連するトリガー

カレンダーに加えられた操作を検知して発動するトリガーたちです。2024/05現在のところ、次の1種類のみです。

種類起動条件
カレンダー更新済み指定したgoogleカレンダーに変更が加えられたら起動

トリガー設定の手順

  • スプレッドシート(以下SS)またはドキュメントなどで、メニューバーからツール>スクリプトエディタをクリックする。
  • スクリプトエディタの画面が開きます。
  • 【重要】この段階で、画面右上のgoogleアカウントが正しく選択されているか確認ください。もし希望のアカウントが表示されていない場合などは、そのブラウザでログインするようにしてください。
    ※正しく選択されていないと、エラーが生じる可能性があります。詳しくはコチラをご確認ください。
  • 編集>現在のプロジェクトのトリガー、をクリック
  • トリガーを追加、をクリック

トリガー設定の画面が開くので、適宜設定していきます。

①実行する関数を選択
→発動対象のプログラムを選びます。(通常はプログラマーより指示します)
②実行するデプロイを選択
→Headを選びます。
※早い話が、プロジェクトのversion選択です。Headとは、その時点での最新保存版を指します。
③イベントのソースを選択
→目的に応じて、プログラムの発動方式を選びます。前節参照ください。
④ここは③によって内容が変わりますので、希望に合うものを選んでください。
⑤トリガー実行中にエラーが生じた場合、その旨がメールで通知されます。通知の頻度を選んでください。
⑥保存をクリック

これで、トリガー設定完了です!

※設定したプログラムをまだ実行したことがない場合は、このような警告画面が表示される場合があります。この場合は、リンク先の手順で対応してください。

トリガーを設置した場合の実行アカウントについて

トリガー発動によりプログラムを実行する場合、その実行アカウントは、トリガーを設置したgoogleアカウントになります。

つまり、プログラムの操作対象となるファイルやフォルダーに対して適切な権限をもったアカウントで、トリガーを設定する必要があります。

 

(特にプログラムがgmailを操作する場合、注意が必要です。プログラムはその実行アカウントのgmailしか操作できません。そのためgmailを操作したい場合は、そのgmailのgoogleアカウントにログインした状態でトリガーを設置する必要があります。)

 

詳しくはこちらをご覧ください。

トリガーの制限

GASではプログラム実行に関する各種の制限がありますが、トリガーでプログラムを実行する場合は、さらに特有の制限がいくつか加えられます。

 

詳しくはコチラ(わかりやすいまとめページ)

google公式ドキュメント

 

トリガー特有の制限は次です。

制限の種類制限値意味合い
トリガーの数20 件 / 1 ユーザー / スクリプトトリガーを設置できる数に制限があることを意味します。
つまり、あるユーザーは、あるスクリプトに対してトリガーは20個までしか設置できません。
トリガーの合計実行時間90 分 / 日トリガーでプログラムを実行した合計時間に制限があることを意味します。これを超えるとエラーになります。(1日ごとにリセット)
つまり、あるユーザーは、ある1日において、すべてのスクリプトでのトリガー起動による処理時間が90分までしか実行できません。

特に、1分に1回とかのハイペースでトリガー発動させた場合、合計実行時間の制限には容易にひっかかりえます

(1回の実行時間を3秒としても、3秒×60分×24時間=72分と、かなりギリギリです)

 

これらに引っ掛かった場合、実行時間を短縮するか、もしくは実行アカウントを複数用意するといった対応が必要になります。

 

関連記事

Leave a Reply

Your email address will not be published. Required fields are marked *