印刷においてヘッダーやフッターの設定は欠かせない場合が多いだろう。これを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.