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

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

新規登録して質問してみよう
ただいま回答率
85.54%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

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

Q&A

1回答

679閲覧

Googleフォームの自動返信コードのエラーで困っています

krrcha

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

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

0グッド

0クリップ

投稿2022/01/14 15:23

編集2022/01/14 15:40

私はコードなどを書くことに対して全くの初心者の学生です。
参加している団体で利用できないかと思い挑戦しています。

前提・実現したいこと

googleフォームで、
・フォーム回答者へ自動返信
・ID交付
・回答内容の確認

いろいろなサイトを見てやってみましたが、どうしてもエラーが出てしまいます。
間違っている箇所ばかりだと思いますが、エラーが出る原因をお伺いしたいです。

発生している問題・エラーメッセージ

構文エラー: SyntaxError: Unexpected identifier 行: 19 ファイル: コード.gs

該当のソースコード

function myFunction(e) {

// Googleフォームのレスポンスから必要なデータを取得する var itemResponse = e.response.getItemResponses(); var email = e.response.getRespondentEmail(); var sheet = SpreadsheetApp.openById('スプレッドシートID').getSheets()[0]; // B列(Eメールアドレス)が空値になっている行を特定し、未使用IDをターゲットにする var user_list = sheet.getRange('B:B').getValues(); var empty_row = user_list.filter(String).length + 1; var id = sheet.getRange(empty_row, 1).getValue(); // フォームで取得した値を入力する sheet.getRange(empty_row, 2).setValue(email); sheet.getRange(empty_row, 3).setValue(name); // フォームの回答を取得 VAR NAME = E.NAMEDVALUES['姓'][0]; VAR NAME2 = E.NAMEDVALUES['名'][0]; VAR EMAIL = E.NAMEDVALUES['メールアドレス'][0]; VAR M1 = E.NAMEDVALUES['姓'][0]; VAR M2 = E.NAMEDVALUES['名'][0]; VAR M3 = E.NAMEDVALUES['セイ'][0]; VAR M4 = E.NAMEDVALUES['メイ'][0]; VAR M5 = E.NAMEDVALUES['年齢'][0]; VAR M6 = E.NAMEDVALUES['郵便番号'][0]; VAR M7 = E.NAMEDVALUES['都道府県'][0]; VAR M8 = E.NAMEDVALUES['住所'][0]; VAR M9 = E.NAMEDVALUES['電話番号(日中連絡がつくもの)'][0]; VAR M11 = E.NAMEDVALUES['学校名'][0]; VAR M12= E.NAMEDVALUES['学部・学科・コース名'][0]; VAR M13 = E.NAMEDVALUES['研究室名'][0]; VAR M14 = E.NAMEDVALUES['ご質問などあればご記入ください。'][0]; // 自動返信メール件名 VAR SUBJECT = 'エントリー完了'; // 自動返信メール本文 VAR BODY = NAME1 + ' ' + NAME2 + '様\N' + '\N' + 'この度は、(団体名)にエントリーいただきまして\N' + '誠にありがとうございます。' + '\N' + 'あなたのIDは、\N' + '【' + id + '】' + 'です。\N' + '以降作品の提出に重要ですので、忘れないようにしてください。\N' + '\N' + 'また、以下の内容でエントリーを承りましたので、ご確認ください。\N' + '皆様の作品を楽しみにお待ちしております!' + '\N' + '※このメールは自動送信メールです。\N' + ' 不備・間違いの訂正は、(メールアドレス)までお願いいたします。\N' + '\N' + '─────────────────────────\N' + 'ご回答内容の確認\N' + '─────────────────────────\N' + '\N' + '【氏名】\N' + NAME1 + ' ' + NAME2 + '\N' + '\N' + '【フリガナ】\N' + M3 + ' ' + M4 + '\N' + '【年齢】\N' + M5 + 歳 + '\N' + '【郵便番号】\N' + M6 + '\N' + '【都道府県】\N' + M7 + '\N' + '【住所】\N' + M8+ '\N' + '【電話番号】\N' + M9 + '\N' + '【メールアドレス】\N' + EMAIL + '\N' + '【学校名】\N' + M11 + '\N' + '【学部・学科・コース名】\N' + M12 + '\N' + '【研究室名】\N' + M13 + '\N' + '【ご質問内容】\N' + M14 + '\N' + '\N' + '\N' + 'ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー\N' + '(団体名)\N' + 'E-mail: (メールアドレス)\N' +

// メール送信
].join('\n');
GmailApp.sendEmail(email, title, content);

}

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

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

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

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

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

guest

回答1

0

エラーは、19行目以下でvarが全部大文字になっているのが原因です。
・NAMEDVALUESはnamedValuesにする必要があります。
・/Nは/nにします。
・変数名は大文字のままでもいいですが通常は小文字始まりで書いた方がいいです。

例:

// フォームの回答を取得 VAR NAME = E.NAMEDVALUES['姓'][0]; VAR NAME2 = E.NAMEDVALUES['名'][0]; VAR EMAIL = E.NAMEDVALUES['メールアドレス'][0]; (以下略)

正しくは

// フォームの回答を取得 var name = e.namedValues['姓'][0]; var name2 = e.namedValues['名'][0]; var email = e.namedValues['メールアドレス'][0]; (以下略)

のようにします。


VAR BODY = NAME1 + ' ' + NAME2 + '様\N' + '\N' + 'この度は、(団体名)にエントリーいただきまして\N' + '誠にありがとうございます。' + '\N' +

ここは

var body = name1 + ' ' + name2 + '様\n' + '\n' + 'この度は、(団体名)にエントリーいただきまして\n' + '誠にありがとうございます。' + '\n' + (以下略)

のように直します。

投稿2022/01/15 00:53

編集2022/01/15 01:11
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.54%

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

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

質問する

同じタグがついた質問を見る

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

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