VBAで印刷ページ設定のヘッダーとフッターを指定する

Excel-VBA 印刷

エクセルで作成した内容を印刷する時に、はみ出てしまったり、必要なところが印刷されていなかったりして失敗した経験ありませんか?

印刷ページ設定をVBAであらかじめ指定しておけば、共有パソコンや共有プリンターの環境でも失敗しないで印刷することができます。

スポンサーリンク

ヘッダー・フッターのページ設定

ここでは、ユーザーフォームに配置したコマンドボタンにVBAコードを書き、表示中のシートのページ設定(ActiveSheet)で記載しています。

シートを指定する場合はActiveSheetWorkSheets(“シート名”)に変えるだけです。

余白を指定する

用紙の上部と下部にタイトルやページ数など特に使用する事が無ければ、設定を「0pt」にして、余計な事柄を記載できないようにすることができます。

余白を無しに指定する

Private Sub CommandButton1_Click()
With ActiveSheet.PageSetup
.HeaderMargin = (0)
.FooterMargin = (0)
End With
End Sub

VBA解説
  1. コマンドボタン1がクリックされたら
  2. 表示中のシートのページ設定をする
  3. ヘッダーを0ptにする
  4. フッターを0ptにする
  5. Withステートメント終了
  6. マクロ記録終了

ヘッダーやフッターと並べて上下左右も一緒にVBAコードを書けば、全ての余白を同時に設定できますよ。

フッターにページ番号(自動連番)をつける

ページ番号をフッターに印刷すると、ページ番号は「1」から自動的に連番で付与されて印刷します。

一般的にページ番号は用紙の中央に表示されるので、ここでは中央フッターに表示するよう指定しています。

ページ番号をつける

Private Sub CommandButton1_Click()
ActiveSheet.PageSetup.CenterFooter = “&P”
End Sub

VBA解説
  1. コマンドボタン1がクリックされたら
  2. 表示中のシートのページ設定でフッターにページ数を中央に表示する
  3. マクロ記録終了
とりっぷぼうる
とりっぷぼうる

ページ数以外にも日付・時刻・ファイル名・シート名で表示することができます。

定数表示内容
&Pページ数
&D現在の日付
&T現在の時刻
&Fファイル名
&Aシート名

ヘッダー・フッターの表示位置の設定

ページ数をフッター中央に先ほど表示させましたが、ヘッダーにもフッターにも同じように表示させることができ、中央以外にも左寄せ・右寄せも可能なので、CenterFooterの部分を変更するだけです。

プロパティ表示位置プロパティ表示位置
LeftFooter左寄せフッターLeftHeader左寄せヘッダー
CenterFooter中央フッターCenterHeader中央ヘッダー
RightFooter右寄せフッターRightHeader右寄せヘッダー
スポンサーリンク

ページ番号自動付与の応用活用

フッター部分にページ番号を自動付与する機能をちょっと応用して、1ページ目から始めないで10ページ間から開始なんて事もできちゃうのです。

さらに、ページ表示方法を(現在ページ/総ページ数)というようにアレンジもできますので、下記ページに詳細を記載しましたのでご覧くださいませ。

印刷関連VBA
印刷
スポンサーリンク
参考になりましたらシェア宜しくお願い致します
Excel VBA