「word vba ヘッダー 奇数偶数ページ設定」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがあることに気づきました。
Wordでは[ページ設定]ダイアログ-[その他]タブ-[ヘッダーとフッター]欄-[奇数/偶数ページ別指定]チェックボックスをOnにすることなどで、
奇数ページと偶数ページのヘッダー・フッターを別に指定することができるようになります。
この操作をVBAで行う方法を探していたのが、
「word vba ヘッダー 奇数偶数ページ設定」
という検索です。
奇数ページと偶数ページで別のヘッダーを設定するサンプルマクロ
以下のようなWordマクロで、アクティブな文書の一つ目のセクションの、奇数ページと偶数ページに、別のヘッダーを設定できます。
With ActiveDocument.Sections(1)
.PageSetup.OddAndEvenPagesHeaderFooter = True
.Headers(wdHeaderFooterPrimary).Range.Text = "奇数ページ"
.Headers(wdHeaderFooterEvenPages).Range.Text = "偶数ページ"
End With
サンプルマクロで利用しているオブジェクトモデル
PageSetupオブジェクトのOddAndEvenPagesHeaderFooterという、何だか長いけれど、ちゃんと読むと英語をそのまま名前しただけのプロパティをTrueに設定すると、
奇数ページと偶数ページでヘッダーを別に設定することができるようになります。
ヘッダーを表すHeadersFootersコレクションオブジェクトの既定メソッドであるItemメソッドの引数に、
WdHeaderFooterIndex列挙に定義された定数・wdHeaderFooterPrimaryを指定すると、
プライマリーヘッダーを表すHeaderFooterオブジェクトを取得できます。PageSetupオブジェクトのOddAndEvenPagesHeaderFooterプロパティがOnになっていると、このプライマリーヘッダーが奇数ページのヘッダーとなります。
そんなプライマリーヘッダーに「奇数ページ」という文字列をセットしているのが、
.Headers(wdHeaderFooterPrimary).Range.Text = "奇数ページ"
という行です。
ヘッダーを表すHeadersFootersコレクションオブジェクトの既定メソッドであるItemメソッドの引数に、定数・wdHeaderFooterEvenPagesを指定すると、
その名前のとおり偶数ページのヘッダーを表すHeaderFooterオブジェクトを取得できます。
この偶数ページのヘッダーに「偶数ページ」という文字列をセットしているのが、
.Headers(wdHeaderFooterEvenPages).Range.Text = "偶数ページ"
の部分です。
Home » ワードマクロ・Word VBAの使い方 » ヘッダー&フッター » Word VBAで奇数ページと偶数ページで別のヘッダーを指定する