
今回はGASで書いたプログラムを定期実行させる方法を書いていきたいと思います。例えば、毎日3時頃に書いたプログラムを実行したい!っていうことありますよね。
そんな時にはGASで定期実行してくれるトリガーを使えばいいんです。今回はトリガーの紹介ととちょっとしたプログラムを書いて試してみるよ。
GASでできる定期実行
GASで定期実行する画面を見る前にGASでできる定期実行について書いていきたいんだけど、定期実行にはトリガーっていうものを使います。定期実行することのできるタイミングはこの中から選ぶことができる。
- 分ベース・・・1・5・10・15・30分おきのどれかで実行可能
- 時間ベース・・・1・2・4・6・8・12時間おきのどれかで実行可能
- 日付ベース・・・午前0~1時・午前1~2時・・・・午後10~11時・午後11時~午前0時のどれかで実行可能
- 週ベース・・・毎週月〜日曜日のどれかで実行可能(時刻は日付ベースで指定可能)
- 月ベース・・・毎月の指定した日付で実行可能(時刻は日付ベースで指定可能)
ちょっと分かりづらいけど、トリガーを作成する画面で指定可能です。
自分の指定した細かい時刻っていうわけにはいかないけど、結構色々指定ができますよね。毎日定期的に実行したいなら日付ベースのトリガーを設定すればいいし、毎時間実行してほしいなら時間ベースのトリガーです。
トリガーを設定して定期実行してみる
実際にやってみないとわかりづらいからトリガーを設定して定期実行させてみましょう。
定期実行したい関数を作成する
まずは定期実行させたい処理を書いていきます。処理はなんでもいいけど今回は実行したのがわかりやすいようにスプレッドシートに「トリガー実行完了」っていう文言と日付を入力する処理を書く。
function write() {
var sheet = SpreadsheetApp.openById('スプレッドシートのID');
sheet.appendRow(["トリガー実行完了", Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd')])
}
スプレッドシートを開いてその最終行に書き込む処理です。これを実行するとこんな風にスプレッドシートに書き込まれる。
ただ今回やりたいのは定期実行だから定期実行の設定をやっていこう。
トリガーを設定して定期実行させる
定期実行させたいプログラムを書いたら、左からトリガーを選択しよう。
そしたら右下のトリガーを追加をクリック。
定期実行のタイミングをここで設定することができるんだけど、大事なのは実行する関数とトリガーのタイプです。
時間ベースのトリガーのタイプを選択して選択した関数を定期実行させたいタイミングを設定しましょう。今回は1分おきに関数を実行したいので、1分置きにしておいてこんな感じにしておきます。
これで作成すると1分おきにさっき書いたスプレッドシートに書き込む関数が実行される。保存してちょっと時間を置いてスプレッドシートを確かめてみよう。
ちょっとわかりづらいから、日付の部分を分秒まで表示するように変えて置きます。
sheet.appendRow(["トリガー実行完了", Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd hh:mm:ss')])
そしてトリガーを設定してちょっと置いて確かめてみると・・・
ちゃんと毎分おきに実行されているのがわかりますね。ちなみにエラーが起きたら失敗した実行を確認してみるといいですよ。何かエラー文が出てるんじゃないかなと思います。
項目をクリックするとエラー内容が表示される。
エラーをすぐにメールで知らせるようにする
トリガーの実行でエラーが起きたらすぐにメール通知して知らせてほしい場合は、トリガーのエラー通知設定を「今すぐ通知を受け取る」にしておくといいです。
そうするとエラー起きたらこんな風にメールが飛んできます。
何か大事なものの時にはすぐに通知を受け取れるようにしておいて、原因の解明に走るといいですね。
GASで定期実行は可能
今回はスプレッドシートに書き込むっていう処理を定期実行しただけだけど、もっと有用なプログラムを定期実行すればきっと作業が楽になるはずです。
データをどこからか取得してスプレッドシートに書き込むっていう処理なんかは業務とかでよくありそうですよね。そういった作業を定期実行してしまえばより作業が楽になるはず。何もしなくてもプログラムがやってくれるからね。
GASで作業自動化・効率化をしたかったら人にお願いするのもあり
こういった自動化を行う際に自分ではコード書きたくない・・分からん・・・っていう場合もあると思います。そういう時にはココナラ覗いてみるとGASを使った自動化作業を結構やってくれる人がいるうから、見てみると良いですよ。