【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のファイルにコピペします。

メニュー画面で右クリックしてオプションを開きます。

1番下の「その他」を選択し、その中の「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で確認されていません」と表示した場合はこちら

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

トリガー画面の表示

トリガーの一覧が現れるので、右側の鉛筆マークをクリック。

トリガーのリスト

トリガーの詳細を表示します。

赤丸が翌日の日付になっていれば成功です。

この画像では2022年2月2日に実行したので、2月3日と表示されました。

トリガーの詳細

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

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

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

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

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

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

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

おわりに | GASの業務効率化でスキルを上げるには

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

そのままコピペして日常業務で使ったり、プログラミングの動作確認に使ったりしてみましょう。

GASを効率的に学ぶなら以下の2つの方法が多いです。

  • 参考書やオンライン教材で独学
  • プログラミングスクールを利用

正しく学ぶことで非エンジニアでも実用的な業務効率化のスキルが身に付きます

デイコーでは、GASのサンプルコードからおすすめのプログラミングまで幅広く紹介。

初心者にもわかりやすく解説しています。

あっきょ

プログラミングスクールは82社を分析したッス!

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

それでは、よいプログラミングライフを!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

文系未経験のWebエンジニア。事務職がプログラミング学習して社内SE部門立ち上げ&Webサイト作成。業務効率化で残業80%減を達成。得意な言語 : GAS, JavaScript, Python

目次