Wordには、表や図、数式の番号を自動で更新する機能があります(図●●の●●の数字を更新する機能です)。本記事では、挿入した図表番号などを更新する方法(フィールドの更新方法)をまとめました。
本文中の番号だけを更新する
本文中の番号だけを更新したい場合には、Ctrl+aで本文を全選択した後に右クリックし、「フィールドの更新」を押します。この方法はページ数が少ない場合に有効です。
この方法は、ページ数が数百ページになると、全選択した状態で右クリックしたときにWordの画面が一時的にフリーズするようになります。
このときは、キーボードが英語入力になっている状態で、Ctrl+aで全選択した後にF9を押すと、Wordの画面はフリーズせずに、フィールドを更新できます。
F9は「フィールドの更新」のショートカットキーです。
キーボードが日本語入力になっている状態で、F9を押すと図番号などが文字化けするためご注意ください。
文字化けした場合はCtrl+zで戻すことができます。
注意点として、上記の方法ではテキストボックスの中の番号は更新されません。
テキストボックス内の番号を更新する
Ctrl+aではテキストボックス内の文章が選択されないため、そのままフィールドの更新を行ってもテキストボックス内の番号は更新されません。
1つずつマウスで選択して、F9を押すことで更新することもできますが、検索を利用してまとめて更新することもできます。
まず、メニューの「ホーム」の「検索」から「高度な検索」を選択します。
そして、上図のように、「検索する文字列」を「*」(すべての文字列)に変更し、検索オプションの「ワイルドカードを使用する」にチェックを入れます。
それから、「検索する場所」で「メイン文章のテキストボックス」を選択することで、テキストボックス内の全ての文章が選択されます。
テキストボックス内の全ての文章が選択された状態で、キーボードが英語入力になっていることを確認し、フィールドの更新を行うためのショートカットであるF9を押します。
これにより、テキストボックス内の番号が更新できます。
もちろん、F9を使用せずに右クリックの「フィールドの更新」も使用可能です。
マクロ(VBA)を用いて更新する
最後に、マクロを使用する方法になります。この方法では、本文中の番号とテキストボックス内の番号を同時に更新できます。
マクロを使用するには、「開発」メニューを使用します。
「開発」メニューが表示されていない場合には、メニューの「ファイル」から「オプション」を選択し、「リボンのユーザー設定」で「開発」にチェックを入れることで表示されます。

メニューの「開発」から「Visual Basic」を選択します。そうすると、VBAが立ち上がります。
VBAの左上にあるプロジェクトの枠に、現在開いているWordファイルの名前がありますので、その上で右クリックして「挿入」の「標準モジュール」を選択します。

それにより、標準モジュールが開きますので、次のコードを複写します。
Sub MyUpdateFields()
Dim rngStory As Range
' 画面描画を停止
Application.ScreenUpdating = False
On Error GoTo CleanUp
For Each rngStory In ActiveDocument.StoryRanges
Do
' フィールドを一括更新
rngStory.Fields.Update
Set rngStory = rngStory.NextStoryRange
Loop While Not rngStory Is Nothing
Next rngStory
CleanUp:
' 画面描画を再開
Application.ScreenUpdating = True
End SubVBAでの操作はこれで完了なので、画面を閉じてWordに戻ります。
Wordのメニューの「開発」で「マクロ」を選択し、作成した「MyUpdateFields」を選択した状態で「実行」ボタンを押します。
これにより、マクロが実行されてフィールドが更新されます。
For Each rngStory In ActiveDocument.StoryRangesは、アクティブドキュメント(フォーカスしているドキュメント)からストーリーを取り出し、各ストーリーに対して処理することを意味します。 ストーリーには、メインテキスト、ヘッダー、フッダー、注釈などが含まれます。rngStory.Fields.Updateは、ストーリーの中にあるフィールドに対して処理します。その処理の内容はUpdateであり、フィールドの更新を行います。
まとめ
Wordの本文およびテキストボックス内に含まれるフィールド(図番号や表番号など)を更新する方法をまとめました。
ご参考になりましたら幸いです。

