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

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

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

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

516閲覧

フォームの回答に応じて メールの通知先を変更したい

yasutakauekusa

総合スコア2

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2021/04/01 11:07

前提・実現したいこと

グーグルフォームからスプレッドの反映時にフォームの回答に応じて
メールの通知先を変更したいです。
同じように質問されてる方もいましたがそれでもうまくいかないため質問いたします。

該当のソースコード

function sendForm(e){
var subject = '〇〇NEWスプレッド投入通知';
var body = '案件の投入がありました。\n\n';
var to = "×××@××.co.jp";

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==="担当部署") { if (ans==="A部署") { to = '〇〇@〇〇.co.jp'; } else if (ans==="B部署") { to = '▲▲@▲▲.co.jp'; } else if (ans==="C部署") { to = '卍卍@卍卍.co.jp'; } }

}
MailApp.sendEmail({to:to,subject:subject, body:body});
}

試したこと

上記で試しましたがメールも送付されません。

補足情報(FW/ツールのバージョンなど)

顧客管理をおこなっておりフォームでAの質問を担当部署にしていて回答でA部署、B部署、C部署をプルダウンで選択するとフォーム送信後にA部署のメンバーにメールがいく、B部署をプルダウンで選択するとB部署にメールがいくということをしたいです。

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

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

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

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

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

xail2222

2021/04/01 23:25 編集

提示のコードのメールアドレスを変更した所、私の所ではメールが選択内容に応じて送信されました。 なので、エラーが出ているかいないか。出ているならその内容は何か。 という情報を追記できないでしょうか。 もし実行結果の確認方法がわからない場合、その旨コメントお願いします。
yasutakauekusa

2021/04/02 01:08

エラー TypeError: Cannot read property 'response' of undefined sendForm @ コード.gs:6 こちらとなります。
yasutakauekusa

2021/04/02 01:11

また質問になりますが、var to = "×××@××.co.jp";のアドレスに関してはif (title==="担当部署") { if (ans==="A部署") { to = '〇〇@〇〇.co.jp';のアドレスと一緒でもOKなのでしょうか。完全に素人のためご教示お願いします。
xail2222

2021/04/02 01:28 編集

そのエラーは実際の実行時ではなくエディタで実行したものではありませんか? フォームの送信時のトリガーで実行されたログをお願いします メールアドレスについてですが、同じでも良いと思いますよ 要件しだいですが
yasutakauekusa

2021/04/02 01:30

エディタでの実行となります。宜しくお願い致します。
yasutakauekusa

2021/04/02 02:10

エラー TypeError: Cannot read property 'getItemResponses' of undefined at sendForm(コード:6:32) こちらが実際のフォーム送信後のエラーとなります。
guest

回答2

0

ベストアンサー

適当なところに以下のコード加えてみるといかがでしょうか?

FormApp.getActiveForm()

これと同じケースかも。
https://qiita.com/toro_ponz/items/c32365a368e43113f031

投稿2021/04/05 01:23

sawa

総合スコア3002

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

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

yasutakauekusa

2021/04/05 01:43

試しましたが届かないですね。。。
sawa

2021/04/05 01:46

コードはどこのエディタに書いてますか?フォーム側ですよね?
sawa

2021/04/05 01:48

スプレッドシートで開いたエディタでなく、フォーム側のエディタに書いてますよね?っていう確認です。
yasutakauekusa

2021/04/05 01:54

すみません。スプレッド側でしていたみたいでフォームで入りなおしたら今できました!!
sawa

2021/04/05 01:57

そこのミスでしたか。解決してなによりです。 質問を解決済みとしてください。
guest

0

エラー TypeError: Cannot read property 'getItemResponses' of undefined

at sendForm(コード:6:32)
こちらが実際のフォーム送信後のエラーとなります。

トリガーがフォームの送信時に設定されていないという事だと思います。
フォームの起動時に設定されているのではないでしょうか。
トリガーのイベントの種類において「起動時」ではなく「フォーム送信時」を選択してください。

と分析したのですが、果たしてあっているのか…

投稿2021/04/02 15:06

編集2021/04/02 15:08
xail2222

総合スコア1497

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

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

yasutakauekusa

2021/04/05 01:14

イベントに関してもフォーム送信時に設定しております。プルで選択しても一向にメールが届かない形です。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問