テンプレート構文
変数とは、テンプレート内に置くプレースホルダーのことです。生成時に Lark Base のレコードの実データに置き換わります。
波かっこでフィールド名を正確に囲みます。
{Field_Name}例:
{Customer_Name}→ “Acme Corp”{Invoice_Date}→ “2024-01-15”{Total_Amount}→ “1,500.00”
対応するフィールド型
Section titled “対応するフィールド型”| 分類 | フィールド型 | 既定の出力 |
|---|---|---|
| テキスト | テキスト、メール、バーコードフィールド | そのまま |
| 数値 | 数値、通貨、進捗(%)、評価 | Lark の書式(例: $1,234.56) |
| 日付/時刻 | 日付、作成日時、更新日時 | Lark の書式(タイムゾーン設定に従う) |
| 選択 | 単一選択、複数選択 | テキスト / カンマ区切り |
| ユーザー | User、Created By、Modified By、Group | 表示名 |
| 連絡先 | 電話、URL | 電話番号 / リンク URL |
| チェックボックス | はい/いいえ | true / false |
| 添付ファイル | ファイルと画像 | 動的な画像を参照 |
| リンクレコード | 関連テーブルのデータを参照 | リンクレコードを参照 |
| ルックアップ | リンクレコードから取得した値 | 解決後の値 |
| 数式 | 計算フィールド(テキスト、数値、日付) | 結果の型による |
リンクレコード(ネストしたフィールド)
Section titled “リンクレコード(ネストしたフィールド)”ドット記法でリンクレコードのフィールドを参照できます。
{Customer.Name}{Customer.Address}{Customer.Email}ネストは5階層まで対応します。
{Order.Customer.Company.Address.City}フィールドの詳細プロパティ(ドット記法)
Section titled “フィールドの詳細プロパティ(ドット記法)”一部のフィールド型はドット記法でサブプロパティを参照できます。ドット記法を使わない場合は既定値が出力されます。
URL フィールド
Section titled “URL フィールド”{Website} → "https://example.com"(リンク先 URL){Website.text} → "Example Site"(リンクの表示文字列){Website.link} → "https://example.com"(リンク先 URL)User / Created By / Modified By
Section titled “User / Created By / Modified By”Created By と Modified By は単一のユーザーを保持するため、ドット記法がそのまま使えます。一方 User フィールドは 1 人しか入っていなくても常にリストなので、{Assignee.name} は何も返しません。インデックスかループを使ってください。
{Created_By} → "John Doe"{Created_By.name} → "John Doe"{Created_By.en_name} → "John Doe"(英語名){Created_By.id} → "ou_abc123"
{Assignee} → "John Doe, Jane Roe"(全員の名前をカンマ区切りで){Assignee[0].name} → "John Doe"{Assignee[0].en_name} → "John Doe"(英語名){Assignee[0].id} → "ou_abc123"(Lark ユーザー ID)複数ユーザーのフィールドではループを使います。
{#Assignee} {name} ({en_name}){/Assignee}位置情報フィールド
Section titled “位置情報フィールド”{Office} → "Headquarters, 123 Main St, City"{Office.name} → "Headquarters"{Office.full_address} → "123 Main St, City, Country"{Office.address} → "123 Main St"グループフィールド
Section titled “グループフィールド”グループフィールドもリストなので {Team.name} は何も返しません。インデックスかループを使ってください。
{Team} → "Engineering, Design"(グループ名をカンマ区切り){Team[0].name} → 最初のグループ名{Team[0].id} → 最初のグループ IDすべてのグループを出すにはループを使います。
{#Team} {name} (ID: {id}){/Team}複数選択フィールドはループで回すことも、任意の区切り文字で連結することもできます。
{Tags} → "Red, Blue, Green"(既定はカンマ区切り){Tags | join:" / "} → "Red / Blue / Green"{#Tags} - {.}{/Tags}数値・日付フィールド(フィルターによる上書き)
Section titled “数値・日付フィールド(フィルターによる上書き)”数値と日付/時刻のフィールドは、既定では Lark の書式で表示されます。フィルターを適用すると生の値(実際の数値や epoch タイムスタンプ)が使われ、Lark の書式は完全に上書きされます。
{Price} → "$1,234.50"(Lark の書式){Price | number:2} → "1,234.50"(生の数値を再フォーマット){Price | currency:"EUR":"de-DE"} → "1.234,50 €"(生の数値、ドイツ語ロケール)
{Date} → "2026/02/26"(Lark の書式){Date | date:"DD MMM YYYY"} → "26 Feb 2026"(生のタイムスタンプを再フォーマット)フィルターを付けない場合は、常に Lark 本来の書式のまま出力されます。
ループ(複数リンクのフィールド)
Section titled “ループ(複数リンクのフィールド)”複数のレコードにリンクするフィールドでは、ループ構文で項目ごとに内容を繰り返せます。
{#Line_Items} Product: {Product_Name} Quantity: {Quantity} Price: {Price}{/Line_Items}{#Field} でループを開始し、{/Field} で閉じます。ループ内では親フィールド名を付けずにフィールド名を書きます。
閉じタグの省略形
Section titled “閉じタグの省略形”フィールド名を繰り返す代わりに {/} を使えます。
{#Line_Items} {Product_Name} - {Price}{/}表の行の展開
Section titled “表の行の展開”ループタグを表の行の中に置くと、その行全体が項目ごとに複製されます。明細表に最適です。
| Product | Qty | Price |
|---|---|---|
{#Line_Items} {Product_Name} |
{Quantity} |
{Price} {/Line_Items} |
単純な値の配列
Section titled “単純な値の配列”オブジェクトではなく単純な値の配列では、{.} で現在の項目を参照します。
{#Tags} {.}{/Tags}ループのメタデータ
Section titled “ループのメタデータ”どのループの中でも、次の特別な変数が使えます。
| 変数 | 説明 | 例 |
|---|---|---|
{$index} |
現在のインデックス(0 から開始) | 0, 1, 2, … |
{$num} |
行番号(1 から開始) | 1, 2, 3, … |
{$first} |
最初の項目で true |
true / false を出力 |
{$last} |
最後の項目で true |
true / false を出力 |
ループの入れ子
Section titled “ループの入れ子”ループは入れ子にできます。内側のループから外側のスコープのフィールドも参照できます。
{#Departments} Department: {Name} {#Employees} {Name} works in {Department.Name} {/Employees}{/Departments}内側と外側に同じフィールド名がある場合は、内側が優先されます。
条件付きの内容
Section titled “条件付きの内容”フィールドの値に応じて内容を表示または非表示にします。
値があるかの判定
Section titled “値があるかの判定”フィールドに値があるときだけ表示します。
{#if Discount} Discount applied: {Discount}{/if}空かの判定(否定)
Section titled “空かの判定(否定)”フィールドが空のときだけ表示します。
{#if !Notes} No additional notes.{/if}{#if Status == "Approved"} This invoice has been approved.{/if}非等価の比較
Section titled “非等価の比較”{#if Status != "Draft"} This document has been submitted.{/if}フィルターはパイプ(|)構文で値の表示方法を変換します。
{Field | filterName}{Field | filterName:"arg1":"arg2"}フィルターは値を取得した後、ドキュメントに挿入する前に適用されます。フィルターを使わない場合は、Lark の既定の書式で表示されます。
文字列フィルター
Section titled “文字列フィルター”| フィルター | 説明 | 例 | 出力 |
|---|---|---|---|
upper |
大文字にする | {Name | upper} |
ACME CORP |
lower |
小文字にする | {Name | lower} |
acme corp |
capitalize |
各単語の先頭を大文字にする | {Name | capitalize} |
Acme Corp |
trim |
前後の空白を削除する | {Name | trim} |
Acme Corp |
truncate |
指定の長さで切り詰める(既定 50) | {Description | truncate:16} |
Lorem ipsum dolo... |
pad |
指定文字で桁を埋める(既定 0) |
{$num | pad:3} |
001 |
数値フィルター
Section titled “数値フィルター”数値フィルターはいずれも、地域に応じた書式のためのロケールを任意で指定できます。
| フィルター | 引数 | 例 | 出力 |
|---|---|---|---|
number |
小数桁数, ロケール | {Price | number:2} |
1,234.50 |
number |
小数桁数, ロケール | {Price | number:2:"de-DE"} |
1.234,50 |
currency |
通貨コード, ロケール | {Price | currency:"USD"} |
$1,234.50 |
currency |
通貨コード, ロケール | {Price | currency:"EUR":"de-DE"} |
1.234,50 € |
currency |
通貨コード, ロケール | {Price | currency:"JPY":"ja-JP"} |
¥1,235 |
percent |
小数桁数, ロケール | {Rate | percent:1} |
45.6% |
percent |
小数桁数, ロケール | {Rate | percent:1:"de-DE"} |
45,6 % |
日付フィルター
Section titled “日付フィルター”Lark の既定の書式が要件に合わないときは、独自のパターンで日付を整形できます。
構文: {Field | date:"format":"timezone":"locale"}
引数はすべて任意です。タイムゾーンの既定は UTC、ロケールの既定は en-US です。
| フィルター | 引数 | 例 | 出力 |
|---|---|---|---|
date |
書式, タイムゾーン, ロケール | {Date | date:"DD MMM YYYY"} |
26 Feb 2026 |
date |
書式, タイムゾーン, ロケール | {Date | date:"dddd, DD MMMM YYYY"} |
Thursday, 26 February 2026 |
date |
書式, タイムゾーン, ロケール | {Date | date:"DD MMMM YYYY":"UTC":"fr-FR"} |
26 février 2026 |
date |
書式, タイムゾーン, ロケール | {Date | date:"dddd, DD MMMM YYYY":"UTC":"de-DE"} |
Donnerstag, 26 Februar 2026 |
対応する日付トークン:
| トークン | 出力 | 例 |
|---|---|---|
YYYY |
4桁の年 | 2026 |
MMMM |
月の完全名(ロケール依存) | February, février, Februar |
MMM |
月の短縮名(ロケール依存) | Feb, fév, Feb |
MM |
2桁の月 | 02 |
dddd |
曜日の完全名(ロケール依存) | Thursday, Donnerstag, 木曜日 |
ddd |
曜日の短縮名(ロケール依存) | Thu, Do, 木 |
DD |
2桁の日 | 26 |
HH |
24時間表記の時 | 15 |
mm |
分 | 30 |
ss |
秒 | 00 |
例:
{Invoice_Date | date:"DD MMM YYYY"} → 26 Feb 2026{Invoice_Date | date:"YYYY-MM-DD"} → 2026-02-26{Invoice_Date | date:"MM/DD/YYYY"} → 02/26/2026{Invoice_Date | date:"DD/MM/YYYY":"Asia/Tokyo"} → 26/02/2026(東京タイムゾーン){Invoice_Date | date:"dddd, DD MMMM YYYY":"UTC":"ja-JP"} → 木曜日, 26 2月 2026{Invoice_Date | date:"DD MMMM YYYY":"UTC":"id-ID"} → 26 Februari 2026その他のフィルター
Section titled “その他のフィルター”| フィルター | 説明 | 例 | 出力 |
|---|---|---|---|
join |
配列の値を連結(既定 , ) |
{Tags | join:" / "} |
Red / Blue / Green |
default |
空のときの代替値 | {Phone | default:"N/A"} |
N/A |
フィルターの連結
Section titled “フィルターの連結”パイプを重ねることで、左から右の順にフィルターを連結できます。
{Name | trim | upper} → " hello " が "HELLO" になる{$num | pad:3} → 1 が "001" になる{Phone | default:"N/A" | upper} → null が "N/A" になるループ内でのフィルター
Section titled “ループ内でのフィルター”フィルターはループ変数や現在項目の参照にも使えます。
{#Items} #{$num | pad:3} - {Name | upper}{/Items}
{#Tags}{. | capitalize}, {/Tags}プレースホルダー画像を、Lark の添付ファイルフィールドの実際の画像に差し替えます。
- Word テンプレートに任意の画像を挿入します(これがプレースホルダーになります)。
- 画像を右クリック → 代替テキストの編集 を選びます。
- 代替テキストの説明に
{FieldName}と入力します。 - テンプレートを保存します。
プレースホルダー画像は添付ファイルフィールドの実際の画像に置き換わり、元のサイズが保たれます。
添付ファイルが複数あるフィールドでは、インデックス記法を使います。
{Photo} → 1枚目の画像({Photo[0]} と同じ){Photo[1]} → 2枚目の画像{Photo[2]} → 3枚目の画像すべての画像をループする
Section titled “すべての画像をループする”添付ファイルの数が可変の場合は、代替テキストに {.} を指定したループ構文を使います。添付ファイルごとにプレースホルダーが複製されます。
{#Product_Photos} [代替テキストが {.} の画像]{/Product_Photos}表の中では、添付ファイルごとに1行が割り当てられます。
| # | Photo | Filename |
|---|---|---|
{#Product_Photos} {$num} |
画像の代替テキスト: {.} |
{name} {/Product_Photos} |
ループ内で使えるプロパティ:
| 変数 | 説明 | 例 |
|---|---|---|
{name} |
ファイル名 | photo1.jpg |
{type} |
MIME タイプ | image/jpeg |
{size} |
ファイルサイズ(バイト) | 204800 |
リンクレコードのループ内の画像
Section titled “リンクレコードのループ内の画像”画像プレースホルダーはループブロックの中でも動作します。繰り返しごとに、その項目に対応する画像が解決されます。
{#Employees} Name: {Name} Photo: [代替テキストが {Photo} の画像]{/Employees}QR コードとバーコード
Section titled “QR コードとバーコード”フィールドの値から QR コードやバーコードを生成します。設定方法は動的な画像と同じで、画像の代替テキストを使います。
QR コード
Section titled “QR コード”{QR:FieldName}例: {QR:Order_ID} は Order_ID の値を含む QR コードを生成します。
| 構文 | 種類 | 備考 |
|---|---|---|
{BARCODE:FieldName} |
Code128 | 既定。英数字に対応 |
{BARCODE128:FieldName} |
Code128 | Code128 を明示 |
{BARCODE39:FieldName} |
Code39 | 大文字と数字のみ |
{BARCODEEAN13:FieldName} |
EAN-13 | 13桁の小売商品コード |
{BARCODEEAN8:FieldName} |
EAN-8 | 8桁の短縮 EAN |
{BARCODEUPCA:FieldName} |
UPC-A | 12桁の北米小売コード |
{BARCODEUPCE:FieldName} |
UPC-E | 圧縮版 UPC |
{BARCODEITF14:FieldName} |
ITF-14 | 出荷・ケース用コード |
{BARCODEDATAMATRIX:FieldName} |
DataMatrix | 2次元、高密度 |
{BARCODEPDF417:FieldName} |
PDF417 | 2次元、積層型リニア |
接頭辞は大文字と小文字を区別しません。{qr:Field} と {QR:Field} はどちらも動作します。
ヘッダーとフッター
Section titled “ヘッダーとフッター”すべてのプレースホルダー構文は、本文と同じようにヘッダーとフッターでも使えます。
よくある使い方:
- ヘッダーに会社名やロゴ
- フッターに文書番号や日付
Invoice for {Customer_Name}のような動的なラベル
追加方法: 挿入 → ヘッダー/フッター → 編集 で {Field_Name} のようなプレースホルダーを入力します。
クイックリファレンス
Section titled “クイックリファレンス”| 構文 | 説明 |
|---|---|
{Field} |
通常の変数 |
{Field.Nested} |
リンクレコードのフィールド(ドット記法) |
{URL.text} / {URL.link} |
URL のサブプロパティ |
{Created_By.name} / {Assignee[0].name} |
ユーザーのサブプロパティ |
{Location.name} / {Location.full_address} |
位置情報のサブプロパティ |
{Team[0].name} / {Team[0].id} |
グループのサブプロパティ |
{#Field}...{/Field} |
複数値フィールドのループ |
{/} |
閉じタグの省略形(直近のループを閉じる) |
{.} |
ループ内の現在項目(単純な配列向け) |
{$index} |
ループのインデックス(0 起点) |
{$num} |
行番号(1 起点) |
{$first} / {$last} |
最初/最後の項目かどうか |
{#if Field}...{/if} |
条件(値がある) |
{#if !Field}...{/if} |
条件(空) |
{#if Field == "val"}...{/if} |
条件(等しい) |
{#if Field != "val"}...{/if} |
条件(等しくない) |
{Field | upper} |
フィルター: 大文字 |
{Field | lower} |
フィルター: 小文字 |
{Field | capitalize} |
フィルター: 単語の先頭を大文字 |
{Field | trim} |
フィルター: 空白を削除 |
{Field | truncate:30} |
フィルター: 省略記号付きで切り詰め |
{Field | pad:3} |
フィルター: ゼロ埋め |
{Field | number:2} |
フィルター: 小数桁数付きの数値 |
{Field | number:2:"de-DE"} |
フィルター: ロケール対応の数値 |
{Field | currency:"USD"} |
フィルター: 通貨書式 |
{Field | currency:"EUR":"de-DE"} |
フィルター: ロケール対応の通貨 |
{Field | percent:1} |
フィルター: パーセント |
{Field | date:"DD MMM YYYY"} |
フィルター: 独自の日付書式 |
{Field | date:"dddd, MMMM DD":"UTC":"fr-FR"} |
フィルター: ロケール対応の日付 |
{Field | join:" / "} |
フィルター: 区切り文字で配列を連結 |
{Field | default:"N/A"} |
フィルター: 代替値 |
{Field | trim | upper} |
フィルターの連結(左から右) |
{Photo} / {Photo[1]} |
画像(代替テキスト経由) |
{QR:Field} |
QR コード(代替テキスト経由) |
{BARCODE:Field} |
バーコード(代替テキスト経由) |