Excelで作成した帳票やレポートを印刷する際、各ページに「文書のタイトル」「日付」「ページ番号」「ファイル名」などを記載するヘッダーやフッターは欠かせません。これらの設定を手作業で行うのは手間がかかりますが、VBAを使えば定型的な設定をすべて自動化できます。
この記事では、PageSetup
オブジェクトを使い、VBAでヘッダーとフッターに文字列や動的な情報を設定する方法を、便利な書式設定コードの一覧と共に詳しく解説します。
PageSetupオブジェクトの基本
Excelの各ワークシートは、印刷に関するすべての設定(余白、印刷の向き、拡大縮小など)を管理する**PageSetup
オブジェクト**を持っています。ヘッダーとフッターに関する設定は、このオブジェクトが持つ以下の6つのプロパティで行います。
- ヘッダー (ページ上部)
.LeftHeader
.CenterHeader
.RightHeader
- フッター (ページ下部)
.LeftFooter
.CenterFooter
.RightFooter
これら6つの領域に、それぞれ文字列や特殊なコードを設定していきます。
ヘッダー・フッター設定のサンプルコード
まずは、これらのプロパティを使って実際にヘッダーとフッターを設定する基本的なVBAコードです。
Sub SetHeaderAndFooter()
' 現在アクティブなシートのページ設定を操作
With ActiveSheet.PageSetup
' --- ヘッダーの設定 ---
' 左側: 何も設定しない (空にする)
.LeftHeader = ""
' 中央: 文書のタイトルを太字で設定
.CenterHeader = "&B月次業務報告書"
' 右側: 現在の日付と時刻
.RightHeader = "&D &T"
' --- フッターの設定 ---
' 左側: ファイル名
.LeftFooter = "&F"
' 中央: ページ番号 (例: 1 / 3)
.CenterFooter = "&P / &N ページ"
' 右側: シート名
.RightFooter = "&A"
End With
MsgBox "ヘッダーとフッターの設定が完了しました。"
' 設定内容を印刷プレビューで確認
ActiveSheet.PrintPreview
End Sub
ヘッダー・フッターの書式設定コード一覧
ヘッダーやフッターの文字列には、&
(アンパサンド)から始まる特殊な書式設定コードを埋め込むことで、様々な動的情報や書式を適用できます。
コード | 説明 |
文字書式 | |
&B | 太字のオン/オフを切り替えます。 |
&I | 斜体のオン/オフを切り替えます。 |
&U | 一重下線のオン/オフを切り替えます。 |
&S | 取り消し線のオン/オフを切り替えます。 |
&"<フォント名>" | フォント名を指定します。(例: &"MS ゴシック" ) |
&<数値> | フォントサイズをポイント単位で指定します。(例: &14 ) |
&& | & の文字そのものを表示します。 |
日付・時刻 | |
&D | 現在の日付を挿入します。 |
&T | 現在の時刻を挿入します。 |
ファイル・シート情報 | |
&F | ファイル名を挿入します(パスは含まない)。 |
&A | ワークシート名を挿入します。 |
&Z | ファイルのフルパスとファイル名を挿入します。 |
ページ番号 | |
&P | 現在のページ番号を挿入します。 |
&N | 総ページ数を挿入します。 |
&P+<数値> | 現在のページ番号に指定した数値を足した数を表示します。 |
&P-<数値> | 現在のページ番号から指定した数値を引いた数を表示します。 |
図・その他 | |
&G | 図としてヘッダー/フッターを挿入します(ダイアログでの設定)。 |
&L , &C , &R | それぞれ左、中央、右のセクション内での文字揃え(内部利用)。 |
&E , &X , &Y | それぞれ二重下線、上付き、下付き(一部バージョンで利用)。 |
Google スプレッドシートにエクスポート
コードを使った具体的な設定例
上記のコードを組み合わせることで、より複雑な書式設定が可能です。
' 例1: ファイル名を太字、シート名を標準で表示
.LeftHeader = "&B&F&B / &A" ' &Bで太字ON、次の&Bで太字OFF
' 例2: ゴシック体、14ポイントでタイトル表示
.CenterHeader = "&""MS ゴシック""&14重要レポート"
' 例3: 現在のページ番号に10を足した数を表示
.RightFooter = "管理番号: &P+10"
まとめ
Excel VBAで印刷用のヘッダー・フッターを自動設定するには、以下のポイントを押さえることが重要です。
- **
ActiveSheet.PageSetup
**オブジェクトを操作の対象とする。 - 6つのプロパティ(
.LeftHeader
など)に文字列を代入する。 - 日付やページ番号などの動的な情報は、
&
から始まる書式設定コードを活用する。
これらのコードをマスターすれば、手作業では設定が面倒な、統一感のあるプロフェッショナルな印刷設定を、ボタン一つでいつでも再現できるようになります。