コンテンツにスキップ

テンプレート構文

変数とは、テンプレート内に置くプレースホルダーのことです。生成時に Lark Base のレコードの実データに置き換わります。

波かっこでフィールド名を正確に囲みます。

{Field_Name}

例:

  • {Customer_Name} → “Acme Corp”
  • {Invoice_Date} → “2024-01-15”
  • {Total_Amount} → “1,500.00”
分類 フィールド型 既定の出力
テキスト テキスト、メール、バーコードフィールド そのまま
数値 数値、通貨、進捗(%)、評価 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 “フィールドの詳細プロパティ(ドット記法)”

一部のフィールド型はドット記法でサブプロパティを参照できます。ドット記法を使わない場合は既定値が出力されます。

{Website} → "https://example.com"(リンク先 URL)
{Website.text} → "Example Site"(リンクの表示文字列)
{Website.link} → "https://example.com"(リンク先 URL)

Created ByModified 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}
{Office} → "Headquarters, 123 Main St, City"
{Office.name} → "Headquarters"
{Office.full_address} → "123 Main St, City, Country"
{Office.address} → "123 Main St"

グループフィールドもリストなので {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} で閉じます。ループ内では親フィールド名を付けずにフィールド名を書きます。

フィールド名を繰り返す代わりに {/} を使えます。

{#Line_Items}
{Product_Name} - {Price}
{/}

ループタグを表の行の中に置くと、その行全体が項目ごとに複製されます。明細表に最適です。

Product Qty Price
{#Line_Items} {Product_Name} {Quantity} {Price} {/Line_Items}

オブジェクトではなく単純な値の配列では、{.} で現在の項目を参照します。

{#Tags}
{.}
{/Tags}

どのループの中でも、次の特別な変数が使えます。

変数 説明
{$index} 現在のインデックス(0 から開始) 0, 1, 2, …
{$num} 行番号(1 から開始) 1, 2, 3, …
{$first} 最初の項目で true true / false を出力
{$last} 最後の項目で true true / false を出力

ループは入れ子にできます。内側のループから外側のスコープのフィールドも参照できます。

{#Departments}
Department: {Name}
{#Employees}
{Name} works in {Department.Name}
{/Employees}
{/Departments}

内側と外側に同じフィールド名がある場合は、内側が優先されます。

フィールドの値に応じて内容を表示または非表示にします。

フィールドに値があるときだけ表示します。

{#if Discount}
Discount applied: {Discount}
{/if}

フィールドが空のときだけ表示します。

{#if !Notes}
No additional notes.
{/if}
{#if Status == "Approved"}
This invoice has been approved.
{/if}
{#if Status != "Draft"}
This document has been submitted.
{/if}

フィルターはパイプ(|)構文で値の表示方法を変換します。

{Field | filterName}
{Field | filterName:"arg1":"arg2"}

フィルターは値を取得した、ドキュメントに挿入するに適用されます。フィルターを使わない場合は、Lark の既定の書式で表示されます。

フィルター 説明 出力
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

数値フィルターはいずれも、地域に応じた書式のためのロケールを任意で指定できます。

フィルター 引数 出力
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 %

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
フィルター 説明 出力
join 配列の値を連結(既定 , {Tags | join:" / "} Red / Blue / Green
default 空のときの代替値 {Phone | default:"N/A"} N/A

パイプを重ねることで、左から右の順にフィルターを連結できます。

{Name | trim | upper} → " hello " が "HELLO" になる
{$num | pad:3} → 1 が "001" になる
{Phone | default:"N/A" | upper} → null が "N/A" になる

フィルターはループ変数や現在項目の参照にも使えます。

{#Items}
#{$num | pad:3} - {Name | upper}
{/Items}
{#Tags}{. | capitalize}, {/Tags}

プレースホルダー画像を、Lark の添付ファイルフィールドの実際の画像に差し替えます。

  1. Word テンプレートに任意の画像を挿入します(これがプレースホルダーになります)。
  2. 画像を右クリック → 代替テキストの編集 を選びます。
  3. 代替テキストの説明に {FieldName} と入力します。
  4. テンプレートを保存します。

プレースホルダー画像は添付ファイルフィールドの実際の画像に置き換わり、元のサイズが保たれます。

添付ファイルが複数あるフィールドでは、インデックス記法を使います。

{Photo} → 1枚目の画像({Photo[0]} と同じ)
{Photo[1]} → 2枚目の画像
{Photo[2]} → 3枚目の画像

添付ファイルの数が可変の場合は、代替テキストに {.} を指定したループ構文を使います。添付ファイルごとにプレースホルダーが複製されます。

{#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 コードやバーコードを生成します。設定方法は動的な画像と同じで、画像の代替テキストを使います。

{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} はどちらも動作します。

すべてのプレースホルダー構文は、本文と同じようにヘッダーとフッターでも使えます。

よくある使い方:

  • ヘッダーに会社名やロゴ
  • フッターに文書番号や日付
  • Invoice for {Customer_Name} のような動的なラベル

追加方法: 挿入 → ヘッダー/フッター → 編集{Field_Name} のようなプレースホルダーを入力します。

構文 説明
{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} バーコード(代替テキスト経由)