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

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

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

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

Q&A

2回答

984閲覧

GASでメールの自動返信する際に、氏名などの情報を本文の最初に記載したい

退会済みユーザー

退会済みユーザー

総合スコア0

Google Apps Script

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

0グッド

1クリップ

投稿2019/07/04 02:55

前提・実現したいこと

GASにて、アンケートフォームに回答した人に自動でメール返信をしたい。
その際に、会社名 メールアドレスを文章のはじめに記載したい。

(例)
○○株式会社
×× 様

本文

フッター

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

同じようなフォームはすでに組めており、そちらは例のような表記が出来ている。 しかし、今回作りたいアンケートフォームも同様にしようとコピペしたのだが、なぜか 本文だけになってしまっており、○○株式会社 ××様 の部分がない。 なお、メールの送信やBCC設定などは出来ている。 今回解決したいのは、 (現在) 本文 フッター ↓ (やりたいこと) ○○株式会社 ×× 様 本文 フッター という流れにするには、どのようにすればよいか ということである。

該当のソースコード

// 入力カラム名の指定 var NAME_COL_NAME = '氏名'; var MAIL_COL_NAME = 'メールアドレス'; var COMP_COL_NAME = '会社名'; // 送信先オプション var options = {}; if ( admin_name ) options.name = admin_name; if ( bcc ) options.bcc = bcc; if ( reply ) options.replyTo = reply; try{ // スプレッドシートの操作 var sheet = SpreadsheetApp.getActiveSheet(); var rows = sheet.getLastRow(); var cols = sheet.getLastColumn(); var rg = sheet.getDataRange(); Logger.log("rows="+rows+" cols="+cols); // メール件名・本文作成と送信先メールアドレス取得 for (var i = 1; i <= cols; i++ ) { var col_name = rg.getCell(1, i).getValue(); // カラム名 var col_value = rg.getCell(rows, i).getValue(); // 入力値 body += "【"+col_name+"】\n"; body += col_value + "\n\n"; if ( col_name === NAME_COL_NAME ) { var person_name = col_value+" 様\n\n"; } if ( col_name === COMP_COL_NAME ) { body = col_value + "\n" + person_name + body; } if ( col_name === MAIL_COL_NAME ) { to = col_value; } } body += footer;

推測

質問項目の順番が違うから? と推測している。

すでにGASが機能している表の場合

氏名メールアドレス会社名

今回の場合

|参加セミナー|氏名|メールアドレス|会社名|
|:--|:--:|--:|

となっているため、順番が違うからこのようなエラーが出ているのではないか..?

どのようにすれば問題が解決できますでしょうか。

ご教授いただければ幸いです。

何卒宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

「body = col_value + "\n" + person_name + body;」と「to = col_value;」部分ともに変数宣言の頭がありません。
共に頭にvarなどを入れ変数宣言してください。

投稿2019/07/05 01:41

hiroshi0240

総合スコア640

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

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

退会済みユーザー

退会済みユーザー

2019/07/05 04:14

ともに変数宣言をしましたが、改善できずでした。 (コピペ元が変数宣言をせずに機能していたため、問題はここではないかと思います)
hiroshi0240

2019/07/05 04:34

よく見ると最初のbody +=が出てくる前でbodyが宣言されていませんし、footerも宣言されていません。これで本当にメール送信まで動いているのですか?途中でエラーが起きて止まってしまうと思うのですが。 少なくとも、body += "【"+col_name+"】\n"; body += col_value + "\n\n";とbody += footer;がなければ動くとは思いますが
hiroshi0240

2019/07/05 08:13

なるほど。質問の仕方が回答者いじめのようですね。 この手のコード流用されている場合は、元ネタと質問者がアレンジした部分をわかるように書いてもらわないと難しい過ぎます。
macaron_xxx

2019/07/05 08:46

この場合、元ネタが粗悪ですからね…。
guest

0

コードは他のものからコピペして一切手を加えていない、というのを前提とした回答。

氏名とか会社名とかに、スペース入ってないですか?「氏 名」とかっていう意味です。「 氏名 」かもしれない

投稿2019/07/04 09:56

papinianus

総合スコア12705

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

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

退会済みユーザー

退会済みユーザー

2019/07/05 00:10

そちらも確認したのですが、スペースなどは入っていませんでした.. コピペ、かつ手は加えていません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問