「ワードvba フッター セクション 前と同じ」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
複数のセクションに分かれている文書で、ヘッダー・フッターの設定を前と同じにするには、Word VBAでどのようなコードを書けばいいのかを探している方による検索です。
全セクションのヘッダー・フッターを前と同じにするサンプルマクロ
以下のようなWordマクロで、アクティブな文書の、すべてのセクションの、ヘッダーとフッターを前のセクションと同じにすることができます。
Dim sec As Section
Dim hd_ft As HeaderFooter
For Each sec In ActiveDocument.Sections
For Each hd_ft In sec.Headers
hd_ft.LinkToPrevious = True
Next
hd_ft.LinkToPrevious = True
Next
Next sec
End Sub
アクティブ文書の全セクションに対してループを回して、
For Each sec In ActiveDocument.Sections
各セクション内の、すべてのヘッダーに対してループを回し、
For Each hd_ft In sec.Headers
ヘッダーのLinkToPreviousプロパティをTrueに設定しています。
hd_ft.LinkToPrevious = True
続いて、各セクション内の、すべてのフッターに対してループを回し、
For Each hd_ft In sec.Headers
フッターのLinkToPreviousプロパティをTrueに設定しています。
hd_ft.LinkToPrevious = True
もし、フッターだけを前と同じにしたいのなら、
For Each hd_ft In sec.Headers
ではじまるヘッダーのループ処理を削除して
For Each hd_ft In sec.Footers
ではじまるフッターのループ処理だけにしてください。
HeaderFooterオブジェクトについて
オブジェクトブラウザーで確認すると、Sectionオブジェクトには、
Headersプロパティと、
Footersプロパティが存在しますが、
上図のとおり、いずれもHeadersFootersコレクションオブジェクトを返します。
ヘッダーとフッターは別に扱うこともできるので、HeadersコレクションオブジェクトとFootersコレクションオブジェクトが用意されていてもいいように感じますが、HeadersFootersコレクションオブジェクトとなっています。
HeadersFottersは、HeaderFooterオブジェクトを個々のオブジェクトとして持つコレクションオブジェクトです。
個々のHeaderFooterオブジェクトに何が含まれているのかを疑問に持つ方も多いでしょう。
HeadersFottersコレクションオブジェクトの、Itemプロパティには、WdHeaderFooterIndex列挙型の、
定数を指定できます。
具体的には、
wdHeaderFooterEvenPages
wdHeaderFooterFirstPage
wdHeaderFooterPrimary
という3つの定数が用意されています。
この定数の名前から想像できるとおり、
wdHeaderFooterEvenPagesを指定すれば
偶数ページのHeaderFooterオブジェクト
wdHeaderFooterFirstPageを指定すれば
セクションの1ページ目のHeaderFooterオブジェクト
wdHeaderFooterPrimaryを指定すれば
主たるHeaderFooterオブジェクト
が、それぞれ取得できます。
このように、各セクションに3つのHeaderHooterオブジェクトが存在しているので、上記のマクロでは
ヘッダーのHeadersHootersコレクションオブジェクトに対して、
For Each hd_ft In sec.Headers
ループを回し、続いてフッターのHeadersHootersコレクションオブジェクトに対して、
For Each hd_ft In sec.Footers
ループを回しています。
- Newer:3C分析のスイートスポットをみつけるために使っている3つのツール
- Older:フォローアップ期間で質問できる点がいい
Home » ワードマクロ・Word VBAの使い方 » ヘッダー・フッター » Word VBAでヘッダー・フッターを前と同じにする