2015年8月17日月曜日

[Word]一桁全角二桁半角の通番を入力するためのフィールド

文書作成において、一桁のときは全角、2桁以降は全角にするべきとされることがある。つまり、いかのようなことがしたい。

1 にんじん
2 さんだる
3 よっと
(中略)
8 クジラ
9 ジュース
10 いちご
11 さむらい
(後略)

私としてはそもそも数値は全て半角にする方が良いと考えているが、上司に言われては逆らえない地道に入力してもいいが、途中で項目が追加になると通し番号は全て打ち直さねばならない。ならば、自動で処理したいところだ。

では、Wordにはフィールドという機能があるのでそれを利用しよう。



結論から言えば、


{ IF { SEQ NUM } < 10 { SEQ NUM \c \* DBCHAR } { SEQ NUM \c \* SBCHAR } }

このフィールド構文を入れてやれば良い。うまくいかない、どういう意味なのか知りたい場合は、以下の説明を読んでほしい。


フィールドの挿入


まずは、フィールドについてだ。
Ctrl + F9キーを押すと、灰がけの{ }が挿入される。これがフィールドの入力欄だ。このカッコの中に必要なフィールドを入れるとWordで自動的に計算して入力してくれるのだ。

試しに灰がけの{ }に以下のように入力する。


{ SEQ NUM }


SEQは、平たく言えば通し番号を入れるフィールド名だ。NUMは識別子といい、通し番号を区別するための単語なので何を入れてもいい。この状態で、Shift+F9を押すと、1と表示されるはずだ。さらに、これをコピーアンドペーストすると、2,3,4と順番に数値が貼り付けられるはずだ。ちなみに、NUMのところをOTHERとでも変えてやれば、それとは別の通し番号を新しく作ることもできる。

これで通し番号は入力できた。が、これでは全て半角数値にしかならない。 そこで全角にするための情報を入れてやろう。


フィールドの数値の全角化(と、半角化)


コピペしたどれかにカーソルを合わせてから、 Shift+F9を押すと、また{ SEQ NUM }に戻るはずだ。これを下のように修正しよう。


{ SEQ NUM \* DBCHAR }


修正してからまた Shift+F9を押すと、全角文字になる。\*はおまじないと思って入れてほしい。そして、DBCHARが全角指定を意味する。おそらくDouble Byte Charの略であり、いわゆる2バイト文字(全角文字)のことである。

なお、以下のようにすると半角指定を明示できる。


{ SEQ NUM \* SBCHAR }


こちらは、Single Byte Charの略であり、1byte文字(半角文字)である。


一桁全角二桁半角にする


さて、ここまで来たら、一桁全角二桁半角にするには、「一桁のところはDBCHAR、二桁のところはSBCHARにする」ようにしてやればよい。そして、その方法だが2通り考えられる。

  1. 一桁と二桁を自分で考えて入力する
  2. 一桁か二桁か自動的に判断させる

更新の手間が多くないなら1で十分だろう。しかし、頻繁に更新するなら2の方法を取りたいところだ。その方法を紹介する。

一桁か二桁かを判別するには、IFフィールドを使う。条件分けをしてやるためのフィールドだ。

そしてその詳細は、割愛して以下のように入力する。なお、{ } を入力するときは、その度にCtrl+F9を押してほしい。手で{ }を入力してもフィールドと認識されないためだ。私はこれで躓いた。また、半角スペースも忘れないように。これで2度躓いた。


{ IF { SEQ NUM } < 10 { SEQ NUM \c \* DECHAR } { SEQ NUM \c \* SECHAR } }


なお、この文はこの知恵袋を参照した。

意味合いとしては、
IF ・・・ 場合分けをする
{ SEQ NUM }  < 10  ・・・ その場所の番号が10未満ならば、
{ SEQ NUM \c \* DECHAR }  ・・・ 全角(DECHAR)の番号にする
そうでないなら
{ SEQ NUM \c \* SECHAR }  ・・・ 半角(SECHAR)の番号にする

と言った意味合いである。この辺りのIF文の用法に関しては、"IF フィールド Word"などで検索して調べていただきたい。

なお、途中の\cに関しては前の番号と同じ番号を使うことを意味する。それを指定する理由は、このフィールド中、3回SEQフィールドを使っているが、\cを指定しないとその度に番号が増えてしまうためだ。そのため、必ず記入指定したい。



最後に

もう一度結論を言えば、
{ IF { SEQ NUM } < 10 { SEQ NUM \c \* DECHAR } { SEQ NUM \c \* SECHAR } }
このフィールドを通し番号を置きたい場所にコピペすればよい。Shift+F9で構文から番号表示にするのを忘れずに。

また、同じ数字しか表示されない!ということがあれば、Ctrl+aを押してから、F9のみ押す。そうすると、再計算されて正しい順序の数値に自動計算してくれる。

0 件のコメント:

コメントを投稿