なぜVBAでヘッダー・フッターを設定するのか?
実務で作成する帳票や資料において、ヘッダー・フッターは「誰が」「いつ」「何の資料を」作成したのかを証明する重要な要素です。しかし、複数シートを手動で設定するのは手間がかかり、設定ミスも起こりやすいものです。VBAを使えば、ボタン一つで全シートに統一したヘッダー・フッターを一括設定でき、業務効率と品質を劇的に向上させることが可能です。
基礎知識:PageSetupオブジェクトの理解
Excel VBAでは、印刷に関する設定はPageSetupオブジェクトで行います。ヘッダーやフッターを設定する場合、主に以下のプロパティを使用します。
LeftHeader / CenterHeader / RightHeader:ヘッダーの左・中央・右部分
LeftFooter / CenterFooter / RightFooter:フッターの左・中央・右部分
これらに文字列を代入しますが、特殊な情報(ページ番号や日付など)を表示させるには、VBA専用の「書式コード」を使用します。
・&P :ページ番号
・&N :総ページ数
・&D :現在の日付
・&T :現在の時刻
・&F :ファイル名
・&A :シート名
実装のポイント
ヘッダー・フッターを設定する際は、ActiveSheet.PageSetup または特定のWorksheets(“シート名”).PageSetup を指定します。また、コードをすっきりとさせるために、Withステートメントを利用するのが定石です。
サンプルプログラム:ヘッダーとフッターを一括設定する
以下のコードは、現在アクティブなシートに対して、左側に「会社名」、中央に「シート名」、右側に「日付とページ番号」を設定する実用的なサンプルです。
Sub SetHeaderFooter()
‘ ページ設定を操作するためにPageSetupオブジェクトを使用
With ActiveSheet.PageSetup
‘ ヘッダーの設定
.LeftHeader = “株式会社〇〇 経理部” ‘ 左側に文字列
.CenterHeader = “&A” ‘ 中央にシート名(書式コード使用)
.RightHeader = “&D &T” ‘ 右側に日付と時刻
‘ フッターの設定
.LeftFooter = “機密情報” ‘ 左側に注釈
.CenterFooter = “- &P / &N -” ‘ 中央に「1 / 10」のようなページ形式
.RightFooter = “ファイル名: &F” ‘ 右側にファイル名
End With
MsgBox “ヘッダーとフッターの設定が完了しました。”
End Sub
応用・注意点
1. 書式コードの連結: 「&D &T」のように、書式コードの間にスペースを入れることで、印刷時も適度な間隔が確保されます。
2. 全シートへの適用: もしブック内の全シートに適用したい場合は、For Each ws In Worksheets ループを使用して、ws.PageSetup を設定するように書き換えてください。
3. 既存設定のクリア: ヘッダー・フッターを初期化したい場合は、プロパティに空文字(””)を代入すればOKです。
4. プレビュー確認: VBAで設定した後は、必ず「印刷プレビュー」で意図した位置に正しく表示されているか確認する癖をつけましょう。
VBAで設定を自動化しておけば、修正依頼が来ても即座に対応できます。ぜひ現場の帳票作成プロセスに組み込んでみてください。
