LoginSignup
0
0

More than 1 year has passed since last update.

スプレッドシートにテンプレート文字列を書いてプレビューを確認する

Last updated at Posted at 2023-03-30

例えばスプレッドシートからGoogle Apps Scriptでメールを送信するとき、メール文面を柔軟に変更できると便利です。そこで、テンプレート文字列をセルに直接記述し、そのプレビューを別のセルで確認できるようにしてみます。文面をスプレッドシート上で工夫できるようになります。

image.png

テンプレートの例

テンプレートとして、以下の文字列を準備します。変数nicknamedateを使っています。変数は{{}}で囲います。

ようこそ、{{nickname}}さん!
今日は{{date}}です!

スプレッドシートの準備

変数は、変数名と値を並べて書きます。
テンプレート文字列もセルに記述しておきます。

A B C
1 変数1 nickname ほげほげ
2 変数2 date =TEXT(TODAY(), "yyyy年m月d日")
3 テンプレート ようこそ、...
4 プレビュー (プレビューをここに表示)
  • セルB1に変数nicknameを、セルC1にその値としてほげほげと入力します。
  • セルB2に変数dateを、セルC2にその値として=TEXT(TODAY(), "yyyy年m月d日")と入力します。
  • セルB3にテンプレート文字列を記述します。
  • セルB4に、テンプレートに変数を適用した結果を表示します。

セルB4にはRENDER関数を入力します。引数は2つで、変数の領域B1:C2と、テンプレートのセル名C3です。ではRENDER関数を実装していきましょう。

RENDER関数の準備

スプレッドシートの上部メニュー 拡張機能 > Apps Script を選択し、スクリプトエディターを起動します。以下のコードを記述して保存します。

Code.gs
function RENDER(template, rows) {
  let result = template;
  rows.forEach(row => {
    const [ variable, value ] = row;
    result = result.replace(new RegExp('{{' + variable + '}}', 'g'), value);
  });
  return result;
}

スプレッドシートに戻り、セルC4RENDER関数を呼び出します。

A B C
4 結果 =RENDER(B1:C2, C3)

するとセルC4に以下のように表示されます。

ようこそ、ほげほげさん!
今日は2023年3月30日です!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0