第3章 WordprocessingML

フィールド

現在日時やページ番号など固定的でない内容を記述したいことがあるでしょう。WordprocessingMLでは、プレースホルダーを用意し、値を参照で取得することで内容を動的に変更できます。WordprocessingMLにおけるプレースホルダーとそこに挿入されるテキストの書式などは、フィールドという呼び方でまとめられています。

単純なフィールド(Simple field)はfldSimple要素で記述します。

複雑なフィールド(Complex Field)はfldChar要素で記述します。フィールドを入れ子にできます。フィールド内で文字色の変更や、部分的な下線を引くケースなどが想定されています。

アプリケーションで開いたときに文書上で実際に表示される値は、これらフィールド要素の子孫で記述します。

フィールドコード

フィールドはフィールドの領域そのものを示す記述のほか、入力された内容の表示方法を指定する書式を含みます。フィールドの書式をフィールドコードと呼びます。

単純なフィールドでは、フィールドコードはinstr属性に記述します。

fldChar要素はr要素の子要素として使われます。fldChar要素はfldCharTypeという属性を持ち、属性値には“begin”、“separate”、“end”のいずれかを指定します。<w:fldChar w:fldCharType="begin"/>から<w:fldChar w:fldCharType="separate"/>までがフィールドコードのエリアです。フィールドコードはinstrText要素に格納されます。

ページ番号を挿入した場合の例
ページ番号を挿入した場合の例
r要素の内容
<w:r w:rsidRPr="00A77BB8">
    <w:rPr>
    (省略)
    </w:rPr>
    <w:fldChar w:fldCharType="begin"/>

</w:r>
<w:r w:rsidRPr="00A77BB8">
  <w:rPr>
    (省略)
  </w:rPr>
  <w:instrText xml:space="preserve"> PAGE    \* MERGEFORMAT </w:instrText>
</w:r>
<w:r w:rsidRPr="00A77BB8">
  <w:rPr>
    (省略)
  </w:rPr>
  <w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r w:rsidRPr="00A77BB8">
  <w:rPr>
    (省略)
  </w:rPr>
  <w:t>1</w:t>
</w:r>
<w:r w:rsidRPr="00A77BB8">
  <w:rPr>
    (省略)
  </w:rPr>
  <w:fldChar w:fldCharType="end"/>
</w:r>

フィールドコードのエリアは<w:fldChar w:fldCharType="separate"/>で区切られますが、この後に記述されたr要素の<w:t>1</w:t>はフィールドコード(ページ番号表示)を適用した場合の結果(ページ番号)です。

Mail Merge

WordprocessingMLには、宛名など、データの一部を変更した文書を作成する「差し込み」(Mail Merge)のための機能が用意されています。

差し込み機能はフィールドを利用しています。

WordprocessingMLでの差し込み操作の概要としては次の通りです。

  1. 差し込むデータを用意する。
  2. データを後から挿入するためのプレースホルダーを作成する。
  3. プレースホルダーとデータの関連付けを行う。
Wordの「差し込み文書」タブ
Wordの「差し込み文書」タブ

CSVやデータベースなど、挿入するデータの形式に制約はありません。しかしその形式から情報を抽出する方法にアプリケーションが対応している必要があります。

Word 2019の「差し込み文書」「あいさつ文」

「差し込み文書」タブの「あいさつ文」は、差し込みデータがある場合には差し込み機能を利用し氏名などを補ったあいさつ文が利用できますが、氏名などのない箇所は、フィールドではなく通常のテキストが挿入されます。