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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google フォーム

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

Google Apps Script

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

Q&A

解決済

1回答

596閲覧

フォームに改行された状態で入力されたものを、自動返信のメールでも改行された状態で表示したい

sunsunviiino

総合スコア1

Google フォーム

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

Google Apps Script

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

0グッド

0クリップ

投稿2022/06/29 15:39

編集2022/06/30 23:31

初めまして。素人で行き詰ってしまいこちらに問合せをさせていただきます。
googleフォームより、会社名、担当者名、住所などの情報を入力し、会社名をメールタイトルに表示するようにしたものです。
フォームからは改行された状態で入力した場合(例えば住所など)、フォームの情報を吐き出すスプレッドシートには改行された状態で表示されるのですが、返信のメールでは、改行されていない状態のためメールでも改行された状態で表示される方法を教えていただけますでしょうか

(フォームに入力した状態)
〒123-0000
東京都◎◎区××xxx-xxx-xxx
BBビル

(返信メールの表示)
〒123-0000 東京都◎◎区××xxx-xxx-xxx BBビル

以下スクリプトコードになります。

function submitForm(e){

var address = e.response.getRespondentEmail();
var itemResponses = e.response.getItemResponses();
var message = '';

var htmlbody = '<table>' + '申請者:' + e.response.getRespondentEmail();
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();

if (question == '会社名'){
var corporate = itemResponse.getResponse();;
}
if(answer !=''){
message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n';
htmlbody += '<tr><td><b>' + question + '</b></td><td> </td><td>' + answer + '</td></tr>';
}
}
htmlbody += '</table>';

var options2 = {from:'★メールアドレス', name:'★メールアドレス', cc:'★メールアドレス',htmlBody:htmlbody};
var title = '【問合せ】'+ corporate + ' 様';
var content = message;
GmailApp.sendEmail(address, title, content, options2);
}

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

js

1htmlbody += '<tr><td><b>' + question + '</b></td><td> </td><td>' + answer + '</td></tr>'; 2}

ここを

js

1 htmlbody += '<tr><td><b>' + question + '</b></td><td> </td><td>' + answer.split('\n').join('<br>') + '</td></tr>';

のように変えてみてはどうでしょうか。


追記(コメントより)

質問のが「住所」のときだけ改行を <br> にする場合は、下記のようなコードになります(全体)。

考え方:質問のタイトルは question という変数に紐づけられているため、questionが「住所」という文字列に一致するか判定し、
一致する場合は、answerの改行を <br> に置き換えます。

js

1function submitForm(e) { 2 3 var address = e.response.getRespondentEmail(); 4 var itemResponses = e.response.getItemResponses(); 5 var message = ''; 6 7 var htmlbody = '<table>' + '申請者:' + e.response.getRespondentEmail(); 8 for (var i = 0; i < itemResponses.length; i++) { 9 var itemResponse = itemResponses[i]; 10 var question = itemResponse.getItem().getTitle(); 11 var answer = itemResponse.getResponse(); 12 13 if (question == '会社名') { 14 var corporate = itemResponse.getResponse();; 15 } 16 if (answer != '') { 17 var answer_html = answer; 18 if (question === '住所') { 19 // 質問が「住所」のときは、改行を<br>に変換する。 20 answer_html = answer.split('\n').join('<br>'); 21 } 22 message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n'; 23 htmlbody += '<tr><td><b>' + question + '</b></td><td> </td><td>' + answer_html + '</td></tr>'; 24 } 25 } 26 htmlbody += '</table>'; 27 28 var options2 = { from: '★メールアドレス', name: '★メールアドレス', cc: '★メールアドレス', htmlBody: htmlbody }; 29 var title = '【問合せ】' + corporate + ' 様'; 30 var content = message; 31 GmailApp.sendEmail(address, title, content, options2); 32} 33

投稿2022/06/29 22:00

編集2022/06/30 11:24
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

sunsunviiino

2022/06/30 00:42

ご回答いただきありがとうございます!!改行することができとても見やすくなりました! ただ選択式の回答でerroerが出てしまうので、住所という質問にのみ頂いた表示形式を適用させたいと思うのですが、もしお分かりになれば教えていただけますでしょうか。 こういう場合は別で質問を立てた方がよいでしょうか。よくわかっておらずすみません。 TypeError: オブジェクト ◎◎(選択式の項目) で関数 split が見つかりません。(行 24、ファイル「管理者通知メール」)
退会済みユーザー

退会済みユーザー

2022/06/30 10:08

コードを追記しました。
sunsunviiino

2022/06/30 14:29

追加の質問にもかかわらず、ご回答いただきありがとうございます。 コードの追記のみならず考え方もご教示いただきありがとうございます。とても腹落ちしました! 質問前に自分でもいろいろ試してみたのですが、ゴテゴテした割にうまくいかず、シンプルでわかりやすくとても勉強になります。 一から勉強してみたくなりました!ご丁寧に教えていただき心から感謝いたします。 高評価100くらい付けたい気分です。
sunsunviiino

2022/06/30 14:31

ご教示頂いた通りに、コードを入れて試したところうまくいきました。感動のあまり肝心な結果を書き忘れました。m(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問