[GAS]フォーム未回答者へ督促メール送信(その2)未回答者がいなかったら完了メールを自分宛てに送信
前回はGoogleフォーム未回答者に督促メールを送信するスクリプトを紹介しました。
このスクリプトにトリガーを設定(締め切りの前日、前々日など)して運用していますが、全員が回答済みの場合はスクリプトがエラーになってしまいます。
では今回は、
●未回答者がいる場合 = 未回答者にメールを送信(←前回の記事で実装済み)
●未回答者がいない場合 = 自分宛てに「完了しました」メールを送信
という条件分岐を設定することにします。
あらかじめシート[mail2]を用意し、自分宛てのメールとして「件名」「本文」を設定しておきます。
スクリプトはこちら。
function formAnswer2() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const memberSheet = ss.getSheetByName("allMember");
const answerSheet = ss.getSheetByName("フォームの回答1");
//シート[allMember]から全員のメアド、[フォームの回答1]から回答済みメンバーのメアドを取得
const array01 = memberSheet.getRange(2, 2, memberSheet.getLastRow() - 1).getValues().flat();
const array02 = answerSheet.getRange(2, 2, answerSheet.getLastRow() - 1).getValues().flat();
const array03 = [];
//pushメソッドを用い差分をarray03に代入
for (const num of array01) {
if (!array02.includes(num)) {
array03.push(num);
}
}
//未回答者がいなかったら完了メールを自分宛てに送信
if (array03 == '') {
const myAddress = 'me@example.com'; //自分のメアドを設定
const mail2Sheet = ss.getSheetByName('mail2');
const subject2 = mail2Sheet.getRange(1, 2).getValue();
const body2 = mail2Sheet.getRange(2, 2).getValue();
GmailApp.sendEmail(myAddress, subject2, body2); //完了メールを自分宛てに送信
return;
}
const mailSheet = ss.getSheetByName("mail");
const recipient = array03;
const subject = mailSheet.getRange(1, 2).getValue();
const body = mailSheet.getRange(2, 2).getValue();
// GmailApp.sendEmail(recipient, subject, body); //メール送る
// GmailApp.createDraft(recipient, subject, body); //メール下書き
}
前回のスクリプトと比較すると、今回は以下のブロックを追加しました。
//未回答者がいなかったら完了メールを自分宛てに送信
if (array03 == '') {
const myAddress = 'me@example.com'; //自分のメアドを設定
const mail2Sheet = ss.getSheetByName('mail2');
const subject2 = mail2Sheet.getRange(1, 2).getValue();
const body2 = mail2Sheet.getRange(2, 2).getValue();
GmailApp.sendEmail(myAddress, subject2, body2); //完了メールを自分宛てに送信
return;
}
未回答者がいなかった場合は以下のメールが自分宛てに届きます。
※続きの記事を書きました
この記事が気に入ったらサポートをしてみませんか?