【VBAリファレンス】Wordでページごとに異なるヘッダー・フッターを実現!高度な文書作成テクニック

スポンサーリンク

はじめに:文書作成におけるヘッダー・フッターの重要性

Wordで文書を作成する際、ヘッダーやフッターは、文書の統一感を保ち、ページ番号やタイトル、作成日などの情報を効果的に表示するために不可欠な要素です。しかし、報告書や論文、マニュアルなど、内容が複雑化するにつれて、特定のページ(例えば、目次ページ、章の開始ページ、付録など)でヘッダーやフッターの内容を変更したいというニーズが生じることがあります。

標準的なヘッダー・フッター設定では、文書全体で同じ内容が適用されるため、ページごとに異なる設定を行うには、少し高度なテクニックが必要となります。本記事では、Wordの「セクション区切り」機能を活用し、ページごとに異なるヘッダー・フッターを設定する方法を、初心者の方にも分かりやすく、かつ実践的に解説していきます。このテクニックを習得すれば、よりプロフェッショナルで、読者にとって分かりやすい文書作成が可能になります。

セクション区切りとは?ヘッダー・フッターとの関係性

Wordでページごとに異なるレイアウトや書式設定(ヘッダー・フッター、ページ番号、用紙の向きなど)を適用するには、「セクション区切り」という機能が鍵となります。セクション区切りを挿入すると、文書が「セクション」と呼ばれる独立したブロックに分割されます。各セクションは、その前後のセクションとは異なる書式設定を持つことができます。

ヘッダー・フッターは、このセクションごとに個別に設定することが可能です。デフォルトでは、新しいセクションを作成すると、そのヘッダー・フッターは前のセクションと「同じ」設定が引き継がれます。この「同じ」設定を解除し、セクションごとに異なるヘッダー・フッターを設定していくのが、本記事で紹介する基本的な流れとなります。

具体的な設定手順:セクション区切りを挿入し、ヘッダー・フッターを分ける

ここでは、実際にページごとに異なるヘッダー・フッターを設定する具体的な手順を、ステップバイステップで解説します。

ステップ1:セクション区切りの挿入

まず、ヘッダー・フッターを変更したいページの前で、セクション区切りを挿入します。

1. **カーソルを配置**: ヘッダー・フッターを変更したい**次**のページの先頭にカーソルを置きます。例えば、1ページ目と2ページ目でヘッダー・フッターを変えたい場合、2ページ目の先頭にカーソルを置きます。
2. **「レイアウト」タブを選択**: Wordのリボンメニューから「レイアウト」タブをクリックします。
3. **「区切り」グループの「区切り」ボタンをクリック**: 「区切り」ボタンをクリックし、ドロップダウンメニューから「セクション区切り」の下にある「次のページ」を選択します。

* **「次のページ」**: 新しいセクションを次のページから開始します。これが最も一般的なセクション区切りです。
* **「現在の位置」**: 現在のカーソル位置から新しいセクションを開始します。
* **「偶数ページ」/「奇数ページ」**: 次の偶数ページまたは奇数ページから新しいセクションを開始します。章の開始ページを偶数ページに揃えたい場合などに便利です。

これで、カーソルを置いた位置から新しいセクションが開始されました。目に見える変化はありませんが、文書の構造が分割されたことになります。

ステップ2:ヘッダー・フッターの編集と「前と同じ」の解除

セクション区切りを挿入したら、いよいよヘッダー・フッターを個別に設定していきます。

1. **ヘッダーまたはフッターの編集画面を開く**:
* ヘッダーを変更したい場合は、ページの上部余白をダブルクリックします。
* フッターを変更したい場合は、ページの下部余白をダブルクリックします。
* これにより、「ヘッダーとフッター」ツールが表示され、編集画面に入ります。

2. **「前と同じ」設定の解除**:
* 編集画面が表示されると、ヘッダー・フッターのツールリボンに「デザイン」タブが表示されます。
* この「デザイン」タブの中の「ナビゲーション」グループに、「前と同じ」というボタンがあります。
* **重要**: 新しいセクションのヘッダー・フッターを前のセクションと異なったものにしたい場合は、**この「前と同じ」ボタンをクリックして、解除(選択解除)状態にする必要があります。** ボタンが選択されている(背景が色付けされている)状態だと、前のセクションの設定が引き継がれます。

3. **ヘッダー・フッターの内容を編集**:
* 「前と同じ」を解除したら、そのセクションのヘッダー・フッターに、表示したいテキスト(例: 章タイトル、文書タイトル)やページ番号などを入力・設定します。
* ページ番号を挿入する場合は、「デザイン」タブの「ヘッダーとフッター」グループにある「ページ番号」から、挿入したい位置と書式を選択します。
* **注意**: ページ番号を「1」から再開したい場合は、「ページ番号」→「ページ番号の書式設定」を選択し、「開始番号」を「1」に設定します。

4. **他のセクションのヘッダー・フッターを設定**:
* 必要に応じて、他のセクション区切りで分割されたセクションについても、同様の手順で「前と同じ」を解除し、ヘッダー・フッターの内容を編集していきます。
* 例えば、1ページ目は表紙なのでヘッダー・フッターなし、2ページ目(目次)は文書タイトル、3ページ目以降は章タイトルとページ番号、というように細かく設定できます。

5. **編集画面を閉じる**: ヘッダー・フッターの編集が完了したら、「デザイン」タブの右端にある「ヘッダーとフッターを閉じる」ボタンをクリックするか、本文エリアをダブルクリックして編集画面を閉じます。

これで、ページごとに異なるヘッダー・フッターが設定されているはずです。

サンプルコード:VBAによるセクション区切りとヘッダー・フッター設定の自動化

手作業での設定は慣れれば簡単ですが、文書が長くなったり、頻繁にレイアウト変更が必要になったりする場合は、VBA(Visual Basic for Applications)を使った自動化も有効です。

ここでは、特定のページ(例:3ページ目)からヘッダー・フッターを変更するVBAコードの例を示します。このコードは、3ページ目の前にセクション区切りを挿入し、そのセクションのヘッダーを「章タイトル」、フッターを「ページ番号」に設定し、「前と同じ」を解除する処理を行います。

Sub SetDifferentHeaderFooter()

Dim doc As Document
Dim sec As Section
Dim currentPage As Integer

‘ 現在アクティブな文書を取得
Set doc = ActiveDocument

‘ ヘッダー・フッターを変更したいページの番号を指定 (例: 3ページ目)
‘ このコードでは、3ページ目の「前」である2ページ目の終わりにセクション区切りを挿入します。
‘ したがって、新しいセクションは3ページ目から始まります。
currentPage = 3

‘ 指定したページ番号の直前にセクション区切りを挿入
‘ まず、指定ページまでカーソルを移動させる
doc.ActiveWindow.Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=currentPage
‘ カーソル位置にセクション区切り(次のページ)を挿入
doc.Sections.Add Range:=Selection.Range, StartType:=wdSectionNewPage

‘ 新しいセクション(ここでは2番目のセクション)を取得
‘ セクションは0から始まるインデックスですが、Addメソッドで追加した場合は最後のセクションになります。
‘ ページ番号からセクションを特定するのは少し複雑なので、ここでは単純に最後のセクションを取得します。
‘ より正確には、挿入したセクションのRange.NextSectionプロパティなどを利用します。
‘ 簡単のため、ここではセクション2(インデックス1)と仮定します。
Set sec = doc.Sections(doc.Sections.Count) ‘ 追加された最後のセクション

‘ 「前と同じ」設定を解除
sec.PageSetup.DifferentFirstPageHeaderFooter = False ‘ これは最初のページのみ適用なので、ここでは関係ない
sec.PageSetup.OddAndEvenPagesHeaderFooter = False ‘ 奇数・偶数ページでヘッダー・フッターを分ける場合
sec.Headers(wdHeaderFooterPrimary).LinkToPrevious = False ‘ プライマリヘッダー(通常ヘッダー)を前のセクションから解除
sec.Footers(wdHeaderFooterPrimary).LinkToPrevious = False ‘ プライマリフッター(通常フッター)を前のセクションから解除

‘ 新しいセクションのヘッダーを設定
With sec.Headers(wdHeaderFooterPrimary)
.Range.Text = “章タイトル: ” & ActiveDocument.Content.Paragraphs(Selection.Paragraphs.First.Range.Paragraphs.Count).Range.Text ‘ 選択範囲の段落を章タイトルとする例(実際はもっと工夫が必要)
‘ または固定のテキストを設定
‘ .Range.Text = “新しい章のタイトル”
.Visible = True ‘ ヘッダーを表示
End With

‘ 新しいセクションのフッターを設定 (ページ番号を挿入)
With sec.Footers(wdHeaderFooterPrimary)
‘ ページ番号を挿入 (通常は右揃えが多い)
.Range.InsertParagraphAfter
.Range.Paragraphs.Last.Range.InsertAlignment = wdAlignParagraphRight
.Range.Paragraphs.Last.Range.InsertAfter “Page ”
.Range.Paragraphs.Last.Range.InsertBreak Type:=wdPageBreak ‘ ここは誤り。ページ番号を挿入する。
‘ 正しくは、ページ番号フィールドを挿入する
.Range.Paragraphs.Last.Range.Fields.Add Range:=Selection.Range, Type:=wdFieldPage ‘ ページ番号フィールドの挿入
.Visible = True ‘ フッターを表示
End With

‘ 最初のセクション(表紙など)のヘッダー・フッターを削除したい場合
‘ doc.Sections(1).Headers(wdHeaderFooterPrimary).Range.Delete
‘ doc.Sections(1).Footers(wdHeaderFooterPrimary).Range.Delete

‘ ヘッダー・フッターの編集画面を閉じる(VBAでは自動で閉じない場合があるため明示的に)
‘ Application.ActiveWindow.View.ShowHeader
‘ Application.ActiveWindow.View.ShowHeader = False ‘ ヘッダー表示をOFFにするわけではない。編集モードを終了するイメージ。

MsgBox “セクション区切りを挿入し、ヘッダー・フッターの設定を変更しました。”, vbInformation

End Sub

**コードの解説と注意点:**

* `ActiveDocument`: 現在開いているWord文書を指します。
* `Selection.GoTo`: 指定したページ番号へカーソルを移動させます。
* `doc.Sections.Add Range:=Selection.Range, StartType:=wdSectionNewPage`: 現在のカーソル位置に、次のページから始まる新しいセクションを挿入します。
* `doc.Sections(doc.Sections.Count)`: 追加された最新のセクションを取得します。
* `.LinkToPrevious = False`: このプロパティを `False` に設定することで、前のセクションからのヘッダー・フッターのリンクを解除し、独立した設定を可能にします。
* `sec.Headers(wdHeaderFooterPrimary)`: 現在のセクションの通常のヘッダー(Primary Header)を指します。
* `.Range.Text = “…”`: ヘッダーやフッターに挿入するテキストを指定します。
* `.Range.Fields.Add Range:=Selection.Range, Type:=wdFieldPage`: ページ番号フィールドを挿入します。

**VBAコード実行の注意点:**

* **マクロの有効化**: VBAコードを実行するには、Wordのセキュリティ設定でマクロが有効になっている必要があります。
* **セクション番号の特定**: `doc.Sections(doc.Sections.Count)` は追加されたセクションを取得しますが、文書構成によってはセクション番号(インデックス)の特定がより複雑になる場合があります。状況に応じて、`sec.Range.Start`, `sec.Range.End` などのプロパティでセクションの範囲を確認し、目的のセクションを特定する必要があります。
* **エラーハンドリング**: 実際の業務で利用する場合は、ページ番号が存在しない場合などのエラー処理を追加することを強く推奨します。
* **ページ番号の書式**: ページ番号の書式(例: I, II, III や a, b, c)や開始番号の変更は、VBAでも可能ですが、コードがやや複雑になります。必要に応じて手動での設定も検討してください。

実務アドバイス:ヘッダー・フッター設定を使いこなすためのヒント

* **「先頭ページのみ別指定」の活用**: 文書の1ページ目(表紙など)にヘッダー・フッターを表示したくない、あるいは異なる内容を表示したい場合、「ヘッダーとフッター」の「デザイン」タブにある「先頭ページのみ別指定」オプションをオンにすると便利です。これにより、1ページ目とそれ以降のページでヘッダー・フッターを完全に独立させることができます。
* **「奇数・偶数ページ別指定」の活用**: 専門書や論文などで、左ページと右ページでヘッダー・フッターの内容(例: 左ページに文書タイトル、右ページに章タイトル)を異なりさせたい場合は、「奇数・偶数ページ別指定」オプションをオンにします。これにより、奇数ページ用のヘッダー・フッターと偶数ページ用のヘッダー・フッターをそれぞれ個別に設定できるようになります。
* **プレビューで確認**: 設定を変更したら、必ず「印刷プレビュー」や「Webレイアウト表示」などで、意図した通りにヘッダー・フッターが表示されているかを確認しましょう。特に、セクション区切りを多く挿入した場合、予期しないレイアウトのずれが発生することがあります。
* **セクション区切りの削除**: 不要になったセクション区切りを削除すると、その区切り以降のセクションは前のセクションに統合されます。削除する際は、ヘッダー・フッターなどの書式設定がどのように変化するかを理解した上で行ってください。区切りを削除すると、その区切り以降のセクションに設定されていたヘッダー・フッターは、前のセクションの設定に上書きされるか、統合されたセクションの設定に統一されます。
* **テンプレートの活用**: 頻繁に異なるヘッダー・フッター設定が必要な文書を作成する場合は、あらかじめセクション区切りと基本的なヘッダー・フッター設定が施されたテンプレートを作成しておくと、作業効率が格段に向上します。

まとめ:高度な文書作成で差をつける

Wordでページごとに異なるヘッダー・フッターを設定するテクニックは、「セクション区切り」を理解し、活用することに集約されます。この機能を使えば、文書の構造を論理的に分割し、各セクションに合わせた柔軟なレイアウトを実現できます。

本記事で解説した手順を参考に、「先頭ページのみ別指定」や「奇数・偶数ページ別指定」といったオプションも組み合わせることで、より洗練された、プロフェッショナルな文書を作成することが可能になります。

最初は少し戸惑うかもしれませんが、一度習得してしまえば、Wordでの文書作成の幅が大きく広がるはずです。ぜひ、このテクニックをあなたの文書作成に活かしてください。VBAによる自動化も視野に入れることで、さらに効率的かつ高度な文書管理が可能になります。

タイトルとURLをコピーしました