ExcelマクロVBA入門 | 第73回.ページ設定(PageSetup) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2018-01-30

第73回.ページ設定(PageSetup)


VBAで印刷のページ設定をするには、PageSetupオブジェクトで行います。

基本的には、事前に印刷するシートのページ設定をしておくことがのぞましいのですが、
VBAで作成したシート等、事前にページ設定することができない場合は、VBAで印刷のページ設定をします。



PageSetupオブジェクト

PageSetupオブジェクトのプロパティ一覧

名前 説明
AlignMarginsHeaderFooter Excelでヘッダーとフッターをページ設定オプションの余白セットを使用して揃える場合は、Trueを返します。
値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
Application 対象となるオブジェクトが指定されない場合は、Excelアプリケーション(Applicationオブジェクト)を返します。
対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成したApplicationオブジェクトを返します。
OLEオートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。値の取得のみ可能です。
BlackAndWhite Trueの場合、対象となるシートのセルや描画オブジェクトを白黒印刷します。値の取得および設定が可能です。ブール型(Boolean)の値を使用します。
BottomMargin 下余白の大きさをポイント(ポイント:印刷する文字のサイズ(高さ)を指定する基本単位。
1ポイントは、約0.0353cm(1/72インチ)です。)単位で設定します。
値の取得および設定が可能です。
倍精度浮動小数点型(Double)の値を使用します。
CenterFooter PageSetupオブジェクトでフッター情報を中央揃えします。
値の取得および設定が可能です。文字列型(String)の値を使用します。
CenterFooterPicture フッターの中央のセクションの画像を表すGraphicオブジェクトを取得します。
画像についての属性を設定するために使用します。
CenterHeader PageSetupオブジェクトでヘッダー情報を中央揃えします。
値の取得および設定が可能です。文字列型(String)の値を使用します。
CenterHeaderPicture ヘッダーの中央のセクションの画像を表すGraphicオブジェクトを取得します。
画像についての属性を設定するために使用します。
CenterHorizontally Trueの場合、印刷時のシートのページレイアウトの設定を、水平方向の中央寄せ(余白を除く)にします。
値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
CenterVertically Trueの場合、印刷時のシートのページレイアウトの設定を、垂直方向の中央寄せ(余白を除く)にします。
値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
Creator 現在のオブジェクトが作成されたアプリケーションを示す32ビットの整数を取得します。
値の取得のみ可能です。
長整数型(Long)の値を使用します。
DifferentFirstPageHeaderFooter Trueに設定すると、先頭ページでは他のページと異なるヘッダーとフッターが使用されます。
値の取得および設定が可能です。
長整数型(Boolean)の値を使用します。
Draft Trueの場合、シートの印刷時にグラフィックスを印刷しない設定(簡易印刷)になります。
値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
EvenPage ブックまたはセクション内の偶数ページで、文字列の配置を取得または設定します。
FirstPage ブックまたはセクション内の先頭ページで、文字列の配置を取得または設定します。
FirstPageNumber 印刷するシートの先頭ページで使用される番号を設定します。
xlAutomaticの場合、自動的に先頭ページの番号が選択されます。
既定値はxlAutomaticです。値の取得および設定が可能です。
長整数型(Long)の値を使用します。
FitToPagesTall ワークシートを印刷するときに、縦何ページ分で収めるかを示す値を指定します。
値の取得および設定が可能です。
このプロパティは、ワークシートだけを対象とします。バリアント型(Variant)の値を使用します。
FitToPagesWide ワークシートを印刷するときに、横何ページ分で収めるかを示す値を指定します。
このプロパティは、ワークシートだけを対象とします。値の取得および設定が可能です。
バリアント型(Variant)の値を使用します。
FooterMargin フッターの余白(用紙の下端からフッターまでの距離)の値をポイント(ポイント:印刷する文字のサイズ(高さ)を指定する基本単位。
1ポイントは、約0.0353cm(1/72インチ)です。)単位で設定します。
値の取得および設定が可能です。倍精度浮動小数点型(Double)の値を使用します。
HeaderMargin ヘッダーの余白(用紙の上端からヘッダーまでの距離)の値をポイント(ポイント:印刷する文字のサイズ(高さ)を指定する基本単位。
1ポイントは、約0.0353cm(1/72インチ)です。)単位で設定します。
値の取得および設定が可能です。倍精度浮動小数点型(Double)の値を使用します。
LeftFooter ブックまたはセクション内の左のフッターで、文字列の配置を取得または設定します。
LeftFooterPicture フッターの左のセクションの画像を表すGraphicオブジェクトを取得します。
画像についての属性を設定するために使用します。
LeftHeader ブックまたはセクション内の左のヘッダーで、文字列の配置を取得または設定します。
LeftHeaderPicture ヘッダーの左のセクションの画像を表すGraphicオブジェクトを取得します。
画像についての属性を設定するために使用します。
LeftMargin 左余白の大きさをポイント(ポイント:印刷する文字のサイズ(高さ)を指定する基本単位。1ポイントは、約0.0353cm(1/72インチ)です。)単位で設定します。
値の取得および設定が可能です。倍精度浮動小数点型(Double)の値を使用します。
OddAndEvenPagesHeaderFooter Trueを設定すると、指定したPageSetupオブジェクトの奇数ページと偶数ページに異なるヘッダーとフッターを設定できます。
値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
Order 大きいワークシートを複数ページに分けて印刷するときにページ番号を付ける順番を表す、XlOrderクラスの定数を取得または設定します。
Orientation 印刷の向きが縦か横かを表すXlPageOrientationクラスの定数を取得または設定します。
Pages Pagesコレクションに含まれるページのカウントまたはアイテム番号を取得または設定します。
PaperSize 用紙サイズを設定します。値の取得および設定が可能です。
XlPaperSizeクラスの定数を使用します。
Parent 指定されたオブジェクトの親オブジェクトを取得します。値の取得のみ可能です。
PrintArea 印刷するセル範囲を、コード記述時の言語のA1形式の文字列で設定します。
値の取得および設定が可能です。文字列型(String)の値を使用します。
PrintComments シートへのコメントの印刷方法を設定します。
値の取得および設定が可能です。XlPrintLocationクラスの定数を使用します。
PrintErrors 表示される印刷エラーの種類を指定するXlPrintErrorsクラスの定数を設定します。
この機能を使用して、ユーザーはワークシートの印刷時にエラー値の表示を抑止することができます。
値の取得および設定が可能です。
PrintGridlines Trueの場合、セルの枠線をページに印刷します。このプロパティは、ワークシートだけを対象とします。値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
PrintHeadings Trueの場合、行と列の番号をページに印刷します。
このプロパティは、ワークシートだけを対象とします。値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
PrintNotes Trueの場合、文末脚注のようにシート印刷時にセル内のコメントも印刷します。
このプロパティは、ワークシートのページだけを対象とします。値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
PrintQuality 印刷品質を返します。値の取得および設定が可能です。
バリアント型(Variant)の値を使用します。
PrintTitleColumns 各ページの左端に常に表示するセルを含む列を、コード記述時の言語のA1形式の文字列で設定します。
値の取得および設定が可能です。文字列型(String)の値を使用します。
PrintTitleRows 各ページの上端に常に表示するセルを含む行を、コード記述時の言語のA1形式の文字列で設定します。
値の取得および設定が可能です。文字列型(String)の値を使用します。
RightFooter ページの右端とフッターの右端の距離をポイント単位で設定します。
値の取得および設定が可能です。単精度浮動小数点型(String)の値を使用します。
RightFooterPicture フッターの右のセクションの画像を表すGraphicオブジェクトを取得します。
画像の属性を設定するために使用します。
RightHeader 右側に配置されたヘッダーを設定します。
値の取得および設定が可能です。
文字列型(String)の値を使用します。
RightHeaderPicture 右のヘッダーに表示する画像を指定します。
値の取得のみ可能です。
RightMargin 右余白の大きさをポイント(ポイント:印刷する文字のサイズ(高さ)を指定する基本単位。
1ポイントは、約0.0353cm(1/72インチ)です。)単位で設定します。
値の取得および設定が可能です。
倍精度浮動小数点型(Double)の値を使用します。
ScaleWithDocHeaderFooter 文書のサイズが変更された場合に、ヘッダーとフッターのサイズが文書に合わせて変更されるかどうかを設定します。値の取得および設定が可能です。
ブール型(Boolean)の値を使用します。
TopMargin 上余白の大きさをポイント(ポイント:印刷する文字のサイズ(高さ)を指定する基本単位。
1ポイントは、約0.0353cm(1/72インチ)です。)単位で設定します。
値の取得および設定が可能です。
倍精度浮動小数点型(Double)の値を使用します。
Zoom ワークシートを印刷するときの拡大率または縮小率(%)を、10〜400の範囲で表すバリアント型(Variant)の値を取得、または設定します。

すべてのページ設定属性(左余白、下余白、用紙サイズなど)が、プロパティとして含まれています。

このように非常に多くのプロパティがあり、とても覚えきれません。

実務としては、「マクロの記録」を使い、必要な設定部分をコピペで使用する事をお勧めします。

自動記録されたVBAコードを読む時に、上記の一覧を参考にしてください。



ヘッダー・フッターのプロパテの設定方法

PageSetup.プロパティ = 値

以下では、ヘッダー・フッターのプロパテを紹介します。

プロパティ 説明
LeftHeader 左側ヘッダー
CenterHeader 中央部ヘッダー
RightHeader 右側ヘッダー
LeftFooter 左側フッター
CenterFooter 中央部フッター
RightFooter 右側フッター

設定値には、書式コードやシステム情報の、特殊コードが使えます。

コード 意味
&D 日付
&T 時刻
&F ファイル名
&A シート名
&P ページ
&N 総ページ
&Z パス
&B 太字
&L 文字列を左詰めにします
&C 文字列を中央揃えにします
&R 文字列を右詰めにします
&E 文字列に二重下線をつけます
&X 上付き文字にします
&Y 下付き文字にします
&B 文字列を太字にします
&I 文字列を斜体にします
&U 文字列に下線を付けます
&S 文字列に取り消し線を付けます


使用例
Worksheets(1).PageSetup.CenterFooter="&P/&N"

中央部フッターに、「ページ/総ページ」

Worksheets(1).PageSetup.RightHeader="&B&D"

右側ヘッダーに、日付を太字にしています。



余白の設定方法

自動記録で作成されるVBAでは、余白がインチで記録されます。



この自動記録は、

With ActiveSheet.PageSetup
  ・・・
  .LeftMargin = Application.InchesToPoints(0.708661417322835)
  .RightMargin = Application.InchesToPoints(0.708661417322835)
  .TopMargin = Application.InchesToPoints(0.748031496062992)
  .BottomMargin = Application.InchesToPoints(0.748031496062992)
  .HeaderMargin = Application.InchesToPoints(0.31496062992126)
  .FooterMargin = Application.InchesToPoints(0.31496062992126)
  ・・・
End With

ページ設定のダイアログで指定する数値はセンチですが、
自動記録では、インチに変換されて記録されます。

PageSetupにおいて、インチではなくセンチで設定するには、
Application.InchesToPoints
これの代わりに、
Application.CentimetersToPoints
こちらを使用してください。

詳細は、以下のページを参照してください。

印刷ページ設定の余白をセンチで指定する(CentimetersToPoints)



マクロVBAで全てのページ設定のプロパティを設定することは非常に大変ですし、
処理時間も結構かかり動作の遅いマクロになってしまいます。

あらかじめページ設定してあるシートを雛形として使い、
都度変化するプロパティのみVBAで変更するといった方法も検討してみましょう。




同じテーマ「マクロVBA入門」の記事

第70回.ウィンド枠の固定(FreezePanes)
第71回.印刷(PrintOut)
第72回.印刷プレビュー(PrintPreview)
第73回.ページ設定(PageSetup)
第74回.ファイルを開くダイアログ(GetOpenFilename)
第75回.名前を付けて保存ダイアログ(GetSaveAsFilename)
第76回.ファイルダイアログ(FileDialog)
第77回.組み込みダイアログ(Dialogs,xlDialogPrint)
第78回.総合練習問題8
第79回.ファイル操作T(Dir)
第80回.ファイル操作T(その他)

新着記事 ・・・新着記事一覧を見る

数値範囲で表検索するVLOOKUP近似一致|エクセル関数超技(10月5日)
エクセルVBAでのシート指定方法|VBA技術解説(9月8日)
VBAのクラスとは(Class,Property,Get,Let,Set)|VBA技術解説(8月28日)
VBAこれだけは覚えておきたい必須基本例文10|VBA技術解説(8月22日)
VBAの省略可能な記述について|ExcelマクロVBA技術解説(8月11日)
複数条件判定を行う時のコツ|ExcelマクロVBA技術解説(7月11日)
For Next の使い方いろいろ|VBA技術解説(6月14日)
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.マクロって何?VBAって何?|ExcelマクロVBA入門
7.定数と型宣言文字(Const)|ExcelマクロVBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • ページ設定(PageSetup)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。





    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP