フィールドコードで段落番号を入力してしまおうというマクロです。
私自身、フィールドコードで段落番号を入れたり変更したりすることはしたことがなかったのですが、ワードマクロ勉強会に参加される方々が、案外使われていたので、ちょっと作ってみました。
それにしても、フィールドコードってかなり奥深いですね。その割に情報が限られているというか。。。
ひとまず作ってみましたので、修正提案があれば教えてください。
いくつかパターンがあるのですが、一つの使い方として、まずは日本語明細書用の段落番号を入力することに特化したマクロです。
▼このマクロでできること
日本語の段落番号【0001】を入力できます。
段落番号を途中に追加すると、自動で連番になります。
例)
【0021】
あいうえお
|【0022】
さしすせそ
上記で、【0021】も【0022】もフィールドコードで入力されていることが前提です。
さて、「かきくけこ」を入力し忘れたので、【0022】段落を追加します。
カーソルを上記の赤い部分においてマクロを実行。
【0021】
あいうえお
【0022】|
【0023】
さしすせそ
となります。これで、「かきくけこ」用の段落が用意されました。
▼マクロの解説
黒文字部分で、段落番号を入力しています。4桁の全角数字にするようにしています。
この記述方法はいろいろとありそうです。
実際に友人に教えてもらった書き方では、何種類かありました。
特に、後半に「MERGEFORMAT 」が複数並んだ記載があったのですが、その理由は何なのでしょうか?友人から教えてもらったフィールドコードはすべて「MERGEFORMAT 」が複数書かれていました。なぞです。
私は1つ書かれていれば大丈夫だと思い、以下のようにしてみました。不備があったら教えてください。
なお、一連の段落番号をParaJPという識別子をつけました。
すでにフィールドコードを使われている方は、現在使われているフィールドコードの識別子が使われていると思いますので、修正ください。
フィールドコードの連番は、同じ識別子をもつフィールドコードに対して、連番にするようになっています。この点をお気をつけください。
青文字で、フィールドコードの更新です。これをしないと、連番になりません。
赤文字で、改行を挿入しています。
なお、段落番号が確定したら、以下の記事で紹介したマクロで、フィールドコードの数字を通常の文字列(自動で変更されない文字)に変換できますよ。
【1行マクロ】文書中の全てのフィールドコードを文字列に変換する
▼マクロ
Sub 日本語段落番号の挿入()
Selection.Fields.Add _
Range:=Selection.Range, _
Text:="SEQ ParaJP \# ""【0000】"" \* DBCHAR \* MERGEFORMAT"
ActiveDocument.Fields.Update
Selection.InsertParagraphAfter
End Sub
▼関連記事
【1行マクロ】文書中の全てのフィールドコードを文字列に変換する
マクロコードの登録方法
ツールバーのボタン登録