エクセルのページ設定【 VBAを使ってページ設定を自動化 】
エクセル業務でページ設定をする作業はとても重要ですが、意外とこの設定をしっかり行わずに業務を進めてしまっている人って多いですよね。
ページ設定をしっかりしないと、作った資料を印刷しようとしたときにキレイに印刷できないことがある。
・A4用紙に印刷したいのに、うまく調整できない
・印刷しようとしたら、どうしてもはみ出てしまう
・余白がバラバラな資料ができてしまう
ページ設定はエクセルで資料を作るとき、はじめにやるべき重要な作業です。この作業をVBAを使って自動化してしまえば作業効率が格段に上がり、さらにとてもキレイな資料を作ることができるようになります。
目次
PageSetup オブジェクト
VBAを使ったページ設定には必ずPageSetupオブジェクトを使用します。
基本構造
ActiveSheet.PageSetup.プロパティ=設定値
基本的な使い方は上記のようなプログラムを記載します。プロパティや設定値一覧を変更することによって、より細かいページ設定を行うことが出来るようになる。
よく使われる3つのプロパティを紹介します。
ページ設定① 「ページ」
プロパティ・設定値一覧
Orientation | 印刷の向きを指定(縦:xlPortrait , 横:xlLandscape) |
Zoom | 拡大縮小印刷(10~400の数字) |
FitToPageWide | 次のページ数に合わせて印刷(横) |
FitToPageTall | 次のページ数に合わせて印刷(縦)/td> |
PageSize | 用紙サイズ(xlpaperA4 , xlpaperA3 , …) |
FirstPageNumber | 先頭ページ番号(整数) |
サンプル
1 | Sub テスト() |
2 | '印刷横向き |
3 | ActiveSheet.PageSetup.Orientation=xlLandscape |
4 | '用紙サイズをA3用紙指定 |
5 | ActiveSheet.PageSetup.PageSize=xlPaperA3 |
6 | '拡大縮小の設定(2倍に拡大) |
7 | ActiveSheet.PageSetup.Zoom=200 |
8 | End Sub |
ページ設定② 「余白」
プロパティ・設定値一覧
TopMargin | 上余白の大きさを指定 |
HeaderMargin | ヘッダーの余白の大きさを指定 |
LeftMargin | 左余白の大きさを指定 |
RightMargin | 右余白の大きさを指定 |
BottomMargin | 下余白の大きさを指定 |
FooterMargin | フッターの余白の大きさを指定 |
CenterHorizontally | 印刷時のシートのページレイアウトの設定を、水平方向の中央寄せ(余白を除く)にします。設定値はTrueまたはFalse |
CenterVertically | 印刷時のシートのページレイアウトの設定を、垂直方向の中央寄せ(余白を除く)にします。設定値はTrueまたはFalse |
大きさ単位指定
余白の大きさは、1ポイント = 約0.0353cm = 1/72インチ です。
大きさを表す単位が3種類もあるので、しっかりと単位の宣言をする必要があります。
ポイント設定
PageSetup . プロパティ = 数字
インチ設定
PageSetup . プロパティ = Application.InchesToPoints(数字)
センチ設定
PageSetup . プロパティ = Application.CentimetersToPoints(数字)
サンプル
1 | Sub 大きさ() |
2 | '上余白が1ポイントのページ設定 |
3 | Activesheet.PageSetup.TopMargin = 1 |
4 | '右余白が1インチのページ設定 |
5 | Activesheet.PageSetup.RightMargin = Application.Application.InchesToPoints(1) |
6 | 左余白が1センチのページ設定 |
7 | Activesheet.PageSetup.LeftMargin = Application.CentimetersToPoints(1) |
ページ設定③ 「ヘッダー/フッター」
プロパティ・設定値一覧
CenterHeader | 「VBAコード」と「書式コード」の組み合わせによって、ヘッダーを真ん中に設定 |
LeftHeader | 「VBAコード」と「書式コード」の組み合わせによって、ヘッダーを左側に設定 |
RightHeader | 「VBAコード」と「書式コード」の組み合わせによって、ヘッダーを右側に設定 |
CenterFooter | 「VBAコード」と「書式コード」の組み合わせによって、フッターを真ん中に設定 |
LeftFooter | 「VBAコード」と「書式コード」の組み合わせによって、フッターを左側に設定 |
RightFooter | 「VBAコード」と「書式コード」の組み合わせによって、フッターを右側に設定 |
VBAコード一覧
&P | ページ番号 |
&N | 総ページ数 |
&D | 日付 |
&T | 時刻 |
&Z | ファイルパス |
&F | ファイル名 |
&A | シート名 |
&G | 画像イメージ |
書式コード一覧
&"フォント名" | フォント指定 |
&I | スタイル(斜体) |
&B | スタイル(太字) |
&整数 | 文字サイズ(2桁の整数を入力) |
&U | 文字にアンダーラインを引く |
&E | 文字に二重アンダーラインを引く |
&S | 文字に取り消し線を引く |
&X | 上付文字にする |
&Y | 下付き文字にする |
&L | 文字の配置を左詰めにする |
&C | 文字の配置を中央揃えにする |
&R | 文字の配置を右詰めにする |
サンプル
1 | Sub ヘッダフッタ設定 |
2 | '日付と時間を真ん中のフッターに記載 |
3 | ActiveSheet.PageSetup.CenterFooter = “日時 &D &T" |
4 | ファイル名を真ん中のヘッダーに記載 |
5 | ActiveSheet.PageSetup.CenterHeader = “&12&F" |
6 | 'フォントサイズが22で「111ページ」というテキストを左側フッターに記載 |
7 | ActiveSheet.PageSetup.LeftFooter = “&22 111ページ" |
8 | フォントの種類・サイズを指定して「55番」というテキストを右側ヘッダーに記載 |
9 | ActiveSheet.PageSetup.RightHeader = “&""Ms P明朝""&22 55番" |
注意事項① フォント名の指定
フォント名を指定するときは「"」の数と記載する位置に注意が必要です。
上記サンプルを使って説明します
上記サンプル9行目
“&""フォント名""入力事項"
・「入力事項」のフォント名を変更したい場合、「入力事項」の前に記載する
・「&」と「フォント名」の両方を"(ダブルクォーテーションマーク)で挟む
注意事項② フォントサイズの指定
フォントサイズの指定をするときは、「スペース」を記載する位置に注意が必要です。
上記のサンプルを使って説明します
上記サンプル5行目
“&22テキスト(先頭に数字なし)"
上記サンプル5行目
“&22 テキスト(先頭に数字あり)"
入力したいテキストの先頭が数字なのか、数字ではないのかでスペースが必要か必要でないかが変わる!
VBAによるページ設定でエクセル作業の効率が格段にアップする
ページ設定はキレイな書類作りには欠かせない重要な作業です。
・資料の印刷は縦にするのか、縦にするのか
・ヘッダーやフッター設定をするのか
・ファイル綴じをする資料ならば、余白設定をどのようにすればいいのか
まずは上記の3項目を踏まえてページ設定をしてみましょう。
資料の仕上がりがとてもキレイになるはずです。
ほかにもページ設定をするVBAと印刷をするVBAを組み合わせると、印刷範囲が壊されたり、ミスプリントしてしまう恐れがなくなります。
印刷をするVBAを使えば、条件によって印刷範囲や印刷枚数を変更することも可能
・条件によって印刷範囲を指定
・条件によって印刷するシートを指定
・条件によって印刷部数を指定
印刷をするVBAについて下記の記事で詳しく紹介しています。
エクセルを使った資料作りが多い、印刷することが多いという方におすすめのVBAです。
ディスカッション
コメント一覧
まだ、コメントがありません