当番表を渡しておいたのに、「うっかりして当番を忘れてしまった」と仕事をさぼってしまう人がいます。そこで、当番のある日の朝に、当番の仕事があることをメールするプログラムを作ってみましょう。前回、リマインドメールを送信するプログラムとその設定手順を紹介しましたので、今回は、詳しくプログラムを見ていきましょう。

スプレッドシートから値一覧を取得する

 前回は、Googleスプレッドシートに当番データを書き込み、Google Apps Script(スプレッドシートのマクロのようなもの)を利用して、メールを送信するプログラムを設定する手順を紹介しました。

 その手順では、スプレッドシートを先に作成し、スプレッドシートのメニューかららスクリプトエディタを表示し、そこにJavaScriptのプログラムを記述しました。この手順でプログラムを作った場合、特定のスプレッドシートとそのプログラムは、相互にリンクした状態になります。そのため、手軽にスプレッドシートに書き込まれている値を参照することができます。

 スプレッドシートの全データを得るプログラムは以下のようになります。


// スプレッドシートのオブジェクトを得る
var sheet = SpreadsheetApp.getActive();
// スプレッドシートの最下行/最右列を得る
var lastRow = sheet.getLastRow();
var lastCol = sheet.getLastColumn();
// スプレッドシート全体の値を得る
var values = sheet.getSheetValues(1,1,lastRow,lastCol);

 まず、スプレッドシートのオブジェクトを取得し、シートの最下行を得ます。その上で、範囲を指定してシートの値を配列変数に取得するというものになっています。わずか三行のプログラムで、スプレッドシートの全データを取得できます。

 配列にデータが取得できれば、あとは、普通のJavaScriptと同じ要領でプログラムを記述できるでしょう。