🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

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

Google

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

Q&A

解決済

1回答

706閲覧

Googleフォームで特定の回答がなされた場合に、自動的にメールを送りたい

colcol

総合スコア2

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

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

Google

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

0グッド

0クリップ

投稿2021/03/09 04:33

編集2021/03/09 05:27

プログラミング初心者です

Googleフォームで回答してもらう際に
特定の質問で、特定の回答がなされた場合に
私のところに連絡が来るようにしたいです。
コピペで試してみましたが、実行してみると以下のエラーメッセージが表示されます。。
TypeError: Cannot read property 'getItemResponses' of undefined
トリガーはうまく働いているようです。

やりたいこと
ご回答よろしくお願いします。
質問内容:あなたはお菓子が好きですか?
回答項目:はい or いいえ

いいえの時に連絡がくるようにしたいです

#function sendForm(e) {
// 件名、本文
##var subject = "返信がありました";
##var body = "お菓子が好きではないそうです";
// メール送信先
##var to = "xxxxxx@xxxxx";

###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==="いいえ")

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

var itemResponses = e.response.getItemResponses();の箇所にエラーがでます。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/03/09 04:39

「うまくいかない」の内容を具体的に質問に追記すると回答が得られやすいかと思います.そもそもメールが送信されないとか,if文関係なく送られてくるとか,「本来こうなってほしいのに実際はこう」というのがわかると原因の切り分けがしやすいです. それと,コードはマークダウン機能を利用すると見やすくなるので,こちらの編集もお願いします.
colcol

2021/03/09 05:29

アドバイスありがとうございます。括弧のくくりかたが良くないのかと思うのですが、itemResponseの使い方がよくわからず、正しい書き方がわかりません。
退会済みユーザー

退会済みユーザー

2021/03/09 05:46

コードですが,質問文の入力欄に<code>というアイコンがあると思います.そちらを押すと ```ここに言語を入力 コード ``` という表示が出ますので,コードの文字を消して現在書かれているコードをすべてこの中に入れてください.言語名はGoogleAppsScriptあたりでいいと思います(多分スペース挟むと認識しません). ```GoogleAppsScript (実際のコード) ``` ↑こんな感じです そして,itemResponseのところでエラーが出るとのことですが,具体的にエラーの内容が分かれば過去の類似事例も探しやすくなります.回答に書きますね
guest

回答1

0

ベストアンサー

GASエラー:「getItemResponses」を呼び出せません。
過去に似た事例がありました.イベントトリガーを削除して再設定すると直るそうです.

あと本題ではないのですが,変数の名前にtoやbodyといったスクリプトで使われている単語をそのまま使うと,エラーが起きた時に問題の切り分けが難しくなることがあります.今回の単語は該当しませんが,「予約語」について調べてみるといいかもしれません.

投稿2021/03/09 05:54

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

colcol

2021/03/10 00:41

イベントトリガーを削除してみましたが、やはり同様のエラーが生じました。コードが間違っているようですね。別の方法で目的は達成できたのですが、悔しいのでもう少し粘ってみます。ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問