GASおよびGoogleスプレッドシートで改行を入れる方法
こんにちは!KCompany代表のケータです!
Google Apps Scriptを使って、Googleスプレッドシートから本文情報を読み取り、Gmailでメール一括作成を行う際の改行方法についてまとめます。
実際の利用シーン
お客様向けに個別に、複数のMTG日程候補を送るといった場合
元々、送信先の名前やメールアドレス、複数のMTG日程候補がそれぞれの列に入力されたスプレッドシートがあるとします。GASを使って、これらを以下のような本文イメージで入力するとします。
●●様
お世話になります。**です。
以下の日程はご都合いかがでしょうか。
1)5/15(土) 10:00-11:00
2)5/15(土) 15:00-16:00
3)5/16(日) 13:00-14:00
上記の1〜3の日程部分の作り方で、いくつかパターンを考えてみました。
方法1:スプレッドシートのセルの中で改行する
これが一番簡単かもしれません。
ただこれだと、人によってデータ量がまちまちだったりする場合など、色々と不都合なシーンがでてくるかも。
方法2:スプレッドシート内で演算子・関数を使って改行をいれる
以下みたいなパターンです。
Googleスプレッドシートで改行できる方法ってどんなパターンがあるんだろう?と思って探した際に下記の記事がヒットして、1の拡張パターンとして考えてみました。
ただ、これだと結局、日程3がない人とかは無駄に改行が入ってしまいます。IF関数使って場合分けして処理するといった方法も考えられますね。ちょっとスプレッドシート内の処理が煩雑な気もします。
方法3:Google Apps Scriptのコード内で改行コードをいれて処理する
結局これが一番安定するかも?
// 基本的な文字列リテラルの作成
`In JavaScript '\n' is a line-feed.`
// 複数行の文字列
`In JavaScript, template strings can run
over multiple lines, but double and single
quoted strings cannot.`
結局今回は\nの改行コードを使う方法で対応しました。複数の日程のセルのうち、空の値がある場合は改行を入れないなどすれば余計な改行をいれたりしなくてすみますね。
※テンプレートリテラルは試してないです。
ただ、コード側で対応しちゃうと、GASの方は読めません!という使い手の方がいる場合はブラックボックスになってしまうので、このあたりは使い手の方との利用シーン次第という感じになってくるでしょうか。
他にも方法はあるかもしれません。
参考情報
メール配信のスクリプト自体は下記のものを転用しました。
【お仕事のご依頼について】
こちらの記事に記載した内容以外にも、Google Apps Script開発やGoogle Workspaceを活用したデジタル化推進のお仕事を行っています。【GAS】そのまま使えるシリーズのカスタマイズのご相談ももちろん大丈夫です。
ちょっとしたお困りごとでも、こちらのサイトのお問い合わせフォームからご連絡いただければ、折り返しご連絡いたします。
よろしければサポートをお願いします!いただいたサポートは、サービス開発・改善のために使わせていただきます。主に書籍代や勉強会の参加費用などを想定しています。よろしくお願いします。