印刷においてヘッダーやフッターの設定は欠かせない場合が多いだろう。これをVBAで実装できたら大変に便利だとは思わないだろうか。
ヘッダーやフッターの設定にはPageSetUpオブジェクトのプロパティ(表1)を使用する。
プロパティ名 | 説明 |
---|---|
LeftHeader | ブックまたはセクション内の左のヘッダーで、文字列の配置を取得または設定 |
CenterHeader | PageSetup オブジェクトでヘッダー情報を中央ぞろえにする |
RightHeader | 右側に配置されたヘッダーを設定 |
LeftFooter | ブックまたはセクション内の左のフッターで、文字列の配置を取得または設定 |
CenterFooterPicture | フッターの中央のセクションに表示する図を設定 |
CenterFooter | PageSetup オブジェクトでフッター情報を中央ぞろえにする |
RightFooter | ページの右端とフッターの右端の距離をポイント単位で設定 |
参考「PageSetup プロパティ (Excel) - MSDN」 |
では、図2にヘッダーやフッターを設定してみよう。マクロはリスト2のようになる。
Sub 印刷時に1ページに収める() With Worksheets("社員売上金額").PageSetup .Orientation = xlPortrait .Zoom = False .FitToPagesTall = 1 .FitToPagesWide = 1 .LeftHeader = "売上金額一覧" .CenterHeader = "&""Meirio UI""&B&18平成27年度年売上表" .LeftFooter = "&F:&A" .CenterFooterPicture.Filename = ActiveWorkbook.Path & "\Kyssロゴ.png" .CenterFooter = "&G" .RightFooter = "&P/&Nページ" End With Worksheets("社員売上金額").PrintPreview End Sub
この中で使用している「&」(アンパサンド)はヘッダーやフッター設定時に必要な記号「書式設定コード」だ。ヘッダーやフッター設定時に使用できる記号には表2のようなものがある。
使用できる記号 | 説明 |
---|---|
&E | 二重下線文字列 |
&X | 上付き文字 |
&Y | 下付き文字 |
&B | 太字 |
&I | 斜体 |
&U | 下線付き文字 |
&D | 現在の日付 |
&T | 現在の時刻 |
&F | ファイル名 |
&A | シートの見出し名 |
&P | ページ番号 |
&N | 総ページ数 |
&P+{数値} | ページ番号に{数値}を加算した値 |
&P-{数値} | ページ番号から{数値}を引いた値 |
&“フォント名” | 文字のフォント。フォント名は、半角の二重引用符(")でくくる |
&nn | フォントサイズ。ポイント数を表す2桁の数値をnnに設定 |
&G | 図を挿入する |
参考「Xl 2000: 挿入およびヘッダーとフッター内のテキストの書式設定」 |
以上の記号を参考にコードを見てみよう。
8行目は「フォント名」に「Meirio UI」を設定し、「太字」で「フォントサイズ」に「18」を設定していることを意味する。
9行目は「ファイル名」と「シートの見出し名」を「:」で区切って表示している。
11行目は、この記述の上に、「.CenterFooterPicture.Filename = ActiveWorkbook.Path & "\Kyssロゴ.png"」と記述して、取り込む画像を設定しているので、「画像を挿入する」という意味になる。
12行目は「ページ番号/総ページ数」という形式でページ番号を表示している。
Zoomプロパティは表を拡大・縮小して印刷する場合に設定する。Falseを設定した場合は拡大・縮小しない。拡大・縮小する場合は、次のように設定する。
.Zoom=150
すると、表は150%の拡大率で印刷される。Zoomプロパティを設定した場合は、FitToPagesTallやFitToPagesWide プロパティの値は無視されるので、注意してほしい。
実行すると、図3のように表示される。
Copyright © ITmedia, Inc. All Rights Reserved.