初めまして初心者です。
どなたか教えていただけないでしょうか。
前提・実現したいこと
GoogleActionScriptを使用し、Google spreadsheet上の各行の中で期限の3日前、7日前に自動的に指定のメールアドレスにMailSendでリマインドを行いたい
発生している問題・エラーメッセージ
実行すると以下エラーとなります。
Cannot find method formatDate(string,string,string). (line 25, file "Code")
25行目のコード抜粋
var strLimit_format = Utilities.formatDate(strLimit, "JST", "yyyy/MM/dd");
ネットで調べて解決しようと行ったこと
25行目のコード抜粋にnewdateを追加
var strLimit_format = Utilities.formatDate(new Date(strLimit), "JST", "yyyy/MM/dd");
25行目に追記した結果のエラーメッセージ
TypeError: Cannot find function getYear in object 期限. (line 36, file "Code")
spread sheetの内容
コード全文
function mailSend() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheets()[0];
var today = new Date();
var today_format = Utilities.formatDate(today, "JST", "yyyy/MM/dd");
var strFrom = "hoge@gmail.com"; var strCc = ""; for (var i = 2; i <= 300; i++) { var strName = sheet1.getRange(i, 3).getValue(); if ( strName == "" ) { continue; } var strTo = sheet1.getRange(i, 4).getValue(); var strQualNo = sheet1.getRange(i, 1).getValue(); var strQualName = sheet1.getRange(i, 2).getValue(); var strLimit = sheet1.getRange(i, 6).getValue(); var strLimit_format = Utilities.formatDate(new Date(strLimit), "JST", "yyyy/MM/dd"); var strSub = "[お知らせ]" + strQualName + "期限について"; //Subject var strBody = strName + "さん\n\nお疲れ様です。; var strLimit_3Date = new Date(strLimit.getYear(), strLimit.getMonth(), strLimit.getDate() - 3); var strLimit_3Date_format = Utilities.formatDate(strLimit_3Date,"JST","yyyy/MM/dd"); var strLimit_7Date = new Date(strLimit.getYear(), strLimit.getMonth(), strLimit.getDate() - 7); var strLimit_7Date_format = Utilities.formatDate(strLimit_7Date,"JST","yyyy/MM/dd"); if ( today_format == strLimit_3Date_format || today_format == strLimit_7Date_format ) { var send = GmailApp.sendEmail( strTo, strSub, strBody, { from: strFrom } ); } }
}