見出し画像

[GAS]フォーム未回答者へ督促メール送信(その2)未回答者がいなかったら完了メールを自分宛てに送信

前回はGoogleフォーム未回答者に督促メールを送信するスクリプトを紹介しました。

このスクリプトにトリガーを設定(締め切りの前日、前々日など)して運用していますが、全員が回答済みの場合はスクリプトがエラーになってしまいます。

では今回は、

●未回答者がいる場合  = 未回答者にメールを送信(←前回の記事で実装済み)
●未回答者がいない場合 = 自分宛てに「完了しました」メールを送信 

という条件分岐を設定することにします。

あらかじめシート[mail2]を用意し、自分宛てのメールとして「件名」「本文」を設定しておきます。

画像1

スクリプトはこちら。

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;
 }

未回答者がいなかった場合は以下のメールが自分宛てに届きます。

画像2

※続きの記事を書きました


この記事が気に入ったらサポートをしてみませんか?