Excel印刷でイライラしないためのマクロ基本Tips:Excelマクロ/VBAで始める業務自動化プログラミング入門(11)(2/4 ページ)
途中で切れて2ページ目にずれ込まないように表を1ページに収める方法、印刷時に繰り返し出したいヘッダーやフッターのさまざまな設定、改ページによるずれ込みを防ぐための「印刷範囲」の固定、「印刷タイトル」(見出し)の固定、「印刷プレビュー」の表示、印刷の実行方法などを解説【Windows 10、Excel 2016に対応】。
印刷時に繰り返し出したい「ヘッダー」「フッター」のさまざまな設定
印刷においてヘッダーやフッターの設定は欠かせない場合が多いだろう。これを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プロパティ
Zoomプロパティは表を拡大・縮小して印刷する場合に設定する。Falseを設定した場合は拡大・縮小しない。拡大・縮小する場合は、次のように設定する。
.Zoom=150
すると、表は150%の拡大率で印刷される。Zoomプロパティを設定した場合は、FitToPagesTallやFitToPagesWide プロパティの値は無視されるので、注意してほしい。
実行結果
実行すると、図3のように表示される。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Excelマクロ/VBAリファレンス用途別・キーワード別一覧超まとめ
- ピボットテーブルとは何か──「そもそも、何をする機能か」を理解する
Excelを通じて「ピボットテーブル」の基礎を学び、データ分析を実践するまでを習得する本連載。初回はピボットテーブルの基礎と、「どんなことができるのか」を解説する。 - どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみよう。