
photo credit: yourbestdigs thermometer and timer testing on wine cooler via photopin (license)
みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
初心者向けGoogle Apps Scriptのシリーズとして、名言Botの作成の仕方をお伝えしています。
前回の記事はコチラ。

別のfunctionの呼び出しについてお伝えしましたね。
これで、スプレッドシートの名言をチャットワークに送ることができるようになっているのですが、ほら、毎回手動で実行してたじゃないですか。
GASの大きな特徴の一つとして、トリガーがありますよ。
ということで、Google Apps Scriptで時限式のイベントトリガーを設置して決まった時刻にBotを送信する方法です。
では、行ってみましょう!
前回のおさらい
まず、スプレッドシートは以下のように名言がリストされています。
そして、この名言を一つずつチャットワークに送信するスクリプトを前回までで作成していまして、コチラであります。
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); for(var i = 2; i <= lastRow; i++) { if(!sheet.getRange(i, 4).getValue()){ var body = sheet.getRange(i, 1).getValue(); sendMessage(body); sheet.getRange(i, 4).setValue(true); break; } } if(i >= lastRow) { sheet.getRange(2, 4, lastRow - 1).clearContent(); } } function sendMessage(body){ var cw = ChatWorkClient.factory({token: 'ここにAPIトークンを入力してください'}); cw.sendMessageToMyChat(body); }
このmyFunctionを定期的に決まった時刻に実行していきたいわけですね。
トリガーとは
GASでは指定した日時、スプレッドシートの編集、フォームの送信といった出来事(イベントといいます)に合わせて、スクリプトを実行することができる、トリガーという機能があります。
これはまさにGoogleのサーバーで実行されるGASならではの機能でして、つまり皆さんのPCを閉じていたって、皆さんがスヤスヤ眠っていたって、決まった時間や動作に応じてスクリプトを実行できるわけです。
GASのトリガーには、あらかじめ決められた関数名でスクリプトを書くだけで実行されるシンプルトリガーと、スクリプトエディタのメニューから設定をするインストーラブルトリガーと、2種類があります。
今回は、決められた時刻に実行する時限式のトリガーを設置したいのですが、時限式のトリガーはインストーラブルトリガーでのみ設置できますので、そちらを解説しますね。
インストーラブルトリガーの設置方法
GASで時限式のインストーラブルトリガーを設置する方法を解説していきます。
まず、スクリプトエディタで「編集」→「現在のプロジェクトのトリガー」を選択します。
「現在のプロジェクトのトリガー」ダイアログが開きますので、「トリガーが設定されていません。今すぐ追加するにはここをクリックしてください。」という長めのリンクをクリックします。
インストーラブルトリガーの実行とイベント
すると「実行」と「イベント」をプルダウンで選択できるようになります。
「実行」は、トリガーで発動させたい関数名を指定します。今回は「myFunction」ですね。
「イベント」はまず以下の3種類から選べます。
- 時間主導型
- スプレッドシートから
- カレンダーから
今回は「時間主導型」ですね。
ちなみに、「スプレッドシートから」を選ぶと、次の選択肢で
- 起動時
- 編集時
- 値の変更時
- フォームの送信時
を選べます。
「カレンダーから」を選ぶと「予定を更新しました」の一択です。
時間主導型のイベント
時間主導型を選択すると、次のプルダウンで
- 特定の日時
- 分タイマー
- 時タイマー
- 日タイマー
- 週タイマー
- 月タイマー
というように、どの単位でトリガーを実行するかを選ぶことができます。

今回はすぐに実行確認したいので「分タイマー」にしておきましょう。
すると、その次のプルダウンで
- 1分ごと
- 5分ごと
- 10分ごと
- 15分ごと
- 30分ごと
と選ぶことができます。今回は「1分ごと」にしてみますよ。
これで「保存」をすると、トリガー設置完了です。
なお、トリガーはスクリプトからもコントロールすることができますので、ご興味ある方は以下記事もご覧ください。

トリガーの実行確認
では、実行の確認をしてみましょう。
しばらく放置した末に、チャットワークのマイチャットを確認すると…
以下のように、名言が何回か送信されていますね。
まとめ
Google Apps Scriptのトリガーとは何か、また時限式のトリガーの設置方法についてお伝えしました。
繰り返しになりますが、トリガーは完全クラウド環境のGASならではの素敵機能です。
PC閉じていても実行してくれるようになります。つまり、完全自動になります。
ぜひ活用くださいね!
次回は、プロパティサービスについてお伝えします。
どうぞお楽しみに!
連載目次:超初心者向けGASでBotを作りながら基礎を学ぶ
Google Apps Script(GAS)をはじめるためのメリットは山程ありますが、何を作ったらいいの?と悩んでしまうこともありますよね。そんな時に、おすすめしたいのが「Bot」の作成です。このシリーズでは、超初心者向けにGASでBotを作る方法を題材としながら、GASプログラミングの一通りの流れと書き方について学んでいきます。- 【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
- 【初心者向けGAS】はじめてのスクリプトを作成し、保存し、実行する
- 【初心者向けGAS】プログラミングに必須の変数の使い方とデータ型について
- 【初心者向けGAS】ログを表示するLogger.logの使い方
- 【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために
- 【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう
- 【初心者向けGAS】スプレッドシートのシートを取得する2つの方法
- 【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法
- 【初心者向けGAS】 for文を使ったスプレッドシートの繰り返しの超基本
- 【初心者向けGAS】条件分岐をするif文の使い方の超基本
- 【初心者向けGAS】スプレッドシートのセルに値を入力する基礎の基礎
- 【初心者向けGAS】条件に応じてループを制御する2つの方法~break文とwhile文~
- 【初心者向けGAS】 スプレッドシートのセル範囲を行数・列数を使って取得する
- 【初心者向けGAS】スプレッドシートのセル範囲をクリアするいくつかの方法
- 【初心者向けGAS】 Google Apps ScriptでWeb APIを活用するための基礎知識
- 【初心者向けGAS】面倒なことはライブラリに任せよう!その概要と追加の方法
- 【初心者向けGAS】チャットワークのマイチャットにメッセージを送る最も簡単な例
- 【初心者向けGAS】Google Apps Scriptで別の関数を呼び出すfunctionの書き方
- 【初心者向けGAS】時限式のイベントトリガーを設置して決まった時刻にBotを送信する方法