Google Apps Script を使って何分後の時間を取得する

↓こちらのスプレッドシートでは、Google Apps Script を使います。

C列(何分後)とD列(項目名)に値が入ったら、A列に今の日時、B列にC分後の予定の日時が自動的に入るようにします。

var sheet = SpreadsheetApp.getActiveSheet();

function addDate() { setNowDate(1, "yyyy/M/d H:m:s");
setInfoDate(2,"yyyy/M/d H:m:s"); }

function setNowDate(col, format) { var lastrow = sheet.getLastRow(); if (sheet.getRange(lastrow, col).getValue() == "") sheet.getRange(lastrow, col).setValue(formatDate(new Date(), format)); }

function formatDate(date, format) { return Utilities.formatDate(date, 'Asia/Tokyo', format) }

//---

function setInfoDate(col,format) { var nowDate = new Date(); var lastrow = sheet.getLastRow(); var addMin = sheet.getRange(lastrow, 3).getValue(); var infoDate = new Date(nowDate.getYear(), nowDate.getMonth(), nowDate.getDate() ,nowDate.getHours(), nowDate.getMinutes()+addMin,nowDate.getSeconds()); if (sheet.getRange(lastrow, col).getValue() == "") sheet.getRange(lastrow, col).setValue(formatDate(infoDate, format)); }

function checkInfoDate(){ var lastrow = sheet.getLastRow(); var nowDate = new Date();

if(lastrow == 1){ //データがなければ実行しない return; }

for (var i=2; i<=lastrow; i++) { var infoDateTime = sheet.getRange(i, 2).getValue(); if(infoDateTime < nowDate){

var memo = sheet.getRange(i, 4).getValue();      
sendHttpGet("お知らせします。" + memo + "の時間になりました。" + "繰り返します。" + memo + "の時間になりました。");

sheet.deleteRows(i, 1);
break;

}

} }

function sendHttpGet(msg){ UrlFetchApp.fetch("http://【ngrok で作られたドメイン】/?msg=" + msg); }

↓こちらのように1分単位で監視して、予定の日時が来たら特定のURLにアクセスして、その行を削除します。

関連記事