Excel印刷でイライラしないためのマクロ基本TipsExcelマクロ/VBAで始める業務自動化プログラミング入門(11)(2/4 ページ)

» 2016年09月15日 05時00分 公開
[薬師寺国安PROJECT KySS]

印刷時に繰り返し出したい「ヘッダー」「フッター」のさまざまな設定

 印刷においてヘッダーやフッターの設定は欠かせない場合が多いだろう。これをVBAで実装できたら大変に便利だとは思わないだろうか。

ヘッダーやフッターの設定に使う、さまざまなプロパティ

 ヘッダーやフッターの設定にはPageSetUpオブジェクトのプロパティ(表1)を使用する。

表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 ヘッダーとフッターの設定(先のリスト1にヘッダーとフッターの設定を追加)

ヘッダーやフッター設定時に使用できる「書式設定コード」

 この中で使用している「&」(アンパサンド)はヘッダーやフッター設定時に必要な記号「書式設定コード」だ。ヘッダーやフッター設定時に使用できる記号には表2のようなものがある。

表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プロパティ

 Zoomプロパティは表を拡大・縮小して印刷する場合に設定する。Falseを設定した場合は拡大・縮小しない。拡大・縮小する場合は、次のように設定する。

.Zoom=150

 すると、表は150%の拡大率で印刷される。Zoomプロパティを設定した場合は、FitToPagesTallやFitToPagesWide プロパティの値は無視されるので、注意してほしい。

実行結果

 実行すると、図3のように表示される。

図3 ヘッダーやフッターが設定され、画像も張り付けられて表示された

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。