GAS入門 Google Apps Script

【3分で簡単】GASで希望した日時にトリガーを設定

お仕事おつにゃッス🐈

文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!

今回はGoogle Apps Scriptsを使用して、毎日決まった時刻にスクリプトを実行する方法を紹介します。

GASのトリガーを使うことで、簡単に繰り返し行いたいコードを自動で設定できます。特に、あなたが毎日処理したいコードを実行するときは強い味方になります。

あっきょ
この記事は以下で悩んでいる人におすすめ!

  • 任意のタイミングで実行するアプリを作りたい
  • 作業を自動化して業務効率化を図りたい
  • プログラミングでJavaScriptを学んだけど、何を作っていいかわからない

3分で設定できるので、お気軽に学んでいきましょう。

トリガーとは?

GASでのトリガーの概要と説明

GASでいうトリガーとは、特定の条件下でコードを自動で実行する仕組みをいいます。

この仕組みはスマートフォンのアラーム機能と似ています。

たとえば、あなたが朝7時にアラームを設定したら、その時間にアラームが毎日鳴るのは想像できるでしょう。

これと同様に任意のタイミングでコードを自動で実行するようになります。

トリガーを設定する準備

Google Apps Scriptで任意のタイミングで関数を実行する準備をします。準備物は1つです。

必要なファイル

  • Google Apps Script ・・・ コードを記述して、トリガー関数を実行

サンプルコードを貼り付ける方法

ソースコードはGoogle Apps Scriptのファイルにコピペします。

メニュー画面で右クリックし、オプションを開きます。メニュー一覧の一番下の「その他」を選択し、その中の「Google Apps Script」を選択します。

以下のような画面が現れます。ここにコードをコピペして実行します。

トリガーを使ったサンプルコードと解説

GASでトリガー関数を実行するサンプルコードの解説していきます。

解説の項目

  • サンプルコード
  • A, 時間を指定してトリガーを生成する関数
  • B, 処理を実行する関数

サンプルコード

右上にあるマークを押すとコードのコピペを一瞬でできます。

また、文頭にアルファベットが付いているコメントごとに詳細を説明していきます。

以下のトリガーは、「毎日12時にrunCode関数を実行」します。

//A, 時間を指定してトリガーを生成する関数
function setTrigger() {
  let time = new Date();

  time.setDate(time.getDate() + 1); //日付
  time.setHours(12); //時
  time.setMinutes(0); //分
  time.setSeconds(0); //秒
  ScriptApp.newTrigger('runCode').timeBased().at(time).create();  
}


//B, 処理を実行する関数
function runCode() {
  setTrigger();

  //処理したいコード
}

A, 時間を指定してトリガーを生成する関数

//A, 時間を指定してトリガーを生成する関数
function setTrigger() {
  let time = new Date();

  time.setDate(time.getDate() + 1); //日付
  time.setHours(12); //時
  time.setMinutes(0); //分
  time.setSeconds(0); //秒
  ScriptApp.newTrigger('writeWord').timeBased().at(time).create();  
}

任意の時間で、コードを実行するトリガーを作成します。

Dateオブジェクトからインスタンスを作成し、実行する時刻をセッターの引数に入れます。

このコードで使用したセッターは以下の4つです。

セッター名詳細
setDate(num)1~31の「日」を表す数字を引数に入れる
setHours(num)0~23の「時」を表す数字を引数に入れる
setMinutes(num)0~59の「分」を表す数字を引数に入れる
setSeconds(num)0~59の「秒」を表す数字を引数に入れる

なお、日付で1を足しているのは翌日を表しており、トリガーにコードを翌日実行するように設定しています。

最後のScriptAppから続くコードで、翌日分のトリガーを設定します。

B, 処理を実行する関数

//B, 処理を実行する関数
function runCode() {
 setTrigger();

  //処理したいコード
}

「//処理したいコード」から下は、あなたが毎日実行したいコードを貼り付けます。

runCode関数 内は、setTrigger関数翌日のトリガーを作成した後に処理したいコードを実行します。

コードの説明は以上です。

任意の時刻で実行するトリガーの設定と確認

GASで希望したタイミングでコードを実行するトリガーを設定するかテストを行います。

赤丸で囲っている文字が「setTrigger」であることを確認します。確認出来たら、左側にある「実行」を押します。

「このアプリはGoogleで確認されていません」と表示される場合はこちら

【3分で解決】GASの「このアプリはGoogleで確認されていません」を許可する方法

続きを見る

実行が完了したら、カーソルを右に移動して「トリガー」を選択します。

トリガー画面の表示

トリガーの一覧が現れます。カーソルを合わせて右側の鉛筆マークをクリック。

トリガーのリスト

トリガーの詳細が表示されます。赤丸が翌日の日付になっていれば成功です。この画像では、2022年2月2日に実行したので、2月3日と表示されました。

トリガーの詳細

実行する時間がずれるときは?

ログで出力する時間とDataオブジェクトから作ったインスタンスとの時間がズレて表示されることがあります。

これはGoogle がアメリカの時間を標準したのが原因なので、標準時を日本に変更します。

以下の記事では標準時間を日本に変える方法を紹介しています。詳細はこちら

【3分で解決】GASで出力した時間がずれたときにタイムゾーンを変更する方法

続きを見る

GASで作れるトリガーで自動化できるアプリの紹介

トリガー処理が必要なプログラムがない場合、管理者が投稿した記事を紹介します。

トリガー関数と組み合わせるとさらに業務効率化が実現しますので、ぜひご参考ください。

【簡単】GASで当日のカレンダーの予定をLINEに通知

続きを見る

【残業3割減】GASでメールの一斉送信を自動化

続きを見る

【不安解消】GASでLINEに日本株の1日の値動きを通知

続きを見る

おわりに

以上がGoogle Apps Scriptで決まった時刻にスクリプトを毎日実行する方法でした。

そのままコピペして日常業務で使いやすいように改修したり、プログラミングの練習や動作確認用に使ってみましょう。

GASでさらに業務効率化したい場合、参考書やプログラミングスクールを使うとあなた自身でアプリを作るスキルが身に付きます

プログラミング未経験者にもわかりやすく解説しています。

GASユーザーのあっきょがおすすめの勉強方法はこちら↓

次回の記事もご期待ください!

-GAS入門, Google Apps Script
-, , , , , , , , , , , , , , , ,