Microsoft Word 今日のトリビア Wordのフィールドコードの書式設定スイッチはすべて同じではない

# コンマ付き小数2桁
## 式(Formula）フィールド
Formulaフィールドは半角のイコールから始めます。

```
{ =1900.22 \#"0,.00" }
```

Webでは左上から右下へのスラッシュですが、日本語版のWordでは円記号(&yen;)になります。
実際の入力はF9を押してこのような感じになります。
{ =1900.22 &yen;#"0,.00" } 

という感じです。
### 結果
日本語版のWordでは
1,900.22と表示されます。

#### 補足 EQは別
[EQフィールド](https://support.microsoft.com/ja-jp/office/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89-%E3%82%B3%E3%83%BC%E3%83%89-eq-%E6%95%B0%E5%BC%8F-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89-27300091-3780-4b88-836f-ae49ecde4692)は数式の表示になります。

#### 補足2 同様の効果はQuoteフィールド
Quoteフィールドでも同じ書式スイッチが使える。

{ Qutote "1900.22" \#"0,.00" }

## 差し込み印刷Mergefield
[Mergefiled](https://support.microsoft.com/ja-jp/office/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89-%E3%82%B3%E3%83%BC%E3%83%89-mergefield-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89-7a6d24a1-68a6-4b05-8359-1dc087daf4e6)は差し込み印刷以外使えなさそうですが、日付や数字の書式を設定するのに重宝します。

{ Mergefield "1900.22" \#"0,.00" }
{ Mergefield 1900.22 \#"0,.00" }

### 意図しない結果
この結果はどうなるでしょうか？
答えは
0.22になります。

## 考えられる原因
 1. フィールドコードの書式設定スイッチが固有。（というか公式で書いてあるのはこういったことを指していると思われる）
 2. Mergefieldに今入れているのはフィールドの値ではなくフィールド名として解釈されている。
 3. 実際のフィールドの値以外は文字列として解釈している。

### 実際に値を挿入するときのMergefieldの書式スイッチ
{ MERGEFIELD FieldName &Yen;#"0,.00" }

値を差し込んでいる状態のときは書式スイッチが正常に作動します。
{ MERGEFIELD FieldName &Yen;#"#,##0.00" }
こちらもExcelと同じものになりますが、作動します。しかしこのExcelと同じ書式はQuote には効果がありません。意図しない結果になります。

##数字も日付も使えるのはQuote
差し込みではない日付の書式指定、数値の書式指定はQuoteが両方できます。

{ Quote "2022/5/10 21:00:00" \@"ggge年M月d日(aaa) H:mm"}

:::note
カッコやコロンは全角で書くと全角になります。つまり数字だけ半角ということが可能です。
:::

{ Quote "1900.22" \#"0,.00"}
もちろんこちらも有効です。
こうしたどちらも有効なフィールドコードはQUOTEの他FILESIZEもそうです。またREFフィールドもそうです。

:::note
前述のように{ QUOTE FieldName &Yen;#"#,##0.00" }はエラーです。
:::

### だからといってQuoteでMergefieldを変換することはできない
#### 単純に値だけ書いたMergeFieldはQuoteで書式設定できない
{ Quote { Mergefield "1900.55" } \#"0,.00"}
こういうのはエラーになります。
#### Quoteは差し込みの値は変換できます。
{ Quote { Mergefield FieldName } \#"0,.00"}
このようにして入ってきた値が1900.55であれば
1,900.55
と表示されます。
一見どうでもいいようですが、次でこれを使います。

ExcelのTEXT関数。VBAのFormat関数のようにいきません。
#### 一旦書式を設定すると、その値が参照される
また、差込時に小数点をカットします
{ Mergefield <I>Field.value</I> \#"0,"}
1901になります。
これに[ブックマーク](https://support.microsoft.com/ja-jp/office/word-%E6%96%87%E6%9B%B8%E3%81%BE%E3%81%9F%E3%81%AF-outlook-%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%AB%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%BE%E3%81%9F%E3%81%AF%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B-f68d781f-0150-4583-a90e-a4009d99c2a0)をつけて、REFで参照したときに
{Ref bookmmark &yen;#"#,##0.00"}
としても値は1900.55ではなく1901.00となります。
つまりMegefieldで書式設定をして端数を消すと、以後、もとの値ではなく、書式設定後の値が参照されています。
それではどうするか。ここで前述のQuoteに更にブックマークを使います。
{ Quote <b>{ Mergefield FieldName }</b> \#"0,"}
このようにMeregeFieldに[ブックマーク](https://support.microsoft.com/ja-jp/office/word-%E6%96%87%E6%9B%B8%E3%81%BE%E3%81%9F%E3%81%AF-outlook-%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%AB%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%BE%E3%81%9F%E3%81%AF%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B-f68d781f-0150-4583-a90e-a4009d99c2a0)を挿入します。
これを{ Ref bookmark } とすると表示された値ではなく、もとの値を参照して書式設定することができます。


#まとめ
各フィールドの固有スイッチは他のフィールドでは無効な場合がある。
Wordで数値、日付で書式設定を使うときはQuoteを使うのが最も汎用性が高い。
数値はFormula フィールドは有効だが、日付は有効ではない。
数値の書式指定はMergefieldでは差し込まれた値には有効に作用するが、ラベル名のテキストは失敗する。
FILESIZE REFでも固有のスィッチが効く。

# 参考
[Word でフィールドを挿入、編集、表示する](https://support.microsoft.com/ja-jp/office/word-%E3%81%A7%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E6%8C%BF%E5%85%A5-%E7%B7%A8%E9%9B%86-%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B-c429bbb0-8669-48a7-bd24-bab6ba6b06bb)
[Word のフィールド コード一覧](https://support.microsoft.com/ja-jp/office/word-%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89-%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7-1ad6d91a-55a7-4a8d-b535-cf7888659a51)
[フィールドの結果を書式設定する](https://support.microsoft.com/ja-jp/office/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E7%B5%90%E6%9E%9C%E3%82%92%E6%9B%B8%E5%BC%8F%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B-baa61f5a-5636-4f11-ab4f-6c36ae43508c#ID0EBBD=%E6%95%B0%E5%80%A4%E6%9B%B8%E5%BC%8F%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81_(\#))
[Word 文書または Outlook メッセージにブックマークを追加または削除する](https://support.microsoft.com/ja-jp/office/word-%E6%96%87%E6%9B%B8%E3%81%BE%E3%81%9F%E3%81%AF-outlook-%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%AB%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%BE%E3%81%9F%E3%81%AF%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B-f68d781f-0150-4583-a90e-a4009d99c2a0)
[【Word】差し込み印刷のカンマ、桁数、日付時刻、パーセントの表示形式の設定と変更 - わえなび](https://www.waenavi.com/entry/20191110/1573341895)