Wordには、表や図、数式の番号を自動で更新する機能があります(図●●の●●の数字を更新する機能です)。
具体的には、メニューの「参考資料」から「図表番号の挿入」を行うことで番号を挿入できます。また、メニューの「挿入」から「相互参照」を用いることで文章中からその番号を引用できます。
これらの番号は、1、2、3、…などのように順に割り当てられ、図の順番を入れ替えた場合などにも、キーボードで変更せずに、番号が順に大きくなるように更新させることができます。
ここでは、挿入した番号の更新方法(フィールドの更新方法)をまとめました。
目次
本文中の番号だけを更新する
本文中の番号だけを更新することは、Ctrl+aで本文を全選択した後に右クリックし、「フィールドの更新」を押すことで可能です。この方法はページ数が少ない場合は有効です。
ページ数が数百ページになると、全選択した状態で右クリックしたときにWordの画面が一時的にフリーズするようになります。
このときは、キーボードが英語入力になっている状態で、Ctrl+aで全選択した後にF9を押すと、Wordの画面はフリーズせずに、フィールドを更新できます。
F9は「フィールドの更新」のショートカットキーです。
キーボードが日本語入力になっている状態で、F9を押すと図番号などが文字化けするためご注意ください。
文字化けした場合はCtrl+zで戻すことができます。
注意点として、上記の方法ではテキストボックスの中の番号は更新されません。
テキストボックス内の番号を更新する
Ctrl+aではテキストボックス内の文章が選択されないため、そのままフィールドの更新を行ってもテキストボックス内の番号は更新されません。
1つずつマウスで選択して、F9を押すことで更新することもできますが、検索を利用してまとめて更新することもできます。
まず、メニューの「ホーム」の「検索」から「高度な検索」を選択します。
そして、上図のように、「検索する文字列」を「*」(すべての文字列)に変更し、検索オプションの「ワイルドカードを使用する」にチェックを入れます。
それから、「検索する場所」で「メイン文章のテキストボックス」を選択することで、テキストボックス内の全ての文章が選択されます。
テキストボックス内の全ての文章が選択された状態で、キーボードが英語入力になっていることを確認し、フィールドの更新を行うためのショートカットであるF9を押します。
これにより、テキストボックス内の番号が更新できます。
もちろん、F9を使用せずに右クリックの「フィールドの更新」も使用可能です。
マクロ(VBA)を用いて更新する
最後に、マクロを使用する方法になります。この方法では、本文中の番号とテキストボックス内の番号を同時に更新できます。
マクロを使用するには、「開発」メニューを使用します。
「開発」メニューが表示されていない場合には、メニューの「ファイル」から「オプション」を選択し、「リボンのユーザー設定」で「開発」にチェックを入れることで表示されます。
メニューの「開発」から「Visual Basic」を選択します。そうすると、VBAが立ち上がります。
VBAの左上にあるプロジェクトの枠に、現在開いているWordファイルの名前がありますので、その上で右クリックして「挿入」の「標準モジュール」を選択します。
それにより、標準モジュールが開きますので、次のコードを複写します。
Sub UpdateFields()
Dim Story, Field
For Each Story In ActiveDocument.StoryRanges
For Each Field In Story.Fields
Field.Update
Next
Next
End Sub
VBAでの操作はこれで完了なので、画面を閉じてWordに戻ります。
Wordのメニューの「開発」で「マクロ」を選択し、作成した「UpdateFields」を選択した状態で「実行」ボタンを押します。
これにより、マクロが実行されてフィールドが更新されます。
For Each Story In ActiveDocument.StoryRangesは、アクティブドキュメント(フォーカスしているドキュメント)からストーリーを取り出し、各ストーリーに対して処理することを意味します。 ストーリーには、メインテキスト、ヘッダー、フッダー、注釈などが含まれます。For Each Field In Story.Fieldsは、ストーリーの中にある各フィールドに対して処理します。その処理の内容は、Field.Updateであり、フィールドの更新を行います。
まとめ
Wordの本文およびテキストボックス内に含まれるフィールド(図番号や表番号など)を更新する方法をまとめました。
ご参考になりましたら幸いです。