「ワードvba フッター セクション 前と同じ」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。
複数のセクションに分かれている文書で、ヘッダー・フッターの設定を前と同じにするには、Word VBAでどのようなコードを書けばいいのかを探している方による検索です。
全セクションのヘッダー・フッターを前と同じにするサンプルマクロ
以下のようなWordマクロで、アクティブな文書の、すべてのセクションの、ヘッダーとフッターを前のセクションと同じにすることができます。
Dim sec As Section
For Each sec In ActiveDocument.Sections
Dim hdr As HeaderFooter
For Each hdr In sec.Headers
hdr.LinkToPrevious = True
Next hdr
Dim ftr As HeaderFooter
For Each ftr In sec.Footers
ftr.LinkToPrevious = True
Next ftr
End Sub
アクティブ文書の全セクションに対してループを回して、
For Each sec In ActiveDocument.Sections
各セクション内の、すべてのヘッダーに対してループを回し、
For Each hdr In sec.Headers
ヘッダーのLinkToPreviousプロパティをTrueに設定しています。
hdr.LinkToPrevious = True
続いて、各セクション内の、すべてのフッターに対してループを回し、
For Each ftr In sec.Footers
フッターのLinkToPreviousプロパティをTrueに設定しています。
ftr.LinkToPrevious = True
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オブジェクト
が、それぞれ取得できます。
このように、各セクションに合計6つのHeaderFooterオブジェクトが存在しているので、上記のマクロでは
ヘッダーのHeadersFootersコレクションオブジェクトに対して、
Dim hdr As HeaderFooter For Each hdr In sec.Headers
ループを回し、続いてフッターのHeadersFootersコレクションオブジェクトに対して、
Dim ftr As HeaderFooter For Each ftr In sec.Footers
ループを回しています。
最終更新日時:2024-04-12 12:39
- Newer:3C分析のスイートスポットをみつけるために使っている3つのツール
- Older:フォローアップ期間で質問できる点がいい
Home » ワードマクロ・Word VBAの使い方 » ヘッダー&フッター » Word VBAで全セクションのヘッダー&フッターを前と同じにする