Wordで数値や日付のデータの差し込み印刷をすると表示が元のデータと異なることがあります。「Wordの動きがおかしい??」と思ってしまいますが、実はそうではなくて差し込み印刷の正常な動作です。
Wordの差し込みフィールドの表示形式(書式)を変更するには、原則として「フィールドコード」を設定する必要があります。カンマ桁区切り、円マーク、小数点以下の表示桁数のほか、日付を「yyyy年m月d日」の形式にしたり、パーセントの表示形式にしたりするときもフィールドコードを変更します。
そこで、今回は、差し込みフィールドの表示、設定と変更方法について出題します。なお、ExcelのデータをWordに差し込む方法についての基本的な説明は省略します(参考:【差し込み印刷】Excelの表をWord文書に差し込む練習問題)。
目次
なお、文中の円マーク(¥)はすべて半角にしてください。フィールドコード(スイッチ)はすべて半角です。
- 1.フィールドコード
- 2.カンマ桁区切り
- 3.元データにカンマが無くてもつけられる
- 4.表示形式を文字列にして差し込む
- 5.数値書式スイッチ
- 6.小数の表示がおかしい件
- 7.パーセントの表示
- 8.日付時刻表示形式スイッチ
1.フィールドコード
問題
メイン文書に差し込みフィールドを挿入したところ次のような表示になった。これは何か述べなさい。
解説
差し込みフィールドの挿入で、フィールドを挿入すると中カッコ{ }の表示になることがあります。
このような表示を「フィールドコード」といいます。
フィールドコードは、ページ番号や目次、差し込みフィールドのように自動的にデータが変わる部分を表します。ページ番号や目次、差し込みフィールドには裏でこのようなコードが保存されています。
フィールドコードが表示された場合は、[Alt]キー+[F9]キーで元に戻すことができます。[Alt]キー+[F9]キーで表示の切り替えをすることができます。
[Alt]キー+[F9]キーでフィールドコードを表示することができますが、通常、フィールドコードを編集することはありませんので、表示しないようにします。
2.カンマ桁区切り
問題
Excelで数値を入力し、A列だけカンマ桁区切りの設定をした。
次のWord文書に差し込み印刷(レター)の設定をして、差し込みフィールド「カンマあり(A列)」を挿入した。
しかし、結果のプレビューをするとカンマ桁区切りにならなかった。カンマ桁区切りにならない理由を述べなさい。また、差し込みフィールドをカンマ桁区切りにしなさい。
解説
(1)なぜカンマがつかないのか
Excelはカンマで区切られています。
Wordで、カンマのある列を差し込みます。
しかし、カンマが付きません。
差し込みのときにメイン文書が取得するのはデータソースの値のみであって、データソースの書式は取得しません。
Excelのカンマ桁区切りのような表示形式は書式の一つであり、データソースであるExcelに表示形式(書式)を設定しても、メイン文書が取得しないので反映されません。Excelで設定した表示形式が、Wordに反映されないのは、差し込みの時にデータソースの書式が無視されるからです。
いっぱんに外部のファイル(Excelに限らない)からデータを取得するときや、2つの文書の間でデータのやり取りをするときは、原則として、書式の無いデータのみをやり取りするべきです。
書式やフィルタなど、値以外の情報を取得しようとしてはいけません(技術的に可能であってもやってはいけない)。
Wordには、Word独自の書式(スタイル)があるので、Wordで書式を設定すべきです。 メイン文書でカンマ桁区切りにするためには、メイン文書のほうで改めてカンマ桁区切りの設定をしなければなりません。
(2)スイッチ
Wordで表示形式を設定するときはフィールドコードを編集します。ALTキー+F9キーでフィールドコードを表示します。
「{ MERGEFIELD 項目名 }」となります。項目名の直後に、半角でスペースを入力して、さらに「¥# 0,」(円マーク・シャープ・半角スペース・ゼロ・カンマ)と入力します。
Wordの差し込みフィールドに表示形式を設定するには、フィールドコードに書式を表す記号を追記します。これを「スイッチ(Switch)」といいます。MERGEFIELD、項目名の後にスペースを入れて「¥#」(円マーク・シャープ)を入力します。これが数値書式を設定するスイッチです。さらにスペースを入れて、書式の記号を入力します。
「0」が小数点以下四捨五入の整数値、「カンマ」がカンマ桁区切りを表します。これによって、カンマ桁区切りの整数値になります。
結果のプレビューをします。フィールドコードのままです。フィールドコードを表示したままでは結果のプレビューはできませんので、注意が必要です。
[Alt]+[F9]を押すと、結果が表示されます。カンマ区切りにならない場合は[F9]キーでフィールドの更新をします。カンマ区切りになります。
ちなみに、整数値を表すゼロ(0)と桁区切りを表すカンマ(,)は逆でもよいです。
3.元データにカンマが無くてもつけられる
問題
カンマの無い数値を差し込んで、カンマ桁区切りの表示にしなさい。また、カンマ区切りの表示をなくしなさい。
解説
カンマの無いフィールドを挿入します。
フィールドコードの表示にします。
スペースを入力して、そのあとにスイッチを記述します。「¥# 0,」(円マーク・シャープ・半角スペース・ゼロ・カンマ)です。
[Alt]+[F9]を押します。
結果のプレビューをします。カンマ区切りにならない場合は[F9]キーでフィールドの更新をします。カンマ区切りになります。
Excelでカンマが無くても、Wordでカンマを付けることは可能です。
もう一度、フィールドコードの表示にします。
スイッチの部分を削除します。
カンマをなくすことも可能です。カンマがなくならない場合は[F9]キーでフィールドの更新をします(以下、省略)。
4.表示形式を文字列にして差し込む
問題
データソースであるExcelファイルでカンマ桁区切りにしても、メイン文書ではカンマ桁区切りにならない。カンマを「文字列」として入力した場合はどうか。
解説
カンマ桁区切りは表示形式であり、書式なので、メイン文書で取得しません。
そこで、表示形式を文字列にしてから、カンマのある数値を入力したとします。
メイン文書でこれを差し込みます。
カンマが表示されます。書式のスイッチを使わなくてもカンマ桁区切りになります。
通常は、データである-1500に、書式であるカンマが合わさって、カンマ桁区切りの数値が表示されます。したがって、差し込みの時にカンマが付きません。
表示形式を文字列にして入力したデータは、入力したものがデータとして保存されるため、差し込みの時にもそのまま取得されます。
ここで、Excel関数であるTEXT関数を使って、カンマを文字列に置換してみましょう(参考:【Excel】TEXT関数で数値を文字列に変換するときの注意点と練習問題)。
- =TEXT(対象のセル,"表示形式の書式記号")
TEXT関数を入力します。このような数式です。
- =TEXT(A2,"#,##0")
これをメイン文書に差し込みます。
カンマが表示されます。
TEXT関数は、文字列として表示形式をデータに含める関数です。このときカンマ桁区切りのカンマもデータに含まれます。
5.数値書式スイッチ
(1)通貨表示
問題
Excelで次の数値を入力し、A~C列にそれぞれ表示形式の設定をした。A~C列は同じ数値であるが表示形式が異なるだけである。
Wordで次の表を入力して差し込み印刷(レター)の設定をし、差し込みフィールドを挿入した。
1つ目と4つ目をカンマ桁区切りにしなさい。また、2つ目と3つ目を円記号のある通貨表示にしなさい。
解説
差し込み印刷のメイン文書が、データソースから取得するのはデータだけであって、カンマや通貨表示のような書式は取得しません。
フィールドコードの表示にします。
スペースを入力して、そのあとにスイッチを記述します。「¥# 0,」(円マーク・シャープ・半角スペース・ゼロ・カンマ)です。
フィールドコードの表示を解除して、結果のプレビューをします。
差し込みフィールドでカンマ桁区切りにするには「¥# 0,」(円マーク・シャープ・半角スペース・ゼロ・カンマ)というスイッチを記述します。このうち、円マークとシャープの組み合わせを「数値書式スイッチ(Numeric Picture Switch)」といいます。
Excelで通貨の表示であっても、Wordで通貨の記号を消しカンマ桁区切りだけにすることも可能です。
フィールドコードの表示にします。
スペースを入力して、そのあとにスイッチを記述します。「¥# ¥¥0,」(円マーク・シャープ・半角スペース・円マーク・円マーク・ゼロ・カンマ)です。
通貨の表示になります。
円マークを表示するには、円マークを2つ入力します。
なお、Wordの表示形式のスイッチの記述の仕方と、Excelの表示形式の書式記号は異なることに注意します。
(2)小数点以下の表示桁数
問題
さらに、差し込みフィールドを挿入した。それぞれ、小数第2位まで、小数第2位までのカンマ桁区切り、小数第2位までの通貨表示にしなさい。
解説
小数第2位の表示にするには「.00」(ドット・ゼロ・ゼロ)と入力します。ドットが小数点表示を表し、0の数が表示する桁数を表します。
フィールドコードの表示にします。
「¥# 0.00」(円マーク・シャープ・半角スペース・0.00)です。
「¥# 0,.00」(円マーク・シャープ・半角スペース・ゼロ・カンマ・ドット・00)です。
「¥# ¥¥0,.00」(円マーク・シャープ・半角スペース・円マーク・円マーク・ゼロ・カンマ・ドット・00)です。
これで完成です。
6.小数の表示がおかしい件
問題
「小数2」には計算式が入力され、小数第3位までの表示となっている。
また、小数3は単なる小数を直接入力した。「小数2」「小数3」のフィールドを挿入し、小数第3位までの表示にしなさい。
解説
「小数2」「小数3」のフィールドを挿入します。
結果のプレビューをします。
Excelで小数点以下の桁数を指定していたとしても、Wordであたらめて小数の書式を設定しなければなりません。
フィールドコードの表示にします。
「¥# 0.000」(円マーク・シャープ・半角スペース・0.000)です。
これで完成です。
なぜか、小数3の表示がおかしいです。Excelに直接「-0.15」と入力しているにもかかわらず、Wordに差し込むと-0.1499999999999999になってしまいます。Excelで単なる小数のように見える数値も、Wordで差し込みをすると無限小数の表示になることがあります。
これは、Excelの2進数の計算誤差によるものです。分数にした時に分母が2、4、8、16、・・・などの2の累乗で表されない小数は、計算上の誤差が発生します。Wordは誤差が発生したままのデータを取り込むため、このような表示になってしまいます。
Excelの画面上、割り切れている小数であっても、フィールドコードを表示し、スイッチを入力します。
小数の値を差し込む場合は、Excelで割り切れているか否かにかかわらず、かならず数値書式スイッチを用いて小数点以下の桁数を指定しなければなりません。
7.パーセントの表示
問題
Excelでパーセンテージを入力し、小数第1位までの表示にした。
Wordで差し込み印刷(レター)の設定をし、差し込みフィールドを挿入しなさい。また、小数第1位までのパーセントの表示形式にしなさい。
解説
差し込み印刷の開始で、レターを選びます。
宛先の選択、既存のリストを使用で、Excelファイルを選びます。
差し込みフィールドを挿入します。
結果のプレビューにすると、小数になります。しかも、10%=1/10なので誤差も発生します。
Excelではパーセントの表示形式になっていますが、差し込み印刷のメイン文書には反映されず、小数になります。
フィールドコードの表示にします。
「MERGEFIELD」の先頭にイコールを入力します。
「MERGEFIELD パーセンテージ」を選択します。
[Ctrl]キーを押しながら[F9]を押すと中カッコ{ }が入力されます。中カッコ{ }は[Ctrl]+[F9]で入力します。
100倍します。
スペースを入力して、そのあとにスイッチを記述します。「¥# 0.0%」(円マーク・シャープ・半角スペース・0.0%)です。
フィールドコードの表示を解除して、結果のプレビューをします。これで完成です。
8.日付時刻表示形式スイッチ
問題
Excelで日付と時刻を入力した。
Wordで次の表を入力して差し込み印刷(レター)の設定をし、差し込みフィールドを挿入した。それぞれ、「yyyy/MM/dd」「yyyy年M月d日(aaa)」「H:mm」の表示にしなさい。
解説
結果のプレビューをします。日付は「MM/dd/yyyy」、時刻は「hh:mm:dd AM/PM」の表示になります。
結果のプレビューを解除します。
差し込み印刷のソースで表示形式を設定しても、メイン文書には反映されません。そして、Wordで自動的に日付と時刻の表示形式が設定されます。WordとExcelの表示形式(デフォルト)が異なります。
フィールドコードの表示にします。
スペースを入力して、そのあとにスイッチを記述します。「¥@ yyyy/MM/dd」(円マーク・アットマーク・半角スペース・yyyy/MM/dd)です。
フィールドコードの表示を解除して、結果のプレビューをします。
差し込みフィールドで日付の表示形式を設定するには「¥@」(円マーク・アットマーク)というスイッチを記述します。これを「日付/時刻表示形式スイッチ(Date-Time Picture Switch)」といいます。
月を表すMは大文字にしなければなりません。
フィールドコードの表示にします。
スペースを入力して、そのあとにスイッチを記述します。「¥@ yyyy年M月d日(aaa)」(円マーク・アットマーク・半角スペース・yyyy年M月d日(aaa))です。
西暦の日付と曜日になります。
フィールドコードの表示にします。
スペースを入力して、そのあとにスイッチを記述します。「¥@ H:mm」(円マーク・シャープ・半角スペース・H:mm)です。時刻になります。
差し込みフィールドで時刻の表示形式を設定するときも「¥@」(円マーク・アットマーク)というスイッチを記述します。
分を表すmは小文字、時間を表すHは大文字にしなければなりません。
フィールドコードの表示を解除して、結果のプレビューをします。これで完成です。
解説は以上です。なお、文中の円マーク(¥)はすべて半角にしてください。フィールドコード(スイッチ)はすべて半角です。