Googleフォームからメールを自動返信する② 条件分岐

「Googleフォームからメールを自動返信する①」では、フォームからの回答に対して自動でサンクスメールを返信するプログラムを完成させました。
今回はその応用編となります。
未読の方は、先に下の記事から学ばれることをおすすめします。

前回はサンプルフォーム「イベント出欠確認」からの回答が参加でも不参加でも、返信するサンクスメールの本文は同一で変わりありませんでした。
これでもなんら問題はないのですが、今回は参加か不参加かを条件として、返信するメール本文の内容を使い分けて、アプリを少しレベルアップさせましょう。

参加用と不参加用の本文を準備

まず初めにApps Script「サンクスメールの自動返信」を開きます。

今現在の返信用の本文、const bodyは1つだけです。

これを改良し、
「はい、参加します」の回答用に、const yes_body
「いいえ、参加できません」の回答用に、const no_body
の2つの本文を準備します。

文面を回答に合ったものに書きかえましょう。

条件分岐 if else文

answerが「はい、参加します」と等しければ yes_bodyを、そうでなければ no_bodyを送信させます。

if ( 条件 ) {
 条件が真(true)の時このブロックを実行
} else {
 条件が偽(false)の時このブロックを実行
}

完成コード

function sendThanksMail() {

  // スプレッドシートの最終行と最終列を取得
  const sheet = SpreadsheetApp.getActiveSheet();
  const lastrow = sheet.getLastRow();
  const lastcol = sheet.getLastColumn();

  // フォームの最新の回答を取得
  const values = sheet.getRange(lastrow,1,1,lastcol).getValues().flat();
  const email = values[1];
  const name = values[2];
  const answer = values[3];

  // メール本文を作成して回答者に送信
  const title = '【イベント出欠確認】ご回答ありがとうございます';

  // 参加の場合の本文
  const yes_body = 
  `
  ${name} 様

  ご回答:${answer}

  上記のご回答を確認いたしました。
  ご参加いただけるとのこと、ありがとうございます。
  当日お目にかかれることを楽しみにしております。
  `;

  // 不参加の場合の本文
  const no_body = 
  `
  ${name} 様

  ご回答:${answer}

  上記のご回答を確認いたしました。
  今回はご参加いただけないとのことで残念です。
  次回のご参加をお待ちしております。
  `;

  // 参加か不参加で本文を条件分岐させる
  if (answer == 'はい、参加します') {
    MailApp.sendEmail(email, title, yes_body);
  } else {
    MailApp.sendEmail(email, title, no_body);
  }
}

フォームからテスト送信

「はい、参加します」と「いいえ、参加できません」でサンクスメールの本文がちゃんと条件分岐されるかどうか、では、実際に試してみましょう。

回答を変えて、2通送信します。

ちゃんと条件分岐ができて、本文が回答に相応しいものになっています!
完成です。

これで、いちいち回答内容を確認して、手動でサンクスメールを送る手間が省けました。
GASって便利ですね!ファビコン

シリーズ目次:Googleフォームからメールを自動返信する

  1. Googleフォームからメールを自動返信する①
  2. Googleフォームからメールを自動返信する② 条件分岐
  3. Googleフォームからメールを自動返信する③ イベントオブジェクト

GASGフォーム

Posted by botw