[GAS] 定期的に実行するための時限式トリガーを定義する方法

[GAS] 定期的に実行するための時限式トリガーを定義する方法

GAS とは

Google スプレッドシートでは GAS(Google Application Script) を使って、機能を拡張することができます。Excel のマクロ(VBA) みたいなイメージです。

今回は GAS でスプレッドシートにログを出力する関数を定義し、これを時限式のトリガーで定期的に実行できるようにしてみます。

GAS を定期実行する

まずは GAS で普通に関数を作る

スプレッドシートを新しく作成し、シート名は “シート1” のままにします。

ツール -> スクリプトエディタ をクリックしてスクリプトエディタを開き、以下のような関数を定義します。

function myFunction() {
  // 出力するシートを取得する
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('シート1');

  // 最終行の番号を取得
  const lastRow = sheetByName.getLastRow();

  // 末尾に現在日時を追記する
  const now = new Date();
  const range = sheet.getRange(lastRow + 1, 1);
  range.setValue(now).setNumberFormat('yyyy/MM/dd HH:mm:ss');
}

やっていることはコメントに書いた通りで、シートの末尾に実行時間を出力します。

普通に実行してみる

上で定義した myFunction をまずは普通に実行してみます。実行ボタンを押下すると、定義した関数を実行してくれます。

初回実行時には権限の承認を求めるダイアログが出るかもしれません。許可すると実行できます。

承認時に以下のように このアプリは Google で確認されていません という画面が表示される場合は、「詳細」リンクから承認ページに移動して許可します。

 

結果、シートの先頭行に実行日時が追記されていればOKです。繰り返し実行すると末尾にどんどん追記されることが確認できます。

定期的に実行できるように時限式のトリガーを定義する

GAS は定義した関数を定期実行するためのトリガーを定義できます。設定は簡単で、左の時計マークのメニューからトリガー画面に移動します。

「トリガーを追加」ボタンから新しいトリガーを追加します。

トリガーに実行する関数、イベントのソースやトリガーのタイプを設定して保存します。ここでは上で定義した myFunction を毎分実行するせていにしてみました。

保存が完了したタイミングからトリガーが稼働し、毎分的実行されるようになります。シートを表示しているとどんどんログが追加されている様子が確認できます。スプレッドシートを閉じても実行してくれるのですごいです。

※わかりやすくするために毎分実行にしているので、確認出来たらトリガーを停止しましょう。

トリガーの削除

トリガーの画面から削除するトリガーを右クリックして削除します。

その他いろいろと細かく設定できるみたいです。便利なGASの紹介でした。

以上。

GASカテゴリの最新記事