「参考資料」タブから目次を挿入したのに、何も表示されない。見出しを追加したのに目次に反映されない。ページ番号がずれたまま更新もできない——そんなモヤモヤした経験、ありませんか?
Wordの目次の自動作成機能は、正しく使えば報告書やマニュアル作りを劇的に効率化してくれる強力な機能です。でも、ちょっとした設定ミスや操作の勘違いで「なぜか使えない」という落とし穴にはまりやすく、初心者はもちろん、普段からWordを使っている人でも悩むポイントが多いのが現実です。
この記事では、Wordの目次が自動作成できない原因をパターン別に丁寧に整理し、それぞれの解決策を小学生でもわかるくらい噛み砕いて解説します。さらに、目次作成の基本手順から、更新・カスタマイズ・よくあるトラブルの対処法まで、ひとつの記事を読むだけで完全に解決できる内容にまとめました。
- 目次が自動作成できない原因がパターン別にわかる
- 見出しスタイルの正しい設定方法と失敗しない目次の作り方がわかる
- 目次の更新・カスタマイズ・トラブル対処法まで網羅的に理解できる
- そもそもWordの目次の自動作成はどういう仕組みなの?
- Wordの目次が自動作成できない!よくある原因8パターン
- Wordで目次を自動作成する正しい手順(初心者向け完全ガイド)
- 目次のデザインと表示内容をカスタマイズする方法
- 目次作成をもっと便利にするプロ向けテクニック
- スタイルを使わないと必ずレイアウトが崩れる理由と、今すぐスタイルに移行する最短手順
- 差し込み印刷でExcelの日付や金額がおかしくなる本当の原因と対処法
- 変更履歴が知らないうちにオンになっていて大惨事になる問題の防ぎ方
- docxとdocの互換性の罠と、Macとの「地雷」を踏まずに済む変換手順
- VBAで目次・スタイル・フィールドを自動化する実務コード集
- Wordファイルが突然開けなくなった!緊急トラブル対応マニュアル
- 現場で本当に起きた「あるある困った」解決集
- ぶっちゃけこうした方がいい!
- Wordの目次の自動作成に関するよくある疑問を解決!
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
そもそもWordの目次の自動作成はどういう仕組みなの?
Wordの目次を自動で作る仕組みを理解していないと、なぜ「できない」のかもわかりません。まずここから押さえておきましょう。
Wordの自動目次機能は、文書の中に設定されている「見出しスタイル」を読み取って、その内容とページ番号を自動的に一覧化する機能です。つまり、Wordは見出しスタイルが設定されていない普通のテキストを、目次に載せるべき項目として認識することができません。
具体的には、「見出し1」「見出し2」「見出し3」という3段階のスタイルが目次の階層に対応しています。「見出し1」が最も上位の大見出し(章)、「見出し2」が中見出し(節)、「見出し3」がさらに細かい項目(小節)に相当します。この階層構造が、目次のインデント(字下げ)の深さになって表れるわけです。
もうひとつ覚えておきたいのは、Wordの目次は「一度作ったら完全に自動」ではないという点です。文章を後から修正してページ番号が変わっても、目次は自動で追いかけてくれません。「目次の更新」という手動操作が別途必要になります。この仕組みを知らずに「自動更新されない=壊れている」と勘違いしてしまうケースが非常に多いです。
Wordの目次が自動作成できない!よくある原因8パターン
「目次を挿入したのに何も出てこない」「内容がおかしい」という状況には、いくつかの典型的な原因があります。自分がどのパターンに当てはまるかを確認しましょう。
原因①見出しスタイルがそもそも設定されていない
これが最も多い原因です。文章を入力して章のタイトルを太字にしたり、フォントサイズを大きくしたりしても、それは見た目を変えただけであって、Wordに「ここが見出しだよ」と伝えたことにはなりません。Wordが目次に載せるのは「ホームタブのスタイルから見出し1・見出し2・見出し3を選んで適用した段落」だけです。
確認方法はかんたんで、章タイトルの行にカーソルを置いてホームタブを開き、スタイルの一覧で「見出し1」などがハイライトされているかどうかを見ます。もし「標準」のままになっていたら、そこに見出しスタイルが当たっていない証拠です。
原因②「手動作成目次」を選んでしまっている
「参考資料」→「目次」のメニューには、「自動作成の目次1」「自動作成の目次2」と、「手動作成目次」の3種類が並んでいます。見た目が似ているため間違えやすいのですが、「手動作成目次」を選ぶと、本文の見出しとはまったく連動しないテンプレートが挿入されます。後から「目次の更新」を実行しても反映されませんし、ページ番号も自分で手入力しなければなりません。
自動で更新される目次を作りたいなら、必ず「自動作成の目次1」または「自動作成の目次2」を選ぶようにしましょう。ちなみに「自動作成の目次1」と「2」の違いは、挿入される目次のタイトルが「内容」か「目次」かだけで、機能的な差はほぼありません。
原因③目次の更新操作をしていない
見出しを追加したり本文を修正したりした後に「目次が古いまま」になっているのは、壊れているのではなく更新操作をしていないだけです。Wordの自動目次はリアルタイムで変化を追うのではなく、ユーザーが更新を指示したタイミングで最新の状態に同期します。
更新方法は複数あります。目次の上部にある「目次の更新」ボタンをクリックする方法、目次の上で右クリックして「フィールドの更新」を選ぶ方法、そしてキーボードで
F9
キーを押す方法です。更新を実行すると「ページ番号だけを更新する」か「目次をすべて更新する」かを聞かれます。見出しの内容や構成も変わっていた場合は「目次をすべて更新する」を選びましょう。
原因④見出しスタイルを変更した際に書式が崩れている
見出しスタイルを適用した後、フォントや色を手動で変えると、スタイルの定義が壊れて目次との連携がうまくいかなくなることがあります。たとえば「見出し1を太字にしたら目次も太字になってしまった」「見出しの書式を変えたら目次の表示が変になった」というケースがこれです。
解決策は、見出しの書式を個別に変えるのではなく、スタイル自体を変更することです。ホームタブのスタイル一覧で「見出し1」を右クリック→「変更」を選ぶと、そのスタイルが使われているすべての見出しに一括で新しい書式を反映できます。
原因⑤意図しない段落に見出しスタイルが適用されている
逆のパターンもあります。目次に載せたくない本文の一部が目次に勝手に入ってしまっている場合です。これは、誤ってその段落に見出しスタイルが適用されているためです。その段落をクリックしてホームタブを確認し、スタイルが「見出し1〜3」になっていたら「標準」に戻してください。その後、目次を更新すれば不要な項目が消えます。
原因⑥ファイルが読み取り専用モードで開かれている
SharePointやOneDriveで管理しているファイルや、メールに添付されたファイルをそのまま開くと、読み取り専用モードになっていることがあります。この状態では目次の更新どころか文書の編集自体ができません。画面上部に「編集を有効にする」というバナーが表示されていたらクリックして編集モードに切り替えましょう。
原因⑦アウトラインレベルが直接設定されている
これはやや上級者向けの落とし穴です。「段落の書式設定」から直接アウトラインレベルを設定した段落は、見出しスタイルとは別の扱いになることがあり、目次に予期しない内容が入ったり逆に入らなかったりします。
Alt
+
F9
キーでフィールドコードを表示して、TOCフィールドに
\u
スイッチが含まれていたらそれを削除し、目次を更新することで解決できる場合があります。
原因⑧ファイルが破損している
長期間にわたって編集を繰り返したWord文書は、まれにファイル自体が破損して目次の更新ができなくなることがあります。この場合は、文書の最後の段落記号(¶)を除いたすべての内容を新しい空白のWord文書にコピーして貼り付け、そちらで目次を新たに作り直すのが確実な解決策です。
Wordで目次を自動作成する正しい手順(初心者向け完全ガイド)
ここからは、失敗なく目次を作るための基本手順を順を追って説明します。すでに文章を書き終えた後から目次を追加するケースを想定して解説しますが、文章を書く前でも同じ手順で対応できます。
ステップ1見出しスタイルを設定する
まず、目次に載せたい章や節のタイトル行に見出しスタイルを適用します。タイトル行の上にカーソルを置くか、その行を選択した状態で、ホームタブにある「スタイル」グループから「見出し1」を選びます。大見出しには「見出し1」、中見出しには「見出し2」、小見出しには「見出し3」を使いましょう。
キーボードショートカットを使うとさらに速く作業できます。
Ctrl
+
Alt
+
1
で見出し1、
Ctrl
+
Alt
+
2
で見出し2、
Ctrl
+
Alt
+
3
で見出し3が即座に適用されます。文書全体の見出しを設定する作業はやや単調ですが、ここを丁寧にやることが目次を正しく作るための唯一の準備です。
ステップ2見出しの適用状況をアウトライン画面で確認する
すべての見出しにスタイルを設定したら、正しく適用されているかを確認しましょう。「表示」タブ→「アウトライン」を選ぶと、文書の構造が階層表示されます。各見出しが正しいレベルで表示されていれば準備完了です。確認後は「アウトラインを閉じる」ボタンで通常の表示に戻ります。
ステップ3目次を挿入する
目次を置きたい場所(一般的には文書の先頭ページ)にカーソルを移動します。「参考資料」タブをクリックし、一番左にある「目次」ボタンを押します。ドロップダウンメニューが開くので、「自動作成の目次1」または「自動作成の目次2」を選択します。
するとその場に目次が自動で生成されます。見出しのテキストとそれぞれのページ番号が一覧になって表示されれば成功です。目次と本文のページを分けたい場合は、本文の先頭にカーソルを置いて「挿入」→「ページ区切り」を選ぶと、目次と本文が別のページに分かれます。
ステップ4本文を修正したあとは目次を更新する
見出しを追加・変更したり、本文を加筆して各ページの内容がずれたりした場合は、目次の上をクリックして「目次の更新」を押します。「ページ番号だけを更新する」を選べばページ番号のみが更新され、「目次をすべて更新する」を選べば見出しの内容も含めて全体が最新状態に更新されます。
最終的に印刷やPDFで提出する前には、必ず「目次をすべて更新する」を一度実行するクセをつけておきましょう。Wordの設定で「ファイル」→「オプション」→「表示」→「印刷前にフィールドを更新する」にチェックを入れておくと、印刷・PDF出力の直前に自動で目次が更新されるようになり、更新し忘れを防げます。
目次のデザインと表示内容をカスタマイズする方法
Wordのデフォルト目次では物足りない場合や、表示する見出しのレベルを調整したい場合は、「ユーザー設定の目次」機能を使いましょう。
表示する見出しの階層を変更する
「参考資料」→「目次」→「ユーザー設定の目次」を選ぶと、目次の詳細設定ダイアログが開きます。「全般」セクションの「アウトラインレベル」の数値を変えることで、目次に表示する見出しの深さを調整できます。デフォルトでは「3」(見出し3まで表示)に設定されていますが、「2」に変えれば見出し2までのシンプルな目次になります。
タブリーダーやページ番号の表示を変更する
見出しとページ番号の間をつなぐ点線は「タブリーダー」と呼ばれます。同じダイアログの「タブリーダー」から、点線・破線・実線などに変更できます。またページ番号を表示しないようにすることも可能で、「ページ番号を表示する」のチェックを外すだけです。
目次のフォントや文字サイズを変える
ダイアログ右下の「変更」ボタンをクリックすると、目次の各レベルごとにフォント・文字サイズ・太さ・色などを細かく設定できます。ただし、このボタンが有効になるのは「書式」の設定で「任意のスタイル」が選ばれている場合のみです。もしボタンがグレーアウトしている場合は「書式」を確認してみてください。
目次に含めたくない見出しを除外する
「表題」スタイルが設定されたタイトルや、特定の見出しレベルを目次から外したい場合は、「ユーザー設定の目次」→「オプション」から設定できます。目次オプションのダイアログで、除外したいスタイルの「目次レベル」欄の数字を消してOKを押すと、その見出しは目次に入らなくなります。自動作成の目次で削除してもすべて更新するたびに復活してしまうのに対し、この方法なら更新しても除外設定が保持されます。
目次作成をもっと便利にするプロ向けテクニック
基本操作をマスターしたら、さらに作業効率を上げるテクニックも押さえておきましょう。
ナビゲーションウィンドウで文書構造を常に把握する
「表示」タブ→「ナビゲーションウィンドウ」にチェックを入れると、画面左に目次のような構造ツリーが常に表示されます。このツリーの項目をクリックするだけで本文のその箇所まで瞬時にジャンプできます。長い文書を編集するときには欠かせない機能です。文書全体の構成を見渡しながら執筆・編集できるため、抜け漏れや構成の偏りにも気づきやすくなります。
目次のリンクをワンクリックで機能させる
通常、目次の見出しをクリックして対応箇所にジャンプするには
Ctrl
キーを押しながらクリックする必要があります。しかし、「ファイル」→「オプション」→「詳細設定」→「Ctrlキー+クリックでハイパーリンクを表示する」のチェックを外すと、
Ctrl
なしでクリックだけでジャンプできるようになります。PDF化した場合でもリンク機能は保持されるため、デジタル配布する資料では特に便利です。
目次ページにはページ番号を振らない設定
資料の先頭ページが目次の場合、そのページにはページ番号を表示したくないことがよくあります。「挿入」→「ページ番号」→「ページ番号の書式設定」で「ページの開始番号」を「0」に設定し、さらに「挿入」→「ヘッダー/フッターの編集」→「先頭ページのみ別指定」にチェックを入れることで、先頭の目次ページだけ番号なし、本文から1ページとして連番を振ることができます。
キーボードショートカットで目次更新を一発で完了させる
Ctrl
+
A
で文書全体を選択してから
F9
キーを押すと、文書内のすべてのフィールドを一度に更新できます。目次だけでなく相互参照なども同時に更新されるため、最終確認時にまとめて実行するのが効率的です。
スタイルを使わないと必ずレイアウトが崩れる理由と、今すぐスタイルに移行する最短手順
この手順はWord 2019/Microsoft 365(Windows)を基準にしています。
15年以上、社内のWord文書を管理してきて痛感しているのですが、「見た目だけ整えた文書」は必ず後でトラブルを起こします。なぜそうなるのか、裏側の仕組みから説明します。
Wordの.docxファイルは、実はZIPアーカイブの中にXMLファイルが入った構造になっています。見出しを「太字・16pt・青色」にしたとき、スタイルを使った場合と直接書式設定した場合では、XMLの記述がまるで違います。スタイルを使った場合はXMLに「Heading1スタイルを適用」の1行だけが書かれます。一方、直接書式設定した場合はフォント名・サイズ・色・太さ・行間など何十もの属性がすべてその段落に直接記述されます。
これが何を意味するかというと、直接書式が設定されている文書は、スタイルの変更命令を受け付けない「免疫不全状態」になるということです。社内テンプレートのフォントをメイリオからBIZ UDゴシックに変更しようとしたとき、スタイルで管理されていれば一発で全段落が変わります。でも直接書式設定されていると、スタイルを変えても上書きされずに古い書式が残ります。これが「なぜかレイアウトが統一されない」という現象の根本原因です。
では今すぐスタイルに移行するには?
ホームタブ > スタイルグループ > スタイルの適用
から始めましょう。直接書式を解除してスタイルを正しく当て直すだけです。ただし、長年使い続けた文書ではスタイルの定義自体が崩れていることがあります。そのときは、
ホームタブ > スタイルグループ > スタイルウィンドウ(右下の矢印アイコン)
を開き、対象スタイルを右クリック→「変更」で定義を正しく設定し直してから適用してください。
Word for Macの場合スタイルウィンドウの場所は同じですが、一部のキーボードショートカットが異なります。
Ctrl+Alt+1
(Windows)に相当する見出し1の適用は、Macでは
Command+Option+1
です。
差し込み印刷でExcelの日付や金額がおかしくなる本当の原因と対処法
この手順はWord 2019/Microsoft 365(Windows)を基準にしています。
差し込み印刷の「日付が数値になる」問題、これは現場で何百件と見てきました。たとえばExcelで「2026/04/04」と入っているセルを差し込んだら、Wordに「46115」と表示されてしまった——この現象の原因を知らずに困っている方が本当に多いです。
原因はシンプルで、ExcelはWindowsの内部では日付を「1900年1月1日からの経過日数」の数値で管理しているからです。表示形式はExcel側でだけ「日付に見えるよう」変換されているだけで、差し込み印刷ではWordがExcelから「生の数値」を受け取ってしまうのです。
解決策は2つあります。ひとつはWordのフィールドコードに書式スイッチを追加する方法。差し込みフィールドを右クリック→「フィールドコードの表示」で、たとえば
{ MERGEFIELD 日付 }
と表示されているところを
{ MERGEFIELD 日付 \@ "yyyy年M月d日" }
に書き換えます。もうひとつはExcel側でそのセルを「文字列として保存された数値」形式にしてしまう方法です。どちらかというと、Wordのフィールドコードで制御する方が後から変更しやすく、現場では圧倒的にこちらを推奨しています。
金額のカンマ区切りも同様です。
{ MERGEFIELD 金額 \# "#,##0円" }
のように書式スイッチ
\#
を使えば、Excelの表示形式に依存せずWord側で制御できます。
Word for Macの場合フィールドコードの表示切り替えは
Option+F9
です。フィールドの書式スイッチの動作はWindowsと同様ですが、日本語の日付書式(\@スイッチ)は一部のMacのロケール設定によって挙動が違う場合があります。英数字形式(yyyy/MM/dd)の方が安定します。
変更履歴が知らないうちにオンになっていて大惨事になる問題の防ぎ方
この手順はWord 2019/Microsoft 365(Windows)を基準にしています。
これ、公式ドキュメントには書いてないんですが、現場で本当によく起きるトラブルです。他部署から送られてきた文書を修正して返したら「なんで全部赤い文字で変更が表示されているんですか?」と言われた経験、ありませんか?
原因は変更履歴の追跡機能が前の作業者によってオンにされたままだったこと。最悪なのは、「すべての変更を表示」モードをオフにしていると変更履歴が溜まっていても見えないため、知らないまま修正を重ねてしまうことです。
確認方法は
校閲タブ > 変更履歴グループ > 変更履歴の記録
のボタンが押されているかどうかです。グレーアウトして見えにくいときは、
校閲タブ > 変更内容の表示 > すべての変更履歴/コメントを表示
を選択してから確認しましょう。
「誰の変更かわからない」問題を防ぐには、
ファイル > オプション > 全般 > ユーザー名とイニシャル
を正しく設定しておくことが前提です。複数人が同じPCを使っているような環境では、変更を加える前に必ずこの設定を確認する習慣を作りましょう。
Microsoft 365でSharePoint/OneDriveを使った共同編集の場合変更履歴とは別の「バージョン履歴」機能が使えます。
ファイル > 情報 > バージョン履歴
から過去の保存状態に戻すことができるため、「誰かが変更してしまった内容を元に戻したい」場合はこちらの方が確実です。一方、ローカルに保存したコピーと混在させると「どちらが最新か」がわからなくなるため、チーム運用では「SharePoint上での編集」か「ローカル保存」かをチームとして統一するルールが必須です。
docxとdocの互換性の罠と、Macとの「地雷」を踏まずに済む変換手順
この手順はWord 2019/Microsoft 365(Windows)を基準にしています。
「.docファイルで送ってください」と言われたとき、ただ「名前を付けて保存」で.doc形式にするだけでOKだと思っていませんか? それ、罠なんです。
バージョン別の機能差異と互換性を以下にまとめます。
| 形式 | 特徴・リスク | 変換時の注意 |
|---|---|---|
| .docx | Word 2007以降の標準形式。XMLベースで比較的堅牢 | 基本的にこれを使えばOK |
| .doc | Word 97-2003形式。バイナリ形式のため破損リスクが高い | コンテンツコントロール・テーマカラーなどは保持されない |
| .odt | LibreOffice等のオープン形式。目次・フィールドコードの互換性が低い | Word独自のTOCフィールドが崩れる可能性がある |
.doc形式に変換するとき特に失われやすいのは、コンテンツコントロール、SmartArt、テーマカラーの正確な再現、高度なページレイアウト設定です。変換前には必ず元の.docxをバックアップし、変換後に印刷プレビューで全ページを確認することを強くお勧めします。
Word for Macとの互換性問題として現場でよく踏む地雷は3つあります。まずフォント。Windowsで使えるMSゴシック・MS明朝はMacに標準インストールされていないため、Mac側で別フォントに置き換えられてレイアウトが崩れます。解決策は、配布する文書は「ヒラギノ角ゴシック」や「游ゴシック」など両OSで使えるフォントを使うか、文書をPDF化して配布することです。次に差し込み印刷のデータソースパス。Windowsのパス(C:\Users\…)はMacでは無効です。共有ドライブやSharePointのURLをデータソースに使えば両OS対応になります。最後にVBAマクロ。Windowsのファイルシステム操作(FileSystemObject等)はMacでは動きません。
VBAで目次・スタイル・フィールドを自動化する実務コード集
⚠️ 重要以下のVBAコードを実行する前に、必ず対象のWordファイルのバックアップを取ってください。マクロによる変更は元に戻せない場合があります。実行は必ずバックアップが確認できた後に行ってください。
以下のコードは「開発タブ > Visual Basic」からVBEを開き、標準モジュールに貼り付けて使用します。開発タブが表示されていない場合は
ファイル > オプション > リボンのユーザー設定
から「開発」にチェックを入れてください。
コード1文書内の全目次を一括更新するマクロ
' ========================================
' マクロ名UpdateAllTOC
' 用途開いている文書内のすべての目次を一括更新する
' 動作確認済みWord 2016 / 2019 / 2021 / Microsoft 365(月次チャネル)
' 動作するバージョンWord 2013以降
' 動作しないバージョンWord 2010以前(理由TableOfContents.Updateメソッドの動作仕様が異なる)
' Mac対応対応(Word for Mac 2016以降)
' 実行方法開発タブ > マクロ > UpdateAllTOC > 実行
' 注意事項実行前に文書を保存しておくこと。読み取り専用の文書では動作しない
' ========================================
Sub UpdateAllTOC()
' エラーハンドリングの設定
On Error GoTo ErrorHandler
' 処理対象の文書を明示的に指定(ActiveDocumentに依存しない設計)
Dim targetDoc As Document
Set targetDoc = ActiveDocument
' 念のため文書が編集可能かを確認
If targetDoc.ProtectionType <> wdNoProtection Then
MsgBox "この文書は保護されています。目次の更新ができません。", vbExclamation, "保護文書エラー"
Exit Sub
End If
' 目次が存在するかを確認
If targetDoc.TablesOfContents.Count = 0 Then
MsgBox "この文書に目次が見つかりませんでした。", vbInformation, "目次なし"
Exit Sub
End If
' 画面更新を一時停止して処理を高速化
Application.ScreenUpdating = False
' すべての目次を順番に更新する
Dim toc As TableOfContents
Dim tocCount As Integer
tocCount = 0
For Each toc In targetDoc.TablesOfContents
' 目次を完全に更新(見出しテキスト・ページ番号の両方を更新)
toc.Update
tocCount = tocCount + 1
Next toc
' 画面更新を再開
Application.ScreenUpdating = True
' 完了メッセージを表示
MsgBox tocCount & "件の目次をすべて更新しました。", vbInformation, "更新完了"
Exit Sub
ErrorHandler:
' エラー発生時に画面更新を必ず再開してからメッセージを表示
Application.ScreenUpdating = True
MsgBox "エラーが発生しました(エラー番号" & Err.Number & ")" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub
コード2文書内のスタイル使用状況を診断するマクロ
「なぜか目次に余計なものが入る」「スタイルがぐちゃぐちゃな文書を引き継いだ」——そんなときに最初に使うのがこの診断コードです。どの段落にどのスタイルが当たっているかを一覧で出力します。
⚠️ 実行前に必ずファイルのバックアップを作成してください。このマクロは読み取り専用で診断を行いますが、実行前のバックアップは必須です。
' ========================================
' マクロ名DiagnoseStyles
' 用途文書内の全段落に適用されているスタイル名を新規文書に一覧出力する
' 動作確認済みWord 2016 / 2019 / 2021 / Microsoft 365(月次チャネル)
' 動作するバージョンWord 2013以降
' 動作しないバージョンWord 2010以前(理由一部プロパティの仕様変更)
' Mac対応対応(Word for Mac 2016以降)
' 実行方法開発タブ > マクロ > DiagnoseStyles > 実行
' 注意事項段落数が多い文書では処理に時間がかかる場合がある
' ========================================
Sub DiagnoseStyles()
On Error GoTo ErrorHandler
' Selectionではなく、明示的にTargetDocを指定する(複数文書が開いている場合の誤動作防止)
Dim targetDoc As Document
Set targetDoc = ActiveDocument
' 診断結果を書き込む新規文書を作成
Dim reportDoc As Document
Set reportDoc = Documents.Add
' 結果ドキュメントにタイトルを書き込む
reportDoc.Content.InsertAfter "【スタイル使用状況 診断レポート】" & vbCrLf
reportDoc.Content.InsertAfter "対象ファイル" & targetDoc.Name & vbCrLf
reportDoc.Content.InsertAfter "診断日時" & Now() & vbCrLf
reportDoc.Content.InsertAfter String(60, "-") & vbCrLf
reportDoc.Content.InsertAfter "段落番号" & vbTab & "スタイル名" & vbTab & "冒頭テキスト(30文字)" & vbCrLf
' 対象文書の全段落を走査する
Dim para As Paragraph
Dim paraIndex As Integer
paraIndex = 0
Application.ScreenUpdating = False
For Each para In targetDoc.Paragraphs
paraIndex = paraIndex + 1
' 段落番号、スタイル名、本文の冒頭30文字を取得
Dim paraText As String
paraText = para.Range.Text
' 改行コードを除去して表示
paraText = Replace(paraText, vbCr, "")
If Len(paraText) > 30 Then paraText = Left(paraText, 30) & "..."
' レポート文書に追記
reportDoc.Content.InsertAfter paraIndex & vbTab & _
para.Style.NameLocal & vbTab & _
paraText & vbCrLf
Next para
Application.ScreenUpdating = True
MsgBox "診断完了!" & paraIndex & "段落のスタイル情報を出力しました。", vbInformation, "診断完了"
Exit Sub
ErrorHandler:
Application.ScreenUpdating = True
MsgBox "エラーが発生しました(" & Err.Number & ")" & Err.Description, vbCritical, "エラー"
End Sub
コード3フォルダ内の複数docxを一括でPDF出力するマクロ
⚠️ 実行前に必ず対象フォルダのファイルをバックアップしてください。PDFファイルはdocxと同名で同一フォルダに出力されます。既存PDFは上書きされます。
' ========================================
' マクロ名BatchExportToPDF
' 用途指定フォルダ内のすべての.docxファイルを同フォルダにPDFで一括出力する
' 動作確認済みWord 2016 / 2019 / 2021 / Microsoft 365(月次チャネル)
' 動作するバージョンWord 2010以降(ExportAsFixedFormatはWord 2007以降で使用可能)
' 動作しないバージョンWord 2003以前(ExportAsFixedFormatが未サポート)
' Mac対応非対応(理由FileSystemObjectがMacのVBA環境では利用できない。
' Mac版はDir関数で代替可能だが動作未検証のため本コードでは除外)
' 実行方法開発タブ > マクロ > BatchExportToPDF > 実行
' 注意事項
' - 処理対象フォルダをダイアログで選択する
' - 各docxを開いて目次更新→PDF出力→閉じる の順で処理する
' - ファイル数が多い場合は処理時間がかかる
' - 実行中は他の操作をしないこと
' ========================================
Sub BatchExportToPDF()
On Error GoTo ErrorHandler
' フォルダ選択ダイアログを表示
Dim targetFolder As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "PDFに変換するdocxが入ったフォルダを選択してください"
If .Show = False Then
MsgBox "キャンセルされました。", vbInformation
Exit Sub
End If
targetFolder = .SelectedItems(1)
End With
' フォルダパスの末尾に区切り文字を付ける
If Right(targetFolder, 1) <> "\" Then targetFolder = targetFolder & "\"
' FileSystemObjectでフォルダ内のdocxを検索
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim docxCount As Integer
Dim successCount As Integer
docxCount = 0
successCount = 0
Application.ScreenUpdating = False
' フォルダ内のすべてのファイルを走査
Dim f As Object
For Each f In fso.GetFolder(targetFolder).Files
' .docxファイルのみ処理(一時ファイル「~$」は除外)
If LCase(Right(f.Name, 5)) = ".docx" And Left(f.Name, 2) <> "~$" Then
docxCount = docxCount + 1
' 対象ファイルを開く
Dim openedDoc As Document
Set openedDoc = Documents.Open(f.Path, ReadOnly:=False)
' 目次が存在する場合は更新してからPDF化する
If openedDoc.TablesOfContents.Count > 0 Then
Dim toc As TableOfContents
For Each toc In openedDoc.TablesOfContents
toc.Update
Next toc
End If
' PDF出力パスの生成(同フォルダ・同名でPDF拡張子)
Dim pdfPath As String
pdfPath = targetFolder & fso.GetBaseName(f.Name) & ".pdf"
' PDFとして出力
openedDoc.ExportAsFixedFormat _
OutputFileName:=pdfPath, _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, _
OptimizeFor:=wdExportOptimizeForPrint
' 保存せずに閉じる(元のdocxを変更しない)
' ⚠️ Document.Closeの前には必ずSaveChanges:=False または True を明示すること
' 省略するとWordが保存確認ダイアログを出して処理が止まる場合がある
openedDoc.Close SaveChanges:=False
successCount = successCount + 1
End If
Next f
Application.ScreenUpdating = True
MsgBox "処理完了!" & vbCrLf & _
"対象ファイル" & docxCount & "件" & vbCrLf & _
"PDF出力成功" & successCount & "件", vbInformation, "一括PDF出力完了"
Exit Sub
ErrorHandler:
Application.ScreenUpdating = True
If Not openedDoc Is Nothing Then
openedDoc.Close SaveChanges:=False
End If
MsgBox "エラーが発生しました(" & Err.Number & ")" & Err.Description & vbCrLf & _
"処理済みファイル数" & successCount & "件", vbCritical, "エラー"
End Sub
VBAの「やってはいけない危険地帯」3つ
危険地帯①Document.Close / Application.Quit の前に保存処理を省略するな
openedDoc.Closeの引数
SaveChangesを省略すると、Wordが「保存しますか?」ダイアログを出します。バッチ処理中にこれが出ると処理が止まり、最悪の場合そのまま放置されて次の作業者が混乱します。必ず
SaveChanges:=Trueか
SaveChanges:=Falseを明示してください。
危険地帯②Selectionを多用するコードはカーソル位置依存で誤動作する
Selection.Paragraphs(1).Style = "見出し1"のように書くと、マクロ実行時のカーソル位置によって全然違う段落が変更されます。必ず
Document.Paragraphs(n).Range.StyleのようにRangeオブジェクトを使ってください。上記のサンプルコードはすべてRangeベースで記述しています。
危険地帯③ActiveDocumentを前提にしたコードは複数文書が開いている場合に誤動作する
ActiveDocument.TablesOfContents(1).Updateと書くと、ユーザーが誤って別の文書をクリックしたタイミングで実行された場合に、意図しない文書の目次が更新されます。上記のコードでは必ず
Dim targetDoc As Document : Set targetDoc = ActiveDocumentと変数に代入してから操作しています。
Wordファイルが突然開けなくなった!緊急トラブル対応マニュアル
症状別・復旧手順ガイド
【症状A】「ファイルの内容に問題があるため開けません」というエラーが出る
原因の切り分けまず、そのファイルが.docxであることを確認します。次に、別のPCやWord for the Webで開けるかを試します。別環境で開けるならローカルのWordの問題、どこでも開けないならファイル自体の破損です。
復旧手順(軽度)
ファイル > 開く > ファイルを選択 > 開くボタンの右の矢印 > 開いて修復
を試します。これでWordが自動的にファイルの壊れた部分を修復しようとします。それでも開けない場合は、
ファイル > 開く
のファイル種類を「テキストの回復コンバーター(*.*)」に変更して開くと、書式は失われますがテキストだけは取り出せる場合があります。
復旧手順(重度).docxファイルは実はZIPファイルです。ファイルの拡張子を.zipに変更してエクスプローラーで開き、「word」フォルダ内の「document.xml」をメモ帳やNotepd++で開きます。テキストの中身は確認できます。XMLの破損箇所(大抵エラーメッセージに行番号が書かれています)を削除し、ZIPに戻して.docxに名前を変更する方法が、費用ゼロで最も確実な重度復旧手段です。
二度と起こさないための予防設定
ファイル > オプション > 保存
で「自動回復用データを保存する間隔」を5分に短縮し、「保存しないで終了する場合、最後に自動回復されたバージョンを残す」にチェックを入れます。自動回復ファイルの保存場所も確認しておきましょう(同画面で確認できます)。OneDriveやSharePointに保存している場合は「バージョン履歴」が自動で有効になるため、最も安全です。
NGな対処法ファイルをメールに添付して送り直してもらおうとする方がいますが、メール添付でも破損ファイルは同じです。また「ZIP展開して中身を直す」という正しい手順を「ZIPに圧縮する」と間違えて実施するケースもあります。.docxをZIPに変換するのではなく、.docxの拡張子をそのまま.zipに変更するのが正しい手順です。
現場で本当に起きた「あるある困った」解決集
困りごと1見出しを設定したのに目次に出てきたり出なかったりする
困った状況「全部同じように見出し1を設定したはずなのに、目次に入る章と入らない章がある。何度更新しても変わらない。」
なぜこれが起きるのかWordはXML内部で「スタイル名による見出し指定」と「アウトラインレベルによる見出し指定」の2系統を持っています。通常の操作では意識しませんが、以前に別のスタイルが当たっていた段落に見出しスタイルを上書きした場合、古いアウトラインレベル設定が残留して干渉することがあります。
応急処置
- 目次に入らない見出し段落をクリックする
-
ホームタブ > スタイルグループで「標準」を適用して書式をいったんリセット
- 改めて「見出し1」を適用する
- 目次を右クリック→「フィールドの更新」→「目次をすべて更新する」
根本解決(再発防止)段落の書式を手動でリセットするより確実なのは、VBAの診断コード(前述のDiagnoseStylesマクロ)で全段落のスタイルを一覧化し、不審なスタイルが当たっている段落を特定してから修正することです。Word 2019とMicrosoft 365で動作確認済みです。
NGな対処法目次を削除して手動でテキストを打ち直す。手間がかかるうえに本文との連動が失われるため、問題の根本解決になりません。
情シス視点のひとことぶっちゃけ、これが起きる文書の8割は「他のソフトから貼り付けた文章」が含まれています。PowerPointのノートやメモ帳の文章をCtrl+Vで貼り付けると、外部の書式情報が混入することがあります。貼り付けるときは
Ctrl+Shift+V
(テキストのみ貼り付け)を使う習慣をチームに広めるだけで、こうしたトラブルの発生率は劇的に下がります。
困りごと2差し込み印刷で一部の宛名だけ空白になる
困った状況「Excelのデータを差し込み印刷したら、100件中3件だけ宛名が空欄になって印刷された。Excelで確認したら名前は入っているのに。」
なぜこれが起きるのかExcelのセルにAlt+Enterで改行が入っていたり、スペースだけが入ったりしている場合、Wordはそれを「データあり」として読み込みますが、印刷上は空白に見えます。もうひとつのよくある原因は、Excelのセルに「=TEXT(A1,”@”)」のような数式が入っていてWordのMERGEFIELDが数式の結果ではなく数式テキストを読み取ってしまうケースです。
応急処置
- Excelで対象セルを開き、セル内をダブルクリックして不要な改行・スペースがないか確認
- ExcelでCtrl+Hを使って「Ctrl+J(改行コード)」を「空文字」に置換する
- Wordで差し込みフィールドを右クリック→「フィールドの更新」を実行
根本解決Excelのデータ整備段階で入力規則を設けて余分な改行・スペースが入らないようにすることが恒久対策です。また差し込み印刷前に「結果のプレビュー」機能(
差し込み文書タブ > 結果のプレビュー
)を使ってサンプルデータで全件確認する運用ルールを設けましょう。
NGな対処法Excelで空白行を手動で削除して再差し込み。原因の特定をせずに削除すると、どのデータが問題だったかがわからなくなり、同じ問題が繰り返されます。
情シス視点のひとこと差し込み印刷のトラブルはほぼExcel側の問題です。Word側で頑張るより「差し込み用Excelはこのルールで作る」という社内ルールを文書化しておく方が長期的には100倍楽です。特に日付列は「文字列として入力する」か「yyyy/mm/dd固定の書式で入力する」かをルール化するだけでトラブルが激減します。
困りごと3目次のページ番号が更新しても「1」のままになる
困った状況「目次を更新したのに、すべての項目のページ番号が『1』になってしまう。本文は正常に見えるのに。」
なぜこれが起きるのかこれはWordの内部でページ番号が正しく計算される前に目次の更新が実行されてしまうタイミング問題、または本文全体のページ番号設定(セクション設定)が崩れていることが原因です。特に「目次ページだけページ番号を振らない」という設定をした後に発生しやすいです。
応急処置
- 文書を一度保存して閉じる
- 再度開いてCtrl+Aで全選択し、F9キーで全フィールドを更新
- その後改めて目次を右クリック→「フィールドの更新」→「目次をすべて更新する」
根本解決セクション設定が崩れている場合は、
表示タブ > 下書き
表示に切り替えると「セクション区切り」が可視化されます。セクション区切りの位置とページ番号設定を確認し、意図しないセクション区切りが入っていれば削除します。その後、目次を削除して再挿入するのが最も確実です。
NGな対処法ページ番号を手動で打ち直す。目次のフィールドは次回更新時に自動生成された番号で上書きされるため、手入力した番号は消えます。
情シス視点のひとこと「ページ番号が全部1になる」問題を持ち込んでくる人の文書を見ると、高確率でセクション設定がぐちゃぐちゃになっています。ページ区切りと段落の末尾のEnterキーによる改ページが混在しているのが原因なんですよね。最初から「ページを分けるときは必ず挿入メニューからページ区切りを使う」と教えておけば、この問題のほとんどは起きません。
困りごと4他の人が作ったWordファイルを開いたら全部英語フォントになっていた
困った状況「同僚がMacで作ったWordファイルを自分のWindowsで開いたら、フォントが全部英語フォントに変わって見た目がガタガタになった。」
なぜこれが起きるのかMacでヒラギノフォントやOsaka等のMac固有フォントを使って作成した文書をWindowsで開くと、対応フォントが存在しないためWindowsが代替フォントに置き換えます。特にヒラギノ系はWindowsに標準で入っていないため、MSゴシック等に置き換えられてレイアウトが大きく崩れます。
応急処置
- Ctrl+Hで「書式の検索」を使い、崩れているフォントを選択
- 「置換」側に適切なWindowsフォント(游ゴシックや源ノ角ゴシック等)を指定して一括置換
根本解決チーム間で文書を共有するときは、Windows・Mac両対応のフォントを使うことをルール化します。游ゴシック・游明朝(Windows 8.1以降とMac OS X Yosemite以降に標準搭載)、またはNotoSans・Noto Serifは両OS対応のため安全です。社内テンプレートのフォントをこれらに統一するだけで互換性トラブルの9割が解消します。
NGな対処法PDFに変換して共有するという回避策は有効ですが、受け取った側が編集できなくなります。「編集できるファイルが必要」という要件がある場合は根本解決しかありません。
情シス視点のひとことこれ、現場ではMacユーザーが増えるたびに必ず発生するトラブルです。社内でMacを使っている人がひとりでもいるなら、今すぐ全社のWordテンプレートのフォントを游ゴシック・游明朝に変えることをお勧めします。一回やっておけば恒久対策になります。
困りごと5Wordを閉じたら「保存した」はずのデータが消えていた
困った状況「Ctrl+Sで保存したはずなのに、次に開いたら昨日の内容に戻っていた。OneDriveに保存していたのに。」
なぜこれが起きるのかOneDrive同期のタイミング問題、または「自動保存」がオフになっている状態でWordが正常終了せずクラッシュしたことが原因である場合が多いです。OneDriveが同期エラーを起こしていると、ローカルに保存された最新版がクラウドに反映されず、別のデバイスでは古い版が表示されることがあります。
応急処置
- OneDriveのアイコンを確認し同期エラーが起きていないかチェック
- Wordの
ファイル > 情報 > バージョン履歴を開き、最新の自動保存バージョンを確認
- 自動回復ファイルが残っていないか
ファイル > 開く > 最近使ったファイル > 保存されていない文書を回復から確認
根本解決Microsoft 365(サブスクリプション版)でOneDriveまたはSharePointに保存している場合は、タイトルバー左端の「自動保存」トグルをオンにしておくのが最も確実な対策です。これをオンにすると数秒ごとに自動保存されるため「Ctrl+Sし忘れ」や「クラッシュによるデータ消失」のリスクがほぼゼロになります。ただし永続ライセンス版(Word 2019/2021単体購入)では自動保存機能が使えないため、
ファイル > オプション > 保存 > 自動回復用データを保存する間隔
を5分に設定しておくことで被害を最小化します。
NGな対処法「Dropboxに保存すれば安全」という判断で無計画にDropboxに移行するのは危険です。Wordの自動保存機能はOneDrive/SharePointとの連携に最適化されており、Dropbox等のサードパーティクラウドでは自動保存トグルが使えないケースがあります。
情シス視点のひとことデータ消失の相談を受けるたびに確認するのですが、ほぼ全員が「自動保存がオフになっていることを知らなかった」か「OneDriveの同期エラーを無視していた」かのどちらかです。Microsoft 365を導入した際に、全員の自動保存をオンにする設定とOneDrive同期エラーの確認方法を周知するだけで、この手の相談は激減します。
ぶっちゃけこうした方がいい!
15年以上、社内のWord文書を管理し続けて、いろんな「なんでこうなるの!?」トラブルをサポートしてきました。そこで得た結論を正直に言います。
WordはExcelやPowerPointと根本的に設計思想が違います。Excelはセル、PowerPointはスライドという「箱」が主役です。でもWordは「テキストと書式の連続体」が主役で、スタイルという設計図を使って文書全体の見た目を統制する仕組みになっています。この違いを理解せずに「なんとなく動いている」状態で使い続けると、目次のトラブルに限らず、レイアウト崩れ、ファイルサイズ肥大、差し込み印刷の不具合など、あらゆる問題が発生します。
ぶっちゃけ、私が現場で一番効果的だと感じた解決策は「個人技でWordを使わせない」ことです。つまり、社内標準テンプレートを一回きちんと作って、全員にそのテンプレートから文書を作り始めるよう徹底すること。テンプレートの中に見出しスタイルを正しく設定しておけば、「見出しスタイルって何?」という人でも、テンプレートを使うだけで正しい構造の文書が自動的に作られます。
VBAについては「怖い・難しそう」と感じる方が多いですが、実は目次更新マクロのような使い捨てスクリプトを1本持っているだけで、30分かかっていた作業が30秒になります。コードを書く必要はなくて、今回紹介したようなコードをコピペして「開発タブのマクロから実行する」だけでいいんです。それで仕事が楽になるなら、覚える価値は十分あります。
最後にひとつだけ。Wordのトラブルで一番もったいないのは「バックアップを取っていなかったこと」による取り返しのつかないデータ消失です。どんな小さな文書でも、重要な作業をする前には必ず別フォルダに複製を作る習慣を持ちましょう。OneDriveのバージョン履歴とWord自動保存の組み合わせを運用に取り入れるだけで、「ファイルが消えた」という緊急電話は驚くほど減ります。それだけで、あなたの仕事も周りの仕事もずっと楽になるはずです。
Wordの目次の自動作成に関するよくある疑問を解決!
見出しスタイルを設定したのに目次に項目が出てこないのはなぜ?
最も多い原因は、見出しスタイルを設定した後に「目次の更新」を実行していないことです。目次はリアルタイムで変化を追いません。見出しを追加したら必ず目次の上で右クリック→「フィールドの更新」→「目次をすべて更新する」を実行してください。それでも出てこない場合は、実際にその段落にカーソルを置いてホームタブのスタイルを確認し、見出し1〜3が正しく適用されているかを再確認しましょう。
目次のページ番号がずれている、または全部同じ番号になってしまう
ページ番号が全部同じになってしまう場合は、ページ区切りではなく改行(Enterキー)で無理やりページを分けているケースが多いです。ページを分けるときは必ず「挿入」→「ページ区切り」を使いましょう。また、ページ番号がずれている場合は単純に目次の更新が必要なだけです。
F9
キーまたは「目次の更新」で解決します。
目次を更新したら行間がおかしくなった
目次を更新後に特定の行だけ行間が広がってしまうのは、目次のスタイルが崩れているサインです。「ユーザー設定の目次」から目次を作り直すか、目次全体を削除して「参考資料」→「目次」→「目次の削除」を実行し、改めて「自動作成の目次」を挿入し直すのが確実です。
目次に章番号(1-1、1-2など)を入れるには?
章番号付きの目次を作るには、見出し自体に段落番号(アウトライン番号)を設定する必要があります。「ホーム」→「アウトライン」から書式を選び、「新しいアウトラインの定義」で各レベルの番号形式を設定すると、見出しと目次の両方に「1-1」「1-2」のような番号が自動で付きます。
見出しスタイルを変えると目次のフォントも変わってしまうのはなぜ?
見出しと目次は見た目が連動している場合があります。見出しのフォントを変えても目次には反映させたくない場合は、「ユーザー設定の目次」→「変更」から目次専用のスタイル(TOC1・TOC2・TOC3)を個別に設定することで解決できます。見出しスタイルと目次スタイルは別々に管理できるので、見出しは太字でも目次は通常の太さにするといったカスタマイズが可能です。
目次を削除しても元に戻ってしまう
目次の中の特定のテキストをDeleteキーで削除しようとすると、更新のたびに復活してしまいます。これは目次がフィールド(自動生成される特殊な領域)として管理されているためです。目次を完全に消すには、「参考資料」→「目次」→「目次の削除」を選択するか、目次の上に表示されるアイコンメニューから「目次の削除」を実行してください。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Wordの目次が自動作成できない原因のほとんどは、見出しスタイルが正しく設定されていないか、目次の更新操作をしていないかのどちらかです。この2点を抑えるだけで、8割以上のトラブルは解決します。
改めてポイントを整理すると、見出しスタイル(見出し1〜3)を正しく設定すること、目次は「自動作成の目次1または2」から挿入すること、本文を修正したあとは必ず「目次の更新」を実行すること——この3ステップが目次作成の基本です。
さらに、ナビゲーションウィンドウの活用や印刷前の自動更新設定など、一度覚えてしまえば毎回の作業がぐっと楽になるテクニックも豊富にあります。報告書・マニュアル・会議資料・論文など、どんな文書でもWordの目次機能を正しく使えば、読む人にとっても作る人にとっても、格段に使いやすい文書が仕上がります。ぜひ今日から実践してみてください。






コメント