
前提
公開されている備品管理のGASを活用させて頂いています。
B列の指定の日・特定の時間までにスマホでQRコードを読み込んでいるかを判定し、読み込んでいなければメールで通知が飛ぶようにしたいです。
実現したいこと
例えばB3で、時間が8時45分あれば、7/19の8時45分にそのチェックが動き、Eに記入がなければメール通知が飛ぶ、といった形をイメージしています。
定期的な通知であればトリガーで出来そうだったのですが、日付が毎月変わる必要があり、そちらの作り方がわからない状況です。
チェックの時間は8時45分固定で良いのですが、以下のソースコードにどのように追加をして行けば上手くB列の日にちとE列の記入有無判定できるでしょうか。
どうぞよろしくお願い致します。
該当のソースコード
ソースコード function bihinlabel(){ var sht = SpreadsheetApp.getActive().getSheetByName('備品'); var lastRow = sht.getLastRow(); for (var i=3; i<=lastRow; i++) { sht.getRange(i, 3).clear(); sht.getRange(i, 4).clear(); var qrc1 = '=\"https://script.google.com/macros/s/\"&$B$1&\"/exec?no=\"&A' + i; var qrc2 = '=image(\"https://chart.apis.google.com/chart?chs=250x250&cht=qr&chl=\"&C' + i +')'; sht.getRange(i, 3).setValue(qrc1); sht.getRange(i, 4).setValue(qrc2); } }
コード function doGet(e) { var no = e.parameter.no; var datetime = new Date(); var today = Utilities.formatDate(datetime,'JST', 'yyyy/MM/dd'); var userid = Session.getActiveUser().getEmail(); var sht = SpreadsheetApp.getActive(); var lastRow = sht.getLastRow(); const values = sht.getRange(3, 1, lastRow - 2).getValues().flat(); var r = values.indexOf(no) + 3; sht.getRange(r, 5).setValue(datetime); sht.getRange(r, 6).setValue(userid); return ContentService.createTextOutput(today + "\n" + sht.getRange(r, 2).getValue() + "\n" + userid); }
試したこと
定期的な通知であればトリガーで出来そうだったのですが、日付が毎月変わる必要があり、そちらの作り方がわからない状況です。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。


回答1件
あなたの回答
tips
プレビュー