エクセルVBAで用紙のヘッダー・フッターに情報を設定にする方法について解説しています。
<< エクセルVBAで印刷する用紙のサイズを設定する :前の記事
こちらでは、Sheetオブジェクトに含まれるPageSetupオブジェクトのLeftHeaderプロパティなどを利用して、用紙のヘッダー・フッターに情報を印刷する方法について解説しています。
プロパティとはオブジェクトの属性を指します。属性とは、そのオブジェクトの情報そのものです。プロパティはその値を取得したり、設定することもできます。プロパティを利用するにはオブジェクト名とプロパティ名の間に「.(ピリオド)」で結んで記述します。
オブジェクト名.プロパティ名
また、プロパティを設定する場合は以下のように「=(イコール)」を記述し設定値を代入します。
オブジェクト名.プロパティ名 = 設定値
こちらでは、LeftHeaderプロパティやLeftFooterプロパティを利用して用紙のヘッダー・フッターに情報を印刷する方法について解説します。
PageSetupオブジェクトのLeftHeaderプロパティは左側に配置するヘッダーを設定します。
PageSetupオブジェクトのCenterHeaderプロパティは中央に配置するヘッダーを設定します。
PageSetupオブジェクトのRightHeaderプロパティは右側に配置するヘッダーを設定します。
PageSetupオブジェクトのLeftFooterプロパティは左側に配置するフッターを設定します。
PageSetupオブジェクトのCenterFooterプロパティは中央に配置するフッターを設定します。
PageSetupオブジェクトのRightFooterプロパティは右側に配置するフッターを設定します。
今回のVBAコードは用紙のヘッダー・フッターに情報を印刷するマクロになります。
Sub sample()
With Sheets("Sheet1").PageSetup
.LeftHeader = "&F"
.CenterHeader = "&A"
.RightHeader = "&D"
.LeftFooter = "&T"
.CenterFooter = "&P"
.RightFooter = "&N"
End With
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
sampleプロシージャのSubステートメントに引数は設定されていません。まず、Withステートメントのオブジェクト名に「Sheets("Sheet1").PageSetup」を設定しました。これによりオブジェクト名を省略して記述できるようになりました。また、「Sheet1」シートオブジェクトに含まれるPageSetupオブジェクトをを設定することで、ページ設定属性(左余白、下余白、用紙サイズなど)のプロパティを利用できます。今回は用紙のヘッダー・フッターに情報を印刷するLeftHeaderプロパティやLeftFooterプロパティなどに「書式コード」が設定されていますので、処理を実行すると「Sheet1」シートの印刷する用紙のヘッダー・フッターに書式コードで設定した情報が印刷されます。最後はEndステートメントを利用してsampleプロシージャを終了させます。
尚、PaperSizeプロパティの書式コードは以下になります。
書式コード | 内容 |
---|---|
&L | このコードに続く文字列を左詰めに配置します。 |
&C | このコードに続く文字列を中央揃えに配置します。 |
&R | このコードに続く文字列を右詰めに配置します。 |
&E | 文字列を二重下線付きで印刷します。 |
&X | 上付き文字を印刷します。 |
&Y | 下付き文字を印刷します。 |
&B | 文字列を太字で印刷します。 |
&I | 文字列を斜体で印刷します。 |
&U | 文字列を下線付きで印刷します。 |
&S | 文字列を取り消し線付きで印刷します。 |
&D | 現在の日付を印刷します。 |
&T | 現在の時刻を印刷します。 |
&F | ファイルの名前を印刷します。 |
&A | シート見出し名を印刷します。 |
&P | ページ番号を印刷します。 |
&P+<数値> | ページ番号に指定した <数値> を加えた値を印刷します。 |
&P-<数値> | ページ番号から指定した <数値> を引いた値を印刷します。 |
&& | アンパサンド (&) を 1 つ印刷します。 |
& "<フォント名>" | 指定したフォントで文字を印刷します。フォント名は、必ず半角の二重引用符 (") で囲んでください。 |
&nn | 指定したフォント サイズで文字を印刷します。nn には、ポイント数を表す 2 桁の数値を指定します。 |
&N | ファイルのすべてのページ数を印刷します。 |
それぞれのプロパティの設定値は「"(ダブルクォーテーション)」の文字列で設定しますが、書式コードを複数組み合わせて設定することもできます。
以下の事例ではCenterFooterプロパティに「&P / &N」を設定しています。こちらは「ページ番号 / すべてのページ数」になりますので、総ページ数5ページの2ページを印刷する場合は、「2 / 5」が印刷されます。
Sub sample()
Sheets("Sheet1").PageSetup.CenterFooter = "&P / &N"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
今回は、Sheetオブジェクトに含まれるPageSetupオブジェクトのPaperSizeプロパティを利用して、用紙のヘッダー・フッターに情報を印刷する方法について解説しました。次回は、エクセルVBAでExcelの印刷範囲を設定する方法について解説します。
次の記事: エクセルVBAでExcelの印刷範囲を設定する >>
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
ExcelのVBAについてのQ&A掲示板↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。
VBAのIE操作入門↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。
こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。