5月1日のこの欄で、「GoogleドライブとApps Scriptを利用して指定日時にメールを自動送信しよう」(※1)を紹介しましたが、興味を持っていただけましたでしょうか?
Gmailは何かと便利ですからアカウントの一つや二つはきっとお持ちのことでしょう。ならばフリーストレージの Google drive を利用しない手はありません。その利用の一つが上記で、私は便利に使わせていただいています。
日にちで「忘れていませんか?」とリマインドメールを自分宛に送るものですが、Appやjavascriptが不得手な私でもいろんなサイトの説明から、アレンジも可能です。
日にちではなく曜日でメールを送るならば、
function checkDayAndSendEmail() {
// スプレッドシートの内容を得る
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
// 現在の日時を確認
var now = new Date();
var wd = now.getDay();
var h = now.getHours();
// シートの内容を確認する
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
var cday = row[0]; // 曜日(日~土:0~6)
var chour = row[1]; // 時間
var cto = row[2]; // 宛先
var ctitle = row[3]; // 件名
var cbody = row[4]; // 本文
// 条件を確認
if (cday == wd && chour == h) {
// メールを送信
GmailApp.sendEmail(cto, ctitle, cbody);
}
}
};
あるいは第n曜日でメールを送るならば、
function checkDayOrderAndSendEmail() {
// スプレッドシートの内容を得る
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
// 現在の日時を確認
var now = new Date();
var y = now.getFullYear();
var m = now.getMonth()+1; // getMonth()戻り値は0~11
var d = now.getDate();
var w = now.getDay();
var h = now.getHours();
// 今月一日の曜日を確認する
var date = new Date(y+”/”+m+”/1″);
var firstDay = date.getDay();
// シートの内容を確認する
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
var cweek = row[0]; // 第n
var cday = row[1]; // 曜日(日~土:0~6)
var chour = row[2]; // 時間
var cto = row[3]; // 宛先
var ctitle = row[4]; // 件名
var cbody = row[5]; // 本文
// if (typeof(cweek) != “object”) continue;
// 求めたい曜日の第一週の日付を計算する
cday = cday – firstDay + 1;
if(cday <= 0) cday += 7;
// 第n週まで1週間を足す
cday += 7 * (cweek – 1);
// 条件を確認
if (cday == d && chour == h) {
// メールを送信
GmailApp.sendEmail(cto, ctitle, cbody);
}
}
};
などとリマインド領域を増やせます。助かっている私の経験から、利用をお奨めします。
(※1) http://itpro.nikkeibp.co.jp/pc/article/column/20140114/1117623/