質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Q&A

解決済

1回答

1367閲覧

グーグルフォームで複数の質問の回答で通知先を変更したい

tkt1964

総合スコア5

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

0グッド

1クリップ

投稿2021/10/22 00:23

○やりたいこと
グーグルフォームで設問1でAと回答した時に設問2で回答した内容によって通知先を変更したい。
※下記コードは「Tシャツのサイズ」をXSと回答した人で、色を青/黒/緑の選択に応じて通知先を変更しようとしてます。(SとMは同じ様なことをしたいのでコードに残っているので気にしないでください)

※エラー内容としては、
ドメイン xxxx.xxxx が見つからなかったため、メールは xxxx@xxxx.xxxx に配信されませんでした。入力ミスや不要なスペースがないことを確認してから、もう一度送信してみてください。
と通知が来ます。

IF文の中にIF文を作成すれば出来ると思い実施してみましたが上手くいきません。

下記コードになります。
ご教授よろしくお願いいたします。

function

1 // 件名、本文 2 var subject = "回答が記入されました"; 3 var body = ""; 4 // メール送信先 5 var to = "xxxx@xxxx.xxxx"; 6 7 var itemResponses = e.response.getItemResponses(); 8 for (var i = 0; i < itemResponses.length; i++) { 9 var itemResponse = itemResponses[i]; 10 var title = itemResponse.getItem().getTitle(); 11 var ans = itemResponse.getResponse(); 12 body += '\n\n['+title+']\n\n'; 13 body += ans; 14 15 if (title==="Tシャツのサイズ") { 16 if (ans==="XS") { 17 if (title==="Tシャツの色"){ 18  if(ans==="青"){ 19 to = "×××@×××.××"; 20 } 21 else if(ans==="黒"){ 22 to = "△△△@△△△.△△"; 23 } 24 else if(ans==="緑"){ 25 to = "○○○○@○○○○.○○"; 26 } 27 } 28 } else if (ans==="S") { 29 to = "○○○○@○○○○.○○"; 30 } else if (ans==="M") { 31 to = "○○○○@○○○○.○○,△△△@△△△.△△"; 32 } 33 } 34 } 35 MailApp.sendEmail({to:to,subject:subject, body:body}); 36}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

macaron_xxx

2021/10/22 00:42

>ドメイン xxxx.xxxx が見つからなかったため、メールは xxxx@xxxx.xxxx に配信されませんでした。 エラーにでている通り、メールアドレスのドメイン部分が間違ってるんじゃないですか?
tkt1964

2021/10/22 00:53

その可能もあると思いまして、アドレスを全部同じものにして実施してみましたが 今回の、サイズXSで色分けで通知先を変更する部分だけがエラーメッセージが届いてしまいます。。。
guest

回答1

0

ベストアンサー

forは質問と回答の組み合わせをループしているので、その中で答えの組み合わせを見つけることはできません。
回答を変数に取得しておいて、最後に分岐させましょう。

js

1var size, color; 2for (var i = 0; i < itemResponses.length; i++) { 3 var itemResponse = itemResponses[i]; 4 var title = itemResponse.getItem().getTitle(); 5 var ans = itemResponse.getResponse(); 6 body += '\n\n['+title+']\n\n'; 7 body += ans; 8 9 if (title==="Tシャツのサイズ") { 10 size = ans; 11 } else if (title==="Tシャツの色"){ 12 color = ans; 13 } 14} 15if (size==="XS") { 16 if(color==="青"){ 17 to = "×××@×××.××"; 18 } else if(color==="黒"){ 19 to = "△△△@△△△.△△"; 20 } else if(color==="緑"){ 21 to = "○○○○@○○○○.○○"; 22 } 23} else if (size==="S") { 24 to = "○○○○@○○○○.○○"; 25} else if (size==="M") { 26 to = "○○○○@○○○○.○○,△△△@△△△.△△"; 27} 28 29

投稿2021/10/22 00:52

macaron_xxx

総合スコア3191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tkt1964

2021/10/22 03:42

わかりやすい解説誠にありがとうございます。 実行してみたんですが、今度は通知が届かなくなってしまったんですが これは何か理由があるんでしょうか? 何度も申し訳ございません。 下記コードになります。 function sendform(e){ // 件名、本文 var subject = "回答が記入されました"; var body = ""; // メール送信先 var to = "xxxx@xxxx.xxxx";    var size, color;  var itemResponses = e.response.getItemResponses();  for (var i = 0; i < itemResponses.length; i++) { var itemResponse = itemResponses[i]; var title = itemResponse.getItem().getTitle(); var ans = itemResponse.getResponse(); body += '\n\n['+title+']\n\n'; body += ans; if (title==="Tシャツのサイズ") { size = ans; } else if (title==="Tシャツの色"){ color = ans; }  }  if (size==="XS") { if(color==="青"){ to = "○○○○@○○○○.○○"; } else if(color==="黒"){ to = "△△△@△△△.△△"; } else if(color==="緑"){ to = "××××@××.××.××"; }  } else if (size==="S") { to = "ta.shimizu@touch-links.jp";  } else if (size==="M") { to = "○○○○@○○.○○,△△△@△△△.△△.△△";  } }
macaron_xxx

2021/10/24 23:03

もちろん MailApp.sendEmail({to:to,subject:subject, body:body}); は入ってますよね?
tkt1964

2021/10/25 07:37

入っておりませんでした、、、 誠にありがとうございます。 本当に助かりました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問