GoogleAppsScriptのトリガーを使って自動化をマスターしよう

gas-trigger

 

本記事では、GoogleAppsScriptのトリガーの使い方を紹介します!!
ちなみにトリガーの使いかたを覚えるとこんなことができます↓

では、いくぞ!!

GoogleAppsScriptのトリガーの設定方法

まずはいつも通りGASのエディタ画面を開きます。
適当に文字列をログ画面に表示させましょう

function myFunction() {
  Logger.log("hoge");
}

 

プログラムを作成したら、「編集」→「現在のプロジェクトのトリガー」を選択し、トリガー設定画面を表示します。

 

 

設定画面右下「トリガーを追加」を選択

 

続いて

  • 実行する関数
  • 実行するデプロイ
  • 実行する時間

を選択していきます。

 

例えば、上記プログラムを1分おきに動作させたい場合は↓のような設定です。

「実行するデプロイを選択」ですが、HEADのままでOKです。

HEADとは、今現在のエディタに表示されているスクリプトコードを実行する選択支です。

バージョン管理をしていれば、過去のバージョンのプログラムを実行することもできます。今回は特に触れませんが、詳しくはドキュメントから →https://developers.google.com/apps-script/concepts/deployments

トリガーをセットするプログラム

プログラムでトリガーを設定することもできます。

function setTrigger(){
  var setTime = new Date();
  setTime.setHours(19);
  setTime.setMinutes(00);
  ScriptApp.newTrigger('myFunction').timeBased().at(setTime).create();
}

こんな感じで、ScriptApp.newTrigger関数に、「実行したい関数」と「実行したい時間」をセットしてcreateすると 指定した時間に動作するトリガーを作ることができます。

もちろん、setTimeの中には変数を入れることも出来るので、例えばスプレッドシートに予定を入れておいて スプレッドシートを読み込むプログラムをトリガーにセットすることでリマインダーを作成することができます。

使い終わったトリガーは削除しましょう

トリガーは無限にセットすることができます。

gas-trigger-infinity

 

上記プログラムのように、トリガーからトリガーを作成する設定にしていると
不要なトリガーが大量に出来てしまうことがあります。

 

それを防ぐために、1度使ったトリガーは削除するようにしましょう。

gas-trigger-delete

 

トリガーを選択し、右側のプルダウンメニュー「トリガーを削除」 を選択することでトリガーを削除することができます。

が、いちいち手作業で消すのはめんどくさいですし 自動化が売りのGoogleAppsScriptらしくないので、別の方法を使いましょう。

 

トリガーを全消去するプログラム

追加と同様に、トリガーの削除もプログラムから可能です。
それがこちら↓

ScriptApp.deleteTrigger(”削除したいトリガー名");

削除したいトリガーの名前を引数として渡すことで、削除してくれます。

 

全部削除したいときはこちら↓

var triggers = ScriptApp.getProjectTriggers();
for(var i=0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
}

ScriptApp.getProjectTriggers() で全てのトリガーを変数に代入して、for文で1つずつ削除するという流れです。

1 個のコメント

  • […] function setTrigger(start,fin){   delTrigger();   var setTime = new Date();   setTime.setHours(start);   setTime.setMinutes(00);   var date = new Date();   ScriptApp.newTrigger('start_mail').timeBased().at(setTime).create();   setTime.setHours(fin);   setTime.setMinutes(00);   ScriptApp.newTrigger('fin_mail').timeBased().at(setTime).create(); } GoogleAppsScriptのトリガーを使って自動化をマスターしよう […]

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください