【Excel VBA】印刷時のヘッダー・フッターを自由自在に設定する方法

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で印刷用のヘッダー・フッターを自動設定するには、以下のポイントを押さえることが重要です。

  1. **ActiveSheet.PageSetup**オブジェクトを操作の対象とする。
  2. 6つのプロパティ.LeftHeaderなど)に文字列を代入する。
  3. 日付やページ番号などの動的な情報は、&から始まる書式設定コードを活用する。

これらのコードをマスターすれば、手作業では設定が面倒な、統一感のあるプロフェッショナルな印刷設定を、ボタン一つでいつでも再現できるようになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次