【VBAリファレンス】【VBAプロの技】Lesson40:ページ番号とヘッダー・フッターを自在に操る!印刷品質を劇的に向上させる自動化術

スポンサーリンク

皆さん、こんにちは!Excel VBA講師の〇〇です。
本日は、ビジネス文書作成において非常に重要でありながら、意外と手間がかかる「ページ番号とヘッダー・フッターの設定」について、VBAを使った自動化の極意をお伝えします。

皆さんはExcelで作成した資料を印刷する際、毎回手動でページ設定ダイアログを開き、ヘッダーやフッターに「ページ番号」「日付」「ファイル名」などを設定していませんか?たった数枚の資料であればまだしも、数十枚にわたる報告書や、複数のシートにまたがる資料を作成するたびにこの作業を繰り返すのは、非常に非効率的でミスの元にもなりかねません。

しかし、ご安心ください。VBAを使えば、これらの設定を瞬時に、そして正確に自動化することが可能です。一度マクロを作成してしまえば、あとはボタン一つで、プロフェッショナルな印刷設定が完了します。これにより、資料の品質向上はもちろん、皆さんの貴重な時間を大幅に節約することができるでしょう。

本レッスンでは、Excelの`PageSetup`オブジェクトを徹底的に掘り下げ、ページ番号の付与、ヘッダー・フッターへの情報挿入、さらにはフォントの書式設定や応用的な設定まで、幅広く解説していきます。さあ、一緒にVBAによる印刷自動化の世界へ飛び込みましょう!

なぜページ番号とヘッダー・フッターの設定が重要なのか

ビジネスシーンにおいて、印刷物はしばしば会社の顔となります。顧客への提案書、社内での報告書、会議資料など、どのような文書であれ、その体裁は受け取る側の印象に大きく影響します。

* **情報の整理と管理:** ページ番号が付与されていれば、資料の欠落を防ぎ、参照しやすくなります。日付やファイル名が記載されていれば、バージョン管理や検索が容易になります。
* **プロフェッショナリズムの演出:** 整然としたヘッダー・フッターは、作成者の細やかな配慮とプロ意識を伝えることができます。これにより、文書全体の信頼性が向上します。
* **法的・規則的要件:** 企業によっては、特定の情報(例: 機密区分、作成者名)を印刷物に含めることが義務付けられている場合があります。

これらの重要性を踏まえると、手動での設定は非効率的であり、VBAによる自動化はもはや必須のスキルと言えるでしょう。

Excelにおけるヘッダー・フッターの基礎知識

VBAでヘッダー・フッターを操作する前に、まずはExcelのヘッダー・フッターがどのように構成されているかを理解しておきましょう。

Excelのヘッダー(ページ上部)とフッター(ページ下部)は、それぞれ「左セクション」「中央セクション」「右セクション」の3つの領域に分かれています。これらの領域に、テキストや特殊コード(ページ番号、日付など)、さらには画像を挿入することができます。

VBAでは、シートの印刷設定を管理する`PageSetup`オブジェクトを通じて、これらのヘッダー・フッターを操作します。`PageSetup`オブジェクトは、特定のワークシートに紐づいており、以下のようにアクセスします。

‘ アクティブなシートのPageSetupオブジェクト
ActiveSheet.PageSetup

‘ 特定のシートのPageSetupオブジェクト
Worksheets(“シート名”).PageSetup

そして、ヘッダー・フッターの各セクションは、`PageSetup`オブジェクトの以下のプロパティに対応しています。

* `LeftHeader`: 左ヘッダー
* `CenterHeader`: 中央ヘッダー
* `RightHeader`: 右ヘッダー
* `LeftFooter`: 左フッター
* `CenterFooter`: 中央フッター
* `RightFooter`: 右フッター

これらのプロパティに文字列を代入することで、ヘッダー・フッターの内容を設定できます。

VBAでのヘッダー・フッター設定:基本編

それでは、実際にVBAを使ってヘッダー・フッターを設定してみましょう。まずは、最も基本的な設定から始めます。

基本的なコード例

以下のコードは、アクティブシートの中央ヘッダーに会社名、右フッターに「ページ番号 / 総ページ数」を設定する例です。

Sub SetBasicHeadersFooters()
‘ アクティブシートのPageSetupオブジェクトを操作
With ActiveSheet.PageSetup
‘ 中央ヘッダーに会社名を設定
.CenterHeader = “〇〇株式会社 内部資料”

‘ 右フッターに「ページ番号 / 総ページ数」を設定
‘ &P は現在のページ番号、&N は総ページ数を表す特殊コードです。
.RightFooter = “ページ &P / &N”
End With

‘ 設定が完了したことをユーザーに通知
MsgBox “基本的なヘッダーとフッターの設定が完了しました。”, vbInformation

‘ 印刷プレビューで確認する習慣をつけましょう
‘ ActiveWindow.SelectedSheets.PrintPreview
End Sub

このコードを実行すると、アクティブシートの印刷設定が変更され、印刷プレビューで確認できるようになります。`&P`や`&N`のような記号は「特殊コード」と呼ばれ、Excelが自動的に適切な値に置き換えてくれます。

頻繁に使う特殊コード一覧

ヘッダー・フッターで利用できる特殊コードは他にもたくさんあります。これらを活用することで、より動的で情報豊富なヘッダー・フッターを作成できます。

* `&P`: 現在のページ番号
* `&N`: 総ページ数
* `&F`: ファイル名(拡張子付き)
* `&A`: シート名
* `&D`: 現在の日付
* `&T`: 現在の時刻
* `&Z`: ファイルパス
* `&G`: 画像の挿入(VBAからは直接指定できませんが、概念として存在)

これらの特殊コードは、文字列の中に直接含めることができます。

フォントの書式設定

ヘッダー・フッターのテキストには、フォントの種類、サイズ、スタイル(太字、斜体など)も指定できます。VBAでは、特殊コードを使ってこれらの書式を設定します。

* `&”フォント名,フォントサイズ”`: フォントの種類とサイズを指定します。例: `&”MS Pゴシック,12″`
* `&B`: 太字(Bold)
* `&I`: 斜体(Italic)
* `&U`: 下線(Underline)
* `&S`: 取り消し線(Strikethrough)
* `&K`: フォント色(テーマカラーインデックスで指定。直接RGB値は難しい)

これらの書式設定は、適用したいテキストの直前に記述します。

Sub SetFormattedHeadersFooters()
With ActiveSheet.PageSetup
‘ 中央ヘッダーに会社名を太字14ptのMS Pゴシックで設定
‘ 文字列中にダブルクォーテーションを含める場合、Chr(34) を使用すると便利です。
.CenterHeader = “&B&” & Chr(34) & “MS Pゴシック,14” & Chr(34) & “〇〇株式会社 報告書”

‘ 左フッターにファイルパスとファイル名をArial 10ptで設定
.LeftFooter = “&” & Chr(34) & “Arial,10” & Chr(34) & “&Z&F”

‘ 右フッターに現在の日付と時刻を斜体で設定
.RightFooter = “&I&D &T”
End With
MsgBox “書式設定を含むヘッダーとフッターの設定が完了しました。”, vbInformation
End Sub

**ポイント:** VBAの文字列内でダブルクォーテーション`”`を記述したい場合、通常は`””`と二つ重ねてエスケープしますが、`Chr(34)`を使うとコードが読みやすくなることがあります。

VBAでのヘッダー・フッター設定:応用編

さらに高度な設定として、奇数/偶数ページで異なるヘッダー・フッターを設定したり、先頭ページのみ

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