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

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

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

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

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1123閲覧

HTML⇔GASの受け渡しと改行をしたい

rrrrrrrrrr21

総合スコア3

Google スプレッドシート

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

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2023/03/21 08:00

編集2023/03/30 06:33

実現したいこと

スプレッドシートからGASで値を取得し、変数をHTMLに渡して
下記のように本文の改行をしたいです。(色は不要)

前提

GASでスプレッドシートから情報を取得し
Gmail下書き作成のスクリプトを作っています。
署名に装飾があるためHTMLメールでやりたいです。

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

スプレッドシートから取得している本文の改行ができません。

該当のソースコード

javascript

1function myFunction() { 2 3var result = Browser.msgBox("明細月・送付担当者・チェックボックスは入力済みですか?問題なければこのまま実行してよろしいですか?", Browser.Buttons.OK_CANCEL); 4 if (result == "ok"){ 5 6 const spreadsheet = SpreadsheetApp.getActive(); 7 spreadsheet.setActiveSheet(spreadsheet.getSheetByName("下書作成")); 8 const sheet = SpreadsheetApp.getActiveSheet(); 9 const template = HtmlService.createTemplateFromFile("INDEX.html"); 10 11 //6行目から最終行までループ処理 12 const lastRow = sheet.getLastRow(); 13 for (let i = 6; i<= lastRow; i++){ 14 15 const month = sheet.getRange(i,1).getValue(); //行ごとに1列目の「月」を取得 16 const companyName = sheet.getRange(i,2).getValue(); //行ごとに2列目の「会社名」を取得 17 const name = sheet.getRange(i,3).getValue(); //行ごとに3列目の「担当者名」を取得 18 const to = sheet.getRange(i,4).getValue(); //行ごとに4列目の「アドレス」を取得 19 const CC = sheet.getRange(i,5).getValue(); //行ごとに5列目の「CC」を取得 20 const abc = sheet.getRange(i,6).getValue(); //行ごとに6列目の「送付実行者」を取得 21 const check = sheet.getRange(i,8).getValue(); //行ごとに8列目の「チェックボックス」を取得 22 23 let jpdate = Utilities.formatDate( month, 'JST','yyyy年M月'); //1列目の日付を日本時間に変換と、形式 24 25 const subject = sheet.getRange(2,3).getValue() 26 .replace('{月}',jpdate); //行ごとにC2セルの内容を取得して{月}を変換 ※件名 27 28 //行ごとにC3セル(本文)の内容を取得して文中の{月}を変換 29 const message = sheet.getRange(3,3).getValue() 30 .replace('{月}',jpdate) 31 .replace('{会社名}',companyName) 32 .replace('{担当者名}',name) 33 .replace('{date}', jpdate) 34 .replace('{送付担当者}',abc) 35 36 template.message = message; 37 var html = template.evaluate().getContent(); 38 var body = html; 39 40 const options = { 41 "cc":CC, 42 "htmlBody": html //メール本文をhtmlファイルに指定 43 }; 44 45 46 47 //取得した内容をGmailで下書き作成 48 if(check == true){ 49 GmailApp.createDraft(to, subject, body, options); 50 51 } 52 } 53 } 54 }

HTML

1<!DOCTYPE html> 2<html> 3 <head> 4 <base target="_top"> 5 </head> 6 <body> 7 <?=message ?> 8 <body> 9 10…以下署名のHTML

試したこと

https://teratail.com/questions/352646
こちらを参考にGASからHTMLへ変数の受け渡しまではできました。
実行すると改行されず、下記のようになってしまいます。

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

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

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

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

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

guest

回答2

0

HTMLでの改行は、<br>です。
表示しようとしているテキストの改行はそうなってますか?
なってない場合は、こいつに変換する必要があります

投稿2023/03/22 00:41

y_waiwai

総合スコア87715

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

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

0

自己解決

自身で解決しました。

投稿2023/03/22 04:07

rrrrrrrrrr21

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問