見出し画像

Google Apps Scriptトリガー設定手順

Google Apps Scriptで作成したプログラムを時間に応じて定期的に実行したり、特定の条件に応じて実行するためには「トリガー」を設定する必要がある。詳しく知りたい人は公式ドキュメントを見ていただくとして、どっちかという、とりあえずトリガー設定だけする人向けに手順紹介。


1. Google Apps Scriptトリガーページとトリガー追加

Google App Script Code Editorの画面左側ツールバー、上から4つ目にある「時計」ロゴがトリガーページを開くボタン。ここをクリックしましょう。

トリガーページを開くボタンはここ!!

トリガーページを開くとこんな画面になる。

トリガーページ

新しくトリガーを設定するときには、画面右下にある「トリガーを追加」のボタンを押下(上のスクショ参照)。

※トリガー設定時の注意点

  • Google Apps Scriptのトリガーは、トリガーを設定したGoogleアカウントでしか変更・削除を行うことができません。設定する際にログインしているGoogleアカウントが違うアカウントになっていないか確認しましょう。

  • プログラムの知識がない提供相手に設定してもらう場合は、ぜひこの記事のURLを共有してあげてください😀

2. Time Trigger

ここからは具体的なトリガーの設定内容についての話。まずは最も設定することが多いであろう時間をトリガーにする設定。例えば、「毎日朝8時に実行」とか、「3時間に1回定期実行」とか、そういう感じの設定。

・実行する関数を選択:定期実行するGoogle Apps Scriptの関数(function)名をプルダウン選択
・実行するデプロイを選択:基本的には選択不要
・イベントのソースを選択:「時間主導型」をプルダウン選択
・時間ベースのトリガータイプを選択:月に1回であれば「月」、週に1回であれば「週」、1日1回であれば「日付」、数時間に1回であれば「時間」、数分に1回であれば「分」をプルダウン選択
・時間の間隔/時刻/曜日/日付を選択:指定の時間間隔、または時刻/曜日/日付を選択(時間ベースの選択によって選択肢が変わる)

トリガー設定の例

それぞれの項目選択が終わったら、設定ポップアップ右下にある「保存」を押して設定完了。

※時間トリガー設定の注意点

  • 時刻 / 曜日 / 日付を選択するケースのとき、より具体的な実行時間を選択することはできず、範囲内のどこかでランダムに実行されます。

例:たとえば上のスクショの設定のとき、午前0時〜午前1時の範囲のどこかでランダムに実行される。「0時30分に実行して欲しい!」のような設定はできない

3. Google Sheets Trigger

次、Google Sheetsをトリガーにするときの設定。たとえば、「特定のセルが書き換わったときに実行」とか、「行が追加されたときに実行」とか、そういう感じのときのトリガー。

・実行する関数を選択:定期実行するGoogle Apps Scriptの関数(function)名をプルダウン選択
・実行するデプロイを選択:基本的には選択不要
・イベントのソースを選択:「スプレッドシートから」をプルダウン選択
・イベントの種類を選択:シート上で行われる行動をプルダウン選択

設定できるイベントの種類は次の4つ。
大体は「変更時」を選択することが多いんじゃないかなという感触。

・起動時:シートが開かれたときにプログラム実行
・編集時:セルの値が書き換わったときにプログラム実行
・変更時:セルの値変更以外のシートの変更も拾ってプログラム実行
・フォーム送信時:基本的には使わない

トリガー設定の例

それぞれの項目選択が終わったら、設定ポップアップ右下にある「保存」を押して設定完了。

※「編集」と「変更」どっち設定したらいい?

「編集と変更の違いってなんやねん」ってなると思うんですけど、この違いを詳しく検証してくれている記事を見つけたので興味ある方は読んでみると良いでしょう。

※シートに設置したボタンを押して実行したい

これは割と多い。なんならシートトリガーを設定するよりもボタンを設置するときの方が圧倒的に多い。私の個人的に使わない理由はシートトリガーを設定すると暴発が多いから。「意図しないときにプログラム実行されて、シートがめちゃくちゃになっちゃったー」みたいなのは結構よくある。

それなら時間で定期実行をかけるか人為的に実行ボタンを押して実行する方が安定するよなーと。で、ボタンを設置する場合の設定手段は次の2つ。

①スプレッドシートのツールバーにGAS実行ボタンを設置
②図形描写した図形にプログラムを割り当て

①ツールバーに実行ボタンを設置
説明し始めると長くなるので、黙って以下のコードをコピペしてどうぞ。

/**
 * スプレッドシートツールバーにメニューを作成
 */
function onOpen(){
  const ui = SpreadsheetApp.getUi();
  const workreport_menu = ui.createMenu('GAS実行');
  workreport_menu.addItem('[ボタンの名前]', '[実行するfunction名]');
  workreport_menu.addToUi();
}

②図形にプログラムを割り当て
これも説明し始めると長くなるので、以下のスクショを真似てみてどうぞ。

図形描写→スクリプトを割り当て

4. Google Form Trigger

Googleフォームについては「フォーム送信時」一択でしょう。フォーム送信されたことをトリガーにしてプログラムが実行する。この状況を作るためのトリガー設定。

・実行する関数を選択:定期実行するGoogle Apps Scriptの関数(function)名をプルダウン選択
・実行するデプロイを選択:基本的には選択不要
・イベントのソースを選択:「フォームから」をプルダウン選択
・イベントの種類を選択:「フォーム送信時」をプルダウン選択

トリガー設定の例

それぞれの項目選択が終わったら、設定ポップアップ右下にある「保存」を押して設定完了。

5. Google Calendar Trigger

GoogleフォームやGoogleスライド、Googleドキュメント、独立したGASファイルから設定できるカレンダートリガーの設定。たとえば、「予定が新規追加されたときに実行したい」とか、「特定の予定が変更されたときに実行したい」とかのときに設定するトリガー。

・実行する関数を選択:定期実行するGoogle Apps Scriptの関数(function)名をプルダウン選択
・実行するデプロイを選択:基本的には選択不要
・イベントのソースを選択:「カレンダーから」をプルダウン選択
・カレンダーの詳細を入力:カレンダーID(メールアドレス)を入力

トリガー設定の例

それぞれの項目選択が終わったら、設定ポップアップ右下にある「保存」を押して設定完了。


この記事が気に入ったらサポートをしてみませんか?