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って便利ですね!