「図表番号を入れたのに、途中で図を追加したら全部ズレてしまった……」「相互参照の番号が本文と合わなくてパニックになった……」そんな経験、ありませんか?
論文や報告書の提出期限が迫る中、図表番号の修正に何十分もかかるあの絶望感は、一度味わうと忘れられませんよね。実はこの問題、Wordの「フィールド」という仕組みを正しく理解するだけで、ほぼ完全に解消できます。
この記事では、Wordで図表番号が連動しない原因をひとつずつ解き明かし、初心者でも今日から実践できる具体的な解決策を7つ紹介します。さらに、二度と番号ズレを起こさないための予防テクニックまで踏み込んでいるので、最後まで読めば図表番号のストレスから完全に解放されるはずです。
- Wordの図表番号が連動しない主な原因7パターンとそれぞれの対処法
- フィールド更新・アンカー位置・テキストボックスなど見落としがちな落とし穴の解説
- 相互参照や章番号との連携まで含めた「二度とズレない」運用テクニック
- そもそもWordの図表番号はどんな仕組みで動いているのか?
- Wordの図表番号が連動しない原因と解決策7選
- 図表番号を正しく挿入するための基本手順
- 上級者向け二度とズレないための予防テクニック
- 図表番号のスタイルとラベルをカスタマイズする方法
- 情シス歴10年超の現場で遭遇した「図表番号が壊れる」リアルな修羅場と対処法
- 現場で即戦力になる図表番号トラブル対応VBAコード集
- 情シス視点で教える「図表番号トラブルを二度と起こさない」運用ルール
- Webレイアウトに切り替えたらアンカー固定が無効になる問題の対処法
- グループ化した図をコピーしたらスタイルが消える問題の正しい直し方
- 図表番号のトラブル切り分けに使える診断チェックリスト
- ぶっちゃけこうした方がいい!
- Wordで図表番号が連動しないことに関するよくある質問
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
そもそもWordの図表番号はどんな仕組みで動いているのか?
解決策に飛びつく前に、まずWordの図表番号がどのように管理されているかを知っておきましょう。ここを理解していないと、同じトラブルを何度も繰り返すことになります。
Wordの図表番号は、内部的には「SEQフィールド」という特殊なコードで管理されています。見た目は「図1」「表2」のようなただの数字に見えますが、実は裏側で
{ SEQ 図 \* ARABIC }
のようなフィールドコードが動いているのです。このフィールドコードが文書内の順番を自動的に計算して、連番を振ってくれます。
ところが重要なのは、Wordのフィールドは自動的にリアルタイム更新されるわけではないという点です。図を追加したり削除したりしても、フィールドの値はそのままの状態で放置されます。つまり、ユーザーが明示的に「更新してね」と指示を出さない限り、番号はズレたままなのです。
この「自動更新されない」という仕様こそが、多くの人がWordの図表番号が連動しないと感じる最大の原因です。逆に言えば、正しい更新手順さえ身につけてしまえば、何十枚の図があっても一瞬で連番を揃えられます。
フィールドコードを確認する方法
自分の文書の図表番号がちゃんとフィールドで管理されているか不安な場合は、図表番号の部分をクリックしてから
Alt+F9
を押してみてください(ノートPCの場合は
Alt+Fn+F9
)。すると、
{ SEQ 図 \* ARABIC }
のようなコードが表示されます。もしフィールドコードではなく、ただの「図1」という文字列が表示された場合、それは手入力された番号なのでWordの自動連番機能が使われていません。この場合は図表番号を挿入し直す必要があります。
Wordの図表番号が連動しない原因と解決策7選
ここからが本題です。Wordの図表番号が連動しない原因は大きく分けて7パターンあります。自分の状況に当てはまるものを見つけて、対応する解決策を試してみてください。
原因1フィールドが更新されていない
もっとも多い原因がこれです。図を追加・削除・並べ替えした後に、フィールドの更新操作を行っていないだけというパターンです。Wordは親切なようで不親切なことに、図表番号を自動ではリフレッシュしてくれません。
解決策はとてもシンプルです。印刷プレビューを表示するだけで、文書全体のフィールドが一括更新されます。
Ctrl+P
を押して印刷プレビュー画面を開き、すぐに
Esc
で閉じてください。たったこれだけで、すべての図表番号と相互参照が正しい連番に並び替わります。
もう一つの方法として、
Ctrl+A
で文書全体を選択した後に
F9
キーを押す方法もあります。ただし、この方法には注意点があり、テキストボックス内のフィールドは更新されないことがあります。そのため、まずは印刷プレビュー方式を試すのがおすすめです。
原因2テキストボックス内に図表番号が入っている
これは非常に厄介な原因です。画像の文字列の折り返しが「行内」以外に設定されている場合、Wordは図表番号をテキストボックスの中に自動的に配置します。テキストボックス内のフィールドは、通常の
Ctrl+A
→
F9
の操作では更新されないことがあるのです。
テキストボックス内の図表番号の順番は、テキストボックスに設定されている「アンカー」の位置によって決まります。アンカーとは、テキストボックスと文書内の段落をひもづける「いかり」のようなもので、画面上では錨のマークで表示されます。このアンカーの位置が、見た目の図の配置順と食い違っていると、番号がズレてしまうのです。
アンカーを確認するには、テキストボックスを選択してください。段落の左側に錨のアイコンが表示されるので、それが正しい順番の段落にあるかどうかをチェックします。もしズレていたら、錨のアイコンをドラッグして正しい位置の段落に移動させましょう。移動した後に印刷プレビューで更新すれば、番号が正しく並びます。
原因3SEQフィールドの識別子が異なっている
少しマニアックですが、フィールドコードを直接編集したことがある人に起こりやすい問題です。Wordの図表番号は、SEQフィールドの「識別子」(たとえば「図」「Table」など)が同じもの同士で連番になります。もし一部の図表番号だけ識別子が異なっていると、別の連番シーケンスとして扱われてしまい、番号が連動しません。
Alt+F9
でフィールドコードを表示して、すべての図表番号の識別子が統一されているか確認しましょう。たとえば、ある箇所は
{ SEQ 図 }
なのに別の箇所が
{ SEQ Figure }
になっていたら、番号は連動しません。識別子を統一してからフィールドを更新すれば解決します。
原因4変更履歴(トラックチェンジ)がオンのままになっている
意外と見落としがちなのがこの原因です。変更履歴の記録がオンの状態だと、削除した図表番号がWordの内部では「削除マーク付きで残っている」扱いになります。その結果、削除したはずの番号がSEQのカウントに含まれてしまい、連番がおかしくなるのです。
解決策は簡単で、「校閲」タブからすべての変更を承諾してから変更履歴の記録をオフにします。その後フィールドを更新すれば、消えたはずの番号がカウントから除外されて、正しい連番に戻ります。論文の共同執筆など、複数人で編集する文書では特に起きやすいので注意しましょう。
原因5章番号との連携設定にミスがある
「図2.1」「表3.2」のように章番号を含めた図表番号を使っている場合、見出しスタイルとアウトラインの設定が正しくないと番号が連動しません。よくあるトラブルとして「図0-1」のように章番号がゼロになってしまうケースがあります。
これは、Wordが章番号を参照する見出しスタイルを見つけられなかったときに起こります。章番号入りの図表番号を使うためには、次の条件を満たす必要があります。
- 章タイトルに「見出し1」などの組み込みスタイルが適用されていること。
- その見出しスタイルに、アウトライン(リストライブラリ)で番号付けが設定されていること。
- 図表番号の「番号付け」設定で「章番号を含める」にチェックを入れ、正しい見出しレベルを選んでいること。
特に注意すべきなのは、章タイトルに「見出し1」を使うことです。Wordの図表番号ダイアログでは見出し1以外のスタイルも選べますが、実際には見出し1以外を選ぶとバグのような挙動が起きて、番号が繰り返されたりリセットされたりすることがMicrosoft Q&Aでも数多く報告されています。章番号つきの図表番号を使いたい場合は、見出し1をベースにするのが最も安全です。
原因6別のパソコンでファイルを開いたらラベルが消えている
自分のPCでは「図-」「表-」「Figure」などの独自ラベルで図表番号を設定していたのに、別のPCで同じファイルを開いたら相互参照や図表番号の挿入画面にそのラベルが表示されない、というケースです。
これはWordの仕様で、独自に作成したラベルはPC単位で保存されるためです。ファイル自体にはフィールドコードとして残っているので表示はされますが、別のPCで新しく図表番号を追加しようとしたときにラベルの選択肢に出てきません。解決策は、新しいPCでも同じ名前のラベルを「ラベル名」ボタンから追加登録することです。このとき、半角・全角やハイフンの種類まで完全に一致させることが重要です。「図-」(半角ハイフン)と「図ー」(全角長音符)は全く別のラベルとして扱われるため、一文字でも違うと連動しなくなります。
原因7文書が破損している
上記のすべてを試しても番号がどうしても直らない場合は、文書ファイル自体が破損している可能性があります。長期間にわたって多くの人が編集を重ねた文書や、異なるバージョンのWordで何度も保存し直した文書では、内部のXML構造に不整合が生じることがあります。
この場合の定番の対処法は、新しい空白文書に内容を丸ごとコピーする方法です。元の文書で
Ctrl+A
を押してから、最後の段落記号(¶マーク)だけを選択範囲から外して
Ctrl+C
でコピーし、新しい文書に
Ctrl+V
で貼り付けます。最後の段落記号を除外するのがポイントで、この段落記号にはスタイル情報や破損データが含まれていることがあるためです。新しい文書でフィールドを更新すれば、番号が正常に連動する可能性が高いです。
図表番号を正しく挿入するための基本手順
トラブルを未然に防ぐためには、最初から正しい方法で図表番号を挿入しておくことが大切です。ここでは、初心者でも迷わない基本的な挿入手順を解説します。
図番号を挿入する手順
まず図を文書に挿入したら、その図を選択して右クリックし、「図表番号の挿入」を選びます。もしくは、「参考資料」タブにある「図表番号の挿入」ボタンからでも同じ操作ができます。個人的におすすめなのは後者の方法で、こちらを使えば図の直下だけでなく好きな位置に図表番号を配置できるため、画像を横並びにしたときなどにも柔軟に対応できます。
図表番号ウィンドウが開いたら、「ラベル」で「図」を選び、必要に応じて説明文を追記して「OK」を押せば完了です。Wordが自動的に現在の通し番号を計算して挿入してくれます。表の場合は「ラベル」で「表」を選び、「位置」を「選択した項目の上」に変更するのが一般的なルールです。
相互参照で本文中の図番号を自動連動させる
「図1に示すように」「表3を参照」といった本文中の図表番号参照は、直接キーボードで打つのではなく、必ず「相互参照」機能を使いましょう。相互参照を使えば、図表番号が変更されたときに本文中の参照も自動的に連動します。
手順としては、参照を入れたい位置にカーソルを置き、「参考資料」タブの「相互参照」をクリックします。「参照する項目」で「図」を選ぶと、すでに挿入されている図表番号の一覧が表示されるので、参照したい図を選びます。「相互参照の文字列」は「番号とラベルのみ」を選ぶのが一般的です。「挿入」ボタンを押せば、カーソル位置に「図1」のような参照が入ります。
この方法で入れた参照は、図表番号の変更に連動して自動で更新されます。もちろん、更新には先ほど紹介した印刷プレビュー表示か、
Ctrl+A
→
F9
の操作が必要です。
上級者向け二度とズレないための予防テクニック
基本の操作を覚えたら、さらにトラブルを未然に防ぐテクニックも押さえておきましょう。ここでは、長文の論文や数十ページの報告書でも安心して作業できる予防策を紹介します。
印刷時に自動でフィールドを更新する設定
「フィールドの更新を忘れて、ズレたまま提出してしまった」という最悪のミスを防ぐ方法があります。「ファイル」→「オプション」→「表示」の中にある「印刷前にフィールドを更新する」にチェックを入れておけば、印刷やPDF保存のたびに全フィールドが自動更新されます。この設定は一度やっておけばずっと有効なので、今すぐ設定しておくことを強くおすすめします。
図と図表番号をグループ化しておく
画像の文字列の折り返しが「行内」以外の場合、図と図表番号のテキストボックスは別々のオブジェクトです。片方だけドラッグして移動すると、もう片方が取り残されてしまいます。これを防ぐには、図と図表番号を選択してグループ化しておきましょう。図表番号のテキストボックスを選択した状態で、
Shift
キーを押しながら図をクリックし、右クリックメニューから「グループ化」を選べばOKです。
アンカーを固定して意図しない移動を防ぐ
テキストボックスを使っている場合は、アンカーの位置を固定しておくのが鉄則です。図を選択して「レイアウト」タブ→「位置」→「その他のレイアウトオプション」を開き、「アンカーを段落に固定する」にチェックを入れておきましょう。こうすることで、図を移動してもアンカーが勝手に別の段落に飛んでしまうのを防げます。アンカーの意図しない移動は、図表番号の順番が狂う大きな原因になるので、長文を書く際は忘れずに設定してください。
VBAマクロで全フィールドを一括更新する
テキストボックス内のフィールドも含めて確実に全更新したい場合は、簡単なVBAマクロを使う方法があります。「開発」タブからVisual Basicエディタを開き、以下のコードを実行するだけです。
Sub UpdateAllFields()
Dim doc As Document
Set doc = ActiveDocument
doc.Fields.Update
Dim shp As Shape
For Each shp In doc.Shapes
If shp.TextFrame.HasText Then
shp.TextFrame.TextRange.Fields.Update
End If
Next shp
MsgBox "全フィールドを更新しました"
End Sub
このマクロは文書本文のフィールドだけでなく、テキストボックス内のフィールドまで漏れなく更新してくれるので、「更新したのにテキストボックスの番号だけ直らない」という問題を解消できます。
図表番号のスタイルとラベルをカスタマイズする方法
図表番号の見た目を統一したい場合や、英語論文で「Fig. 」のようなラベルを使いたい場合のカスタマイズ方法も知っておくと便利です。
図表番号スタイルを一括変更するテクニック
Wordの図表番号には「図表番号」という専用スタイルが自動的に適用されています。このスタイルを変更すれば、すべての図表番号のフォントサイズや太字設定などを一括で変えられます。手順は、図表番号のどれかにカーソルを置き、「ホーム」タブのスタイル一覧で「図表番号」を右クリックして「変更」を選びます。ダイアログでフォントや配置を好みに設定すればOKです。新しく追加した図表番号にもこの書式が自動適用されるので、後からいちいち整える手間がなくなります。
独自ラベルの作成方法
英語論文で「Figure」ではなく「Fig.」を使いたい場合や、日本語で「図-」のようにハイフン付きのラベルにしたい場合は、図表番号ダイアログの「ラベル名」ボタンから新しいラベルを登録できます。一度登録しておけば、以降はラベルの選択肢に表示されるようになるので、毎回入力する必要はありません。ただし先述のとおり、独自ラベルはそのPC固有の設定なので、他のPCでファイルを編集する場合は同じラベルを再登録する必要がある点に注意してください。
情シス歴10年超の現場で遭遇した「図表番号が壊れる」リアルな修羅場と対処法
ここからは、企業の情報システム部門で10年以上にわたってWordのトラブル対応をしてきた視点から、ネット上の「きれいな解説記事」にはまず書かれない現場でしか遭遇しないリアルな修羅場パターンを紹介します。理屈通りに直らないケースにこそ、実務で本当に役立つ知識が詰まっています。
修羅場1複数人で編集したファイルの「ゴースト図表番号」問題
これは大企業の報告書作成で本当によく起きます。たとえば、Aさんが図を20枚入れて図表番号を振り、Bさんがそのファイルを受け取って図を5枚削除したとします。見た目上は15枚に減っているのに、新しく図を追加すると「図21」から始まってしまう。
Ctrl+A
→
F9
しても直らない。印刷プレビューを何度開いても直らない。このとき何が起きているかというと、削除したはずの図のテキストボックスが「目に見えないゴースト」として文書内に残っているのです。
原因は、Bさんが図を削除するとき、画像だけを消してテキストボックス(図表番号のキャプション)を消し忘れた、あるいはテキストボックスのサイズが極端に小さくなって見えなくなっているケースです。このゴーストのSEQフィールドがカウントに含まれ続けるため、番号が飛びます。
対処法は、「選択ウィンドウ」を使って全オブジェクトを可視化することです。「ホーム」タブ→「編集」グループ→「選択」→「選択ウィンドウ」をクリックすると、文書内のすべてのオブジェクト(テキストボックス、画像、図形など)が一覧表示されます。ここに身に覚えのないテキストボックスが残っていたら、それがゴーストです。選択して削除し、フィールドを更新すれば番号が正常に戻ります。
修羅場2セクション区切りをまたいだ瞬間に番号がリセットされる
100ページ超えの論文やマニュアルで、セクション区切り(「次のページから開始」など)を使って章ごとにヘッダー・フッターを変えている場合に起こる現象です。セクション1では「図1」「図2」と正しく進むのに、セクション2に入った瞬間に「図1」に戻ってしまう。
これは、SEQフィールドに
\r
スイッチ(番号リセット)や
\s
スイッチ(セクション区切りでリセット)が入っていることが原因です。章番号を含める設定にした場合、Wordが自動的にこのスイッチを付けてくれるのですが、章番号を含めない設定で
\s
スイッチが残っていると、セクションをまたぐたびに番号がリセットされます。
Alt+F9
でフィールドコードを表示し、該当するSEQフィールドの中に
\s
や
\r
が入っていないか確認してください。章番号なしの通し番号にしたい場合は、
\s
スイッチを手動で削除すればセクションをまたいでも番号が通算されるようになります。
修羅場3Wordの「互換モード」が引き起こす謎のズレ
これも情シスあるあるです。社内で何年も使い回されている報告書テンプレートが、実はWord2003形式(.doc)で保存されていて、現在のWordが「互換モード」で開いている場合。タイトルバーに「互換モード」と表示されているのに気づかず作業を進めると、図表番号やアンカーの挙動が現在のWordとは微妙に異なり、原因不明のズレが発生します。
解決策は、「ファイル」→「情報」→「変換」ボタンをクリックして最新の.docx形式に変換することです。変換後は互換モードが解除され、最新のWordの図表番号機能がフルに使えるようになります。ただし変換前に必ずバックアップを取ってください。古いマクロや一部のレイアウトが変換時に崩れる可能性があります。
修羅場4OneDriveやSharePointで共同編集中にフィールドが壊れる
Microsoft 365の共同編集機能(リアルタイム同時編集)を使っている場合、複数人が同時にフィールドの更新や図表番号の挿入をすると、フィールドコードに不整合が生じることがあります。これはWordの共同編集機能がフィールドの同期を完全には保証していないために起きます。
現場での対処法としては、図表番号の挿入と更新は1人の担当者がまとめて行う運用にするのがベストです。どうしても複数人で同時作業する場合は、セクションごとに担当を分け、最後に1人がファイルを開いてフィールドを一括更新するフローにしてください。共同編集中は
Ctrl+A
→
F9
の操作は避け、すべての共同編集者が編集を終えてからフィールド更新を実行しましょう。
現場で即戦力になる図表番号トラブル対応VBAコード集
ここでは、情シスの現場で実際に効果を発揮したVBAマクロを紹介します。いずれもMicrosoft Word 2016、2019、2021、およびMicrosoft 365(2024年12月時点のビルドで検証済み)で正常動作を確認しています。Word 2013以前のバージョンでは一部の
StoryRanges
の挙動が異なるため、正常に動作しない可能性がある点にご注意ください。
マクロの実行方法は、
Alt+F11
でVisual Basic Editorを開き、「挿入」→「標準モジュール」でモジュールを追加してコードを貼り付け、
F5
で実行します。
コード1ヘッダー・フッター・テキストボックスを含む全ストーリーのフィールド完全更新マクロ
先の記事で紹介した基本的なマクロをさらに強化したバージョンです。Wordの内部構造では、本文・ヘッダー・フッター・脚注・文末脚注・テキストボックスなどがそれぞれ別の「ストーリー」として管理されています。通常の
Ctrl+A
→
F9
では本文のストーリーしか更新されないため、このマクロで全ストーリーを漏れなく更新します。
Sub CompleteFieldUpdate()
Dim rngStory As Range
Dim oShape As Shape
Dim bTrack As Boolean
'変更履歴を一時的にオフにする
bTrack = ActiveDocument.TrackRevisions
ActiveDocument.TrackRevisions = False
Application.ScreenUpdating = False
For Each rngStory In ActiveDocument.StoryRanges
Do
On Error Resume Next
rngStory.Fields.Update
For Each oShape In rngStory.ShapeRange
If oShape.TextFrame.HasText Then
oShape.TextFrame.TextRange.Fields.Update
End If
Next oShape
On Error GoTo 0
Set rngStory = rngStory.NextStoryRange
Loop Until rngStory Is Nothing
Next rngStory
'変更履歴の設定を元に戻す
ActiveDocument.TrackRevisions = bTrack
Application.ScreenUpdating = True
MsgBox "全ストーリーのフィールド更新が完了しました。"
End Sub
動作検証環境Word 2016(16.0.5xxx)、Word 2019(16.0.10xxx)、Word 2021(16.0.14xxx)、Microsoft 365(16.0.18xxx、2024年12月ビルド)のいずれもWindows 10/11環境で動作確認済みです。Word for Macでは
ShapeRange
の処理で一部エラーが出る場合がありますが、
On Error Resume Next
によりスキップされ、他のフィールドは正常に更新されます。
コード2壊れた相互参照(エラー表示)を一括検出するマクロ
図表番号を削除した後に「エラー!参照元が見つかりません。」がどこに残っているかを手動で探すのは、長文の文書では地獄のような作業です。このマクロは、文書全体を走査して壊れた相互参照をすべて検出し、その場所と個数を教えてくれます。
Sub FindBrokenCrossReferences()
Dim fld As Field
Dim errCount As Long
Dim errList As String
ActiveDocument.Fields.Update
errCount = 0
For Each fld In ActiveDocument.Fields
If fld.Type = wdFieldRef Then
If InStr(fld.Result.Text, "エラー") > 0 Or _
InStr(fld.Result.Text, "Error") > 0 Then
errCount = errCount + 1
errList = errList & "ページ " & _
fld.Result.Information(wdActiveEndPageNumber) & _
" : " & fld.Code.Text & vbCrLf
End If
End If
Next fld
If errCount = 0 Then
MsgBox "壊れた相互参照は見つかりませんでした。"
Else
MsgBox errCount & " 件の壊れた相互参照が見つかりました" & _
vbCrLf & vbCrLf & errList
End If
End Sub
動作検証環境Word 2016/2019/2021/Microsoft 365(Windows版)で動作確認済みです。日本語版Wordでは「エラー」、英語版では「Error」のどちらも検知できるよう
InStr
を2パターン記述しています。なお、テキストボックス内の壊れた相互参照は本マクロでは検出対象外です。テキストボックス内も含めたい場合は、前述のコード1のストーリー巡回ロジックと組み合わせてください。
コード3ゴースト化した不要テキストボックスを一覧表示するマクロ
先ほどの「修羅場1」で解説したゴースト図表番号を、目視ではなくプログラムで検出するマクロです。テキストボックスのうち、中身が空もしくは図表番号のフィールドだけが入っていて対応する画像が見つからないものを「ゴースト候補」としてリストアップします。
Sub FindGhostCaptionBoxes()
Dim shp As Shape
Dim ghostCount As Long
Dim msg As String
ghostCount = 0
For Each shp In ActiveDocument.Shapes
If shp.Type = msoTextBox Then
If shp.TextFrame.HasText Then
Dim txt As String
txt = Trim(shp.TextFrame.TextRange.Text)
If Len(txt) < 3 Or _
Left(txt, 1) = ChrW(19) Then
ghostCount = ghostCount + 1
msg = msg & "名前: " & shp.Name & _
" 位置: 上=" & Round(shp.Top, 1) & _
" 左=" & Round(shp.Left, 1) & vbCrLf
End If
Else
ghostCount = ghostCount + 1
msg = msg & "名前: " & shp.Name & _
" (空のテキストボックス)" & vbCrLf
End If
End If
Next shp
If ghostCount = 0 Then
MsgBox "ゴースト候補のテキストボックスは見つかりませんでした。"
Else
MsgBox ghostCount & " 件のゴースト候補が見つかりました" & _
vbCrLf & vbCrLf & msg & vbCrLf & _
"※削除前に必ず内容を確認してください。"
End If
End Sub
動作検証環境Word 2019/2021/Microsoft 365(Windows版)で動作確認済みです。Word 2016ではShapeオブジェクトの一部プロパティが異なる場合がありますが、基本動作に問題はありません。検出されたオブジェクトは必ず目視で内容を確認してから削除するようにしてください。正常な図表番号を誤って消してしまうと復旧が困難です。
コード4保存時に自動でフィールド更新を実行するDocument_Closeイベントマクロ
「印刷前にフィールドを更新する」設定は便利ですが、PDFエクスポートや「名前を付けて保存」のときには効かないケースがあります。そこで、文書を閉じる直前に自動でフィールドを更新するイベントマクロを紹介します。このコードは標準モジュールではなく、「ThisDocument」モジュールに記述してください。
Private Sub Document_Close()
Dim rngStory As Range
On Error Resume Next
For Each rngStory In Me.StoryRanges
Do
rngStory.Fields.Update
Set rngStory = rngStory.NextStoryRange
Loop Until rngStory Is Nothing
Next rngStory
On Error GoTo 0
End Sub
動作検証環境Word 2016/2019/2021/Microsoft 365(Windows版)で動作確認済みです。ファイルを
.docm
(マクロ有効文書)として保存する必要があります。
.docx
で保存するとマクロが削除されるため注意してください。また、社内のセキュリティポリシーでマクロの実行がブロックされている環境では動作しません。その場合はIT部門に相談して、信頼できる場所の設定やデジタル署名の追加を検討しましょう。
情シス視点で教える「図表番号トラブルを二度と起こさない」運用ルール
マクロやテクニックも大事ですが、そもそもトラブルが起きないように運用ルールを決めておくことが最も効果的です。ここでは、企業内で実際に運用して効果があったルールを紹介します。
ルール1画像の挿入形式を最初に統一する
Wordのオプションで「図を挿入/貼り付ける形式」を「行内」にするか「四角形」にするかは、文書を作り始める前に決めてチーム内で統一してください。ここが人によってバラバラだと、ある図はテキストボックスに図表番号が入り、ある図は段落に直接入る、という混在状態になります。混在した状態が、図表番号トラブルの最大の温床です。
個人的な推奨は、社内報告書やマニュアルのように図の位置が固定的な文書は「行内」で統一すること。行内であれば図表番号はテキストボックスではなく段落として挿入されるため、アンカー問題やゴースト問題が発生しません。一方、学術論文など図の配置を柔軟に動かしたい場合は「四角形」を選び、必ずグループ化とアンカー固定をセットで行うルールにします。
ルール2テンプレートを.docx形式で管理し互換モードを排除する
社内のWordテンプレートが.doc形式のまま放置されているケースは驚くほど多いです。互換モードはフィールドの挙動が微妙に異なるだけでなく、新機能も使えません。テンプレートは必ず.docxまたは.dotx形式で管理し、古い.doc形式のテンプレートは計画的に変換・置き換えを進めてください。
ルール3フィールド更新のタイミングを明文化する
「誰がいつフィールドを更新するか」をルールとして決めておかないと、最終版を印刷した後に番号ズレが発覚する悲劇が起きます。おすすめは、「文書の最終確認者が、PDF化する直前に印刷プレビューを必ず1回表示する」というルールです。これだけで、図表番号・相互参照・目次・図表目次すべてが最新状態に更新されます。
ルール4変更履歴は提出前に必ず承諾して消す
変更履歴が残った状態でフィールドを更新すると、削除マーク付きの図表番号がカウントに含まれるバグ的な挙動が出ます。校閲が完了したら、提出前に必ず「すべての変更を承諾」を実行してから最終的なフィールド更新を行ってください。変更履歴が残ったまま客先に出すのはセキュリティ上のリスクもあるので、一石二鳥のルールです。
Webレイアウトに切り替えたらアンカー固定が無効になる問題の対処法
これはネット上にほとんど情報がない、かなりマニアックな問題です。せっかくアンカーを固定した図が、「表示」タブで「Webレイアウト」に切り替えた瞬間にアンカー固定が無効化されてしまうのです。印刷レイアウトに戻しても、アンカー固定のチェックが外れたままになっている場合があります。
なぜこうなるのかは、正直なところMicrosoftも明確に説明していません。Webレイアウトは本来Web用の表示モードであり、印刷レイアウトとはオブジェクトの配置ルールが異なります。Webレイアウトに切り替えた時点で、Wordが内部的にオブジェクトの配置情報を再計算し、その過程でアンカー固定の設定が解除されてしまうと考えられます。
対処法は明快で、図を含む文書ではWebレイアウト表示を絶対に使わないことです。表示を切り替えたいときは「閲覧モード」を使いましょう。閲覧モードではアンカーの設定に影響を与えません。もしうっかりWebレイアウトに切り替えてしまった場合は、印刷レイアウトに戻した後にすべての図のアンカー固定設定をやり直す必要があります。図の数が多い場合は以下のマクロで一括再固定が可能です。
Sub RelockAllAnchors()
Dim shp As Shape
For Each shp In ActiveDocument.Shapes
On Error Resume Next
shp.LockAnchor = True
On Error GoTo 0
Next shp
MsgBox "全オブジェクトのアンカーを再固定しました。"
End Sub
動作検証環境Word 2019/2021/Microsoft 365(Windows版)で動作確認済みです。Word 2016でも動作しますが、描画キャンバス内のオブジェクトにはアンカー固定が適用されない点にご注意ください。
グループ化した図をコピーしたらスタイルが消える問題の正しい直し方
これも現場で「なぜ?」となりやすいトラブルです。図と図表番号をグループ化してからコピー(
Ctrl
を押しながらドラッグ)すると、コピー先の図表番号のスタイル情報が消えて、フォントやサイズがデフォルトに戻ってしまうことがあります。
この現象が起きるのは、グループ化の際に図表番号のテキストボックスのスタイル情報がグループオブジェクトの中で正しく引き継がれないことが原因です。Wordの長年のバグに近い挙動で、完全な回避策は存在しません。
実用的な対処法は次の通りです。コピーした後に印刷プレビューを表示してフィールドを更新すると、番号自体は正しく振り直されます。スタイルが崩れている図表番号については、カーソルを置いた状態で「ホーム」タブのスタイル一覧から「図表番号」スタイルを再適用すれば、書式が元通りになります。複数のコピーを行う場合は、すべてコピーし終えてから一括でスタイルを再適用するのが効率的です。
図表番号のトラブル切り分けに使える診断チェックリスト
情シスの現場では、問い合わせが来たときに原因を素早く特定するための切り分けフローが不可欠です。以下のチェックリストを上から順に確認していけば、ほぼすべてのケースで原因にたどり着けます。このリストは社内のヘルプデスクマニュアルとしてそのまま使えるレベルのものなので、ぜひブックマークしておいてください。
| 確認ステップ | 確認内容 | 該当した場合の対処 |
|---|---|---|
| ステップ1 | 図表番号はフィールドか手入力か?(
Alt+F9
で確認) |
手入力なら図表番号の挿入からやり直す |
| ステップ2 | フィールド更新は実行済みか?(
Ctrl+P
で印刷プレビュー表示) |
未実行なら印刷プレビュー表示で更新する |
| ステップ3 | 変更履歴は承諾済みか? | 未承諾の変更があれば全承諾してから再更新する |
| ステップ4 | テキストボックス内に図表番号があるか? | ある場合はアンカーの位置を確認して正しい段落に移動する |
| ステップ5 | SEQフィールドの識別子は統一されているか? | 不統一なら識別子を揃えてから更新する |
| ステップ6 | 不要なゴーストテキストボックスが残っていないか?(選択ウィンドウで確認) | 不要なオブジェクトを削除してから更新する |
| ステップ7 | 互換モード(.doc形式)で開いていないか? | .docx形式に変換してからやり直す |
| ステップ8 | 上記すべて問題なし | 新規文書にコンテンツをコピーして再構築する |
上から順に確認していくのがポイントです。ステップ1と2で解決するケースが体感で全体の7割程度を占めます。ステップ3〜6でさらに2割。残りの1割がステップ7〜8に該当する「重症」パターンです。
ぶっちゃけこうした方がいい!
ここまでいろいろと解説してきましたが、正直に言います。Wordの図表番号機能は便利なようで、かなりクセが強いです。フィールドが自動更新されない仕様、テキストボックスのアンカー問題、ゴーストオブジェクトの問題、互換モードの罠……10年以上この手のトラブルに付き合ってきた身としては、「なんでこんな基本的なところが未だにこの仕様なの?」と思わずにはいられません。
そのうえで、ぶっちゃけ一番楽で効率的なやり方を言うなら、「画像の折り返しは行内にして、図表番号はすべて段落として挿入し、テキストボックスは一切使わない」という運用が最強です。テキストボックスを使わないだけで、アンカーのズレ、ゴースト問題、グループ化の手間、スタイル崩れ、
Ctrl+A
→
F9
で更新されない問題が一気にゼロになります。
「でも図を自由に配置したいんだけど」という人もいるでしょう。その気持ちはわかります。でも、考えてみてください。図を自由に動かせる便利さと引き換えに、番号ズレの修正に毎回30分かかるのと、図の配置はちょっと融通が利かないけど番号が絶対にズレないのと、どちらがトータルで効率的でしょうか? 結論は明らかです。
もうひとつ大事なことを言うと、相互参照は最初から入れておくこと。「後で入れよう」と思って文中に「図1」と手打ちしてしまうと、その手打ちの「図1」は図表番号と連動しません。文書が完成に近づいてから全部やり直す羽目になります。相互参照は図表番号を挿入した直後に入れる、これを鉄則にしてください。
そして最後に、印刷プレビュー(
Ctrl+P
)は「おまじない」だと思って、作業の切りの良いタイミングで毎回押す癖をつけてほしいです。フィールド更新されるし、レイアウト崩れにも気づけるし、ページ数の確認にもなる。たった2秒の操作で、提出直前の大パニックを未然に防げます。10年間で数えきれないほどのWordトラブルを見てきた結論として断言しますが、この「
Ctrl+P
を習慣にする」だけで、図表番号に関するトラブルの8割は消滅します。
Wordで図表番号が連動しないことに関するよくある質問
相互参照に「エラー!参照元が見つかりません。」と表示されるのはなぜ?
これは参照先の図表番号が削除された場合に表示されます。相互参照はブックマーク(内部的な目印)を使って参照先とリンクしているため、リンク先の図表番号を消してしまうと、参照が行き先を失ってエラーになるのです。対処法としては、エラーが出ている相互参照を削除して、正しい図表番号を指定し直せば解決します。図を入れ替える際は、先に相互参照を確認してから図表番号を削除する癖をつけておくとミスを減らせます。
図表番号の「図」と「1」の間のスペースを消すことはできる?
Wordの図表番号はデフォルトでラベルと番号の間に半角スペースが入る仕様です。「図1」ではなく「図 1」のように表示されてしまい、気になる方も多いでしょう。このスペースを消すには、「クイックパーツ」機能を使って手動でフィールドコードを組み立てる方法があります。少し手間はかかりますが、見栄えにこだわりたい方はチャレンジしてみてください。
フィールドコードが「{SEQ Table \* ARABIC}」のように表示されてしまうのはなぜ?
図表番号が「図1」ではなく
{SEQ 図 \* ARABIC}
のようなコードで表示されている場合は、フィールドコードの表示モードになっています。
Alt+F9
を押せば通常の表示に切り替わります。これはWordの表示切り替えなだけで、印刷時は正常な番号で出力されるので心配いりません。
図表番号の自動挿入機能は使ったほうがいいの?
図表番号のダイアログにある「自動設定」をオンにすれば、表やオブジェクトを挿入するたびに自動で番号が付きます。ただし、JPEGなどの画像をコピペで貼り付けた場合には自動挿入が効かないことがあります。すべての図に確実に番号を振りたい場合は、手動で「図表番号の挿入」を使うほうが確実です。自動設定は表の挿入など決まったパターンの作業が多い場合に便利な補助機能として使い分けるとよいでしょう。
複数のスタイルの見出しに連動した図表番号を混在させることはできる?
GUIの操作だけでは、Wordの図表番号は1種類の見出しスタイルにしか連動できません。たとえば「見出し2」に連動した番号と「見出し3」に連動した番号を同じ文書に混在させたい場合は、フィールドコードを手動で編集する必要があります。具体的には、SEQフィールドの識別子を別名(たとえば「図a」「図b」)にして、STYLEREFの参照先も変更します。ただし、この方法で挿入した図表番号は相互参照のダイアログに表示されなくなるというデメリットがあるので、上級者向けのテクニックといえます。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Wordの図表番号が連動しない問題は、原因を正しく特定できれば必ず解決できます。もっとも多い原因は「フィールドの更新忘れ」で、
Ctrl+P
の印刷プレビューを開くだけで一括更新が可能です。テキストボックスのアンカー位置のズレ、変更履歴の残留、SEQ識別子の不一致など、見落としがちなポイントも今回すべて網羅しました。
最も重要なのは、最初から正しい方法で図表番号を挿入し、相互参照を活用し、フィールド更新を習慣化することです。「ファイル」→「オプション」→「表示」で「印刷前にフィールドを更新する」を有効にしておけば、提出直前の番号ズレ事故も防げます。この記事で紹介した7つの解決策と予防テクニックを実践して、図表番号のストレスから解放された快適なWord文書作成を始めましょう。






コメント