Wordの文書作成で、ヘッダーやフッターに日付やページ番号、ファイル名などを自動で挿入したいと思ったことはありませんか?特に、毎回手動で入力するのは面倒ですよね。そんなときに役立つのが、Word VBA(マクロ)です。
今回は、初心者の方でもわかりやすいように、Word VBAを使ってヘッダーやフッターを設定する方法を、実際のコードとともに解説します。
ヘッダー・フッターの基本
まず、ヘッダーとフッターの違いを簡単におさらいしましょう。
- ヘッダー文書の上部に表示される部分で、通常は章タイトルや文書タイトルなどを記載します。
- フッター文書の下部に表示される部分で、ページ番号や作成日などを記載します。
これらは、文書全体またはセクションごとに設定できます。VBAを使うことで、これらの設定を自動化できます。
VBAでヘッダー・フッターを設定する基本的なコード
以下のコードは、文書の最初のセクションのヘッダーとフッターに、それぞれファイル名とページ番号を挿入する例です。
Sub ヘッダーとフッターを設定する()
' ヘッダーにファイル名を挿入
With ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)
.Range.Fields.Add Range:=.Range, Type:=wdFieldFileName
.Range.InsertBefore Text:="ファイル名"
.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Range.Underline = wdUnderlineSingle
End With
' フッターにページ番号を挿入
With ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary)
.Range.Text = "ページ数/全ページ数"
.Fields.Add Range:=.Words(1), Type:=wdFieldPage
.Fields.Add Range:=.Words(3), Type:=wdFieldNumPages
.Paragraphs.Alignment = wdAlignParagraphCenter
End With
End Sub
このコードを実行すると、ヘッダーに「ファイル名」と現在のファイル名が挿入され、フッターには「ページ数/全ページ数」という形式でページ番号が挿入されます。
セクションごとの設定
Wordでは、文書をセクションに分けて、それぞれに異なるヘッダーやフッターを設定することができます。例えば、目次のページだけヘッダーを変更したい場合などに便利です。
以下のコードは、すべてのセクションのヘッダーとフッターを、前のセクションと同じ内容に設定する例です。
Sub セクションのヘッダーとフッターを統一する()
Dim sec As Section
For Each sec In ActiveDocument.Sections
sec.Headers(wdHeaderFooterPrimary).LinkToPrevious = True
sec.Footers(wdHeaderFooterPrimary).LinkToPrevious = True
Next sec
End Sub
このコードを実行すると、すべてのセクションのヘッダーとフッターが、前のセクションと同じ内容になります。
ページごとの設定
さらに、ページごとにヘッダーやフッターを変更することもできます。例えば、奇数ページと偶数ページで異なるヘッダーを設定したい場合などです。
以下のコードは、奇数ページと偶数ページで異なるヘッダーを設定する例です。
Sub 奇数偶数ページでヘッダーを変更する()
With ActiveDocument.PageSetup
.OddAndEvenPagesHeaderFooter = True
End With
With ActiveDocument.Sections(1)
.Headers(wdHeaderFooterOddPages).Range.Text = "奇数ページのヘッダー"
.Headers(wdHeaderFooterEvenPages).Range.Text = "偶数ページのヘッダー"
End With
End Sub
このコードを実行すると、奇数ページには「奇数ページのヘッダー」、偶数ページには「偶数ページのヘッダー」が表示されます。
よくある質問や疑問
Q1: VBAのコードをどこに入力すればいいですか?
Wordを開き、「Alt + F11」を押してVBAエディタを開きます。左側の「VBAProject(あなたの文書名)」を右クリックし、「挿入」→「モジュール」を選択します。開いたモジュールに上記のコードを貼り付けて実行できます。
Q2: セクションごとに異なるヘッダーを設定するにはどうすればいいですか?
セクションごとに異なるヘッダーを設定するには、各セクションの「LinkToPrevious」プロパティをFalseに設定し、それぞれのセクションに対してヘッダーの内容を設定します。
Q3: ページ番号の形式を変更するにはどうすればいいですか?
ページ番号の形式を変更するには、フィールドコードを使用します。例えば、ローマ数字でページ番号を表示するには、”PAGE * roman”のように指定します。
まとめ
Word VBAを使うことで、ヘッダーやフッターの設定を自動化し、文書作成の効率を大幅に向上させることができます。初心者の方でも、上記のコードを参考にして、少しずつ自分の文書に合わせた設定を試してみてください。
他にも疑問やお悩みがあれば、お気軽にLINEからお声掛けください。



コメント