Wordの目次を手動で更新するには、目次を右クリックしてフィールド更新を選択します。
これだと更新を忘れるという心配があります。
そこでマクロを使って文書を開いたときに自動的に目次を更新する方法を考えました。Word2007で確認しました。
コードは次の通りです。
Private Sub Document_Open()
For Each t In ActiveDocument.TablesOfContents
t.Update
Next
End Sub
For Each t In ActiveDocument.TablesOfContents
t.Update
Next
End Sub
「Document_Open」を使って文書を開いたときに実行します。
「TablesOfContents」が目次を表すオブジェクト(のコレクション)です。
通常、目次は一つの文書に一つしかないでしょうが、念のため、複数の目次があっても対応できるようにしました。
なお、このコードを利用する手順は次の通りです。
- Alt+F11で、VisualBasicエディタを開く。
- プロジェクトエクスプローラの該当するファイル(プロジェクト)のThisDocumentをダブルクリック。
- コードの上部左側のオブジェクトボックスからDocumentを選択。
- 右側のプロシージャボックスからOpenを選択。ここにコードを書く。
コメント