MS Word2011,2013の「ドキュメントのプロパティ」>「ユーザー設定」についてのメモ

Wordでは「ドキュメントのプロパティ」を本文中で参照することが可能であり(多くの場合「クイックパーツ」から貼り付けられる),また,独自のプロパティをユーザーが設定することも可能である。
これを上手く使えば Don't Repeat Again な文書作成も可能となるはずだ。


よく知られているように.docxファイルはXML等をZIPで固めたものなので,unzipすれば中身を確認できる。
そして,パッと見た感じ,ユーザー設定のプロパティは THE_DOC.docx/docProps/custom.xml に記録されている。
例えばこんな風に。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
  <property fmtid="{00000000-0000-0000-0000-000000000000}" pid="2" name="ひづけ(Mac)">
    <vt:lpwstr>00002010/05/21</vt:lpwstr>
  </property>
  <property fmtid="{00000000-0000-0000-0000-000000000000}" pid="2" name="ひづけ(Win)">
    <vt:filetime>2010-05-20T15:00:00Z</vt:filetime>
  </property>
  <property fmtid="{00000000-0000-0000-0000-000000000000}" pid="4" name="てきすと">
    <vt:lpwstr>てきすとの値</vt:lpwstr>
  </property>
  <property fmtid="{00000000-0000-0000-0000-000000000000}" pid="5" name="すうち">
    <vt:i4>11922960</vt:i4>
  </property>
  <property fmtid="{00000000-0000-0000-0000-000000000000}" pid="6" name="うむ">
    <vt:bool>true</vt:bool>
  </property>
</Properties>

プロパティは「日付」「テキスト」「数値」「有無」の4種類から選ぶことができる。
プロパティには共通のFMTIDなるものが振られていて(上の例では念のため全て0に置き換えた),これはプロパティセットフォーマット…を識別するための、GUID (型/構造体リファレンス - GUID,CLSID,IID,FMTID,CATID)らしいけどよく分からない。


さて,上のプロパティリストの「ひづけ(Mac)」と「ひづけ(Win)」は,同じファイルをそれぞれ Word2011 (Mac) と Word2013 (Win) で保存した場合に記録されたプロパティの値である。
Macでは lpwstr タグ内で,0000yyyy/mm/ddという書式の値が振られ,Winでは filetime タグ内で ISO 8061形式の日付が振られている(2010-05-20T15:00:00Z(世界標準時)は2010-05-21T00:00:00+09:00(日本標準時)と等しいので,両者は要するに同じ日を指している。)。
(テキスト,数値,有無については面倒なので,タグの違いは確認しなかった。)


実は,Word2011で日付形式のプロパティを追加しようとしたところ,ISO8061形式であると0000yyyy/mm/dd書式であるとに関わらず,入力した値は指定された種類ではありません。値はテキストとして保存されます。というエラーメッセージが出てしまい,日付のプロパティを設定できなかった。
ちょっとよく分からない。