EXCEL VBA 印刷のページ設定 PageSetup(印刷・余白・拡大縮小・ヘッダー・フッター・ページ番号・用紙サイズ)
EXCEL VBA 印刷のページ設定 PageSetup(印刷・余白・拡大縮小・ヘッダー・フッター・ページ番号・用紙サイズ)
VBAで印刷設定(ページ設定:ページタグ)
オブジェクト.PageSetup.プロパティ = 設定値
『使用例』: Worksheets(“Sheet1”). PageSetup.PaperSize = xlPaperA5 ‘ 印刷する用紙をA5に指定
タブ | 設定内容 | PageSetupプロパティ | 設定値 |
---|---|---|---|
『ページ』 | 印刷の向き | Orientation | xlPortrait(縦)・xlLandscape(横) |
拡大/縮小 | Zoom | 10~400の数値 | |
ページ数に合わせて印刷(横) | FitToPagesWide | 横方向のページ数 | |
ページ数に合わせて印刷(縦) | FitToPagesTall | 縦方向のページ数 | |
用紙サイズ | PaperSize | xPaperA4(A4サイズ)・xPaperA3(A3サイズ) 他 | |
先頭ページ番号 | FirstPageSize | xlAutomatic(自動)・ページ番号の数値 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub PageSetup01() 'A4縦からA4横に用紙1ページに収めて印刷する。 With Worksheets("Sheet1") .PageSetup.Orientation = xlLandscape '印刷の向きを「横」 .PageSetup.PaperSize = xlPaperA4 '指定する用紙A4 .PageSetup.FitToPagesWide = 1 '横1ページに指定 .PageSetup.FitToPagesTall = 1 '縦1ページに指定 .PageSetup.FirstPageNumber = 5 '先頭のページ番号を5に設定 .PageSetup.CenterFooter = "- " & "&P" & " -" 'フッターにページ番号を表示 .PrintPreview 'プレビュー画面を表示させます。 End With End Sub |
①印刷向きを縦から横に変更
②指定する印刷用紙をA4に指定
③縦横のページを1ぺージに設定(1×1)
④フッターのページ番号を「5」ページに変更(画像クリックして拡大)
VBAで印刷設定(ページ設定:余白タグ)
オブジェクト.PageSetup.プロパティ = 設定値
『使用例』: Worksheets(“Sheet1”). PageSetup.TopMargin = Application.CentimetersToPoints(3) ‘上余白を3cmに設定
『余白サイズ』設定方法
①Cm単位: PageSetup.TopMargin = Application.CentimetersToPoints(3) ’3cm
②ポイント単位:PageSetup.TopMargin = 10 ’10ポイント(3.5cm)
※余白を設定する場合は、ポイント単位は、1ポイント(0.35mm)です。ポイントでの設定は、分かり辛いので、Application.CentimetersToPointsメゾットを利用して数値=Cm単位での設定がおすすめです。
タブ | 設定内容 | PageSetupプロパティ | 設定値 |
---|---|---|---|
『余白』 | 上余白 | TopMargin | ポイント単位の数値(上余白) |
下余白 | BottomMargin | ポイント単位の数値(下余白) | |
左余白 | LeftMargin | ポイント単位の数値(左余白) | |
右余白 | RightMargin | ポイント単位の数値(右余白) | |
ページ中央(水平) | CenterHorizontally | True (ON)/ False (OFF) | |
ページ中央(垂直) | CenterVertically | True (ON)/ False (OFF) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub PageSetup02() '指定する余白サイズに設定します。ページ中央の設定 With Worksheets("Sheet1") .PageSetup.TopMargin = Application.CentimetersToPoints(3) '上余白を3cmに設定 .PageSetup.RightMargin = Application.CentimetersToPoints(4) '右余白を4cmに設定 .PageSetup.LeftMargin = Application.CentimetersToPoints(5) '左余白を5cmに設定 .PageSetup.BottomMargin = Application.CentimetersToPoints(6) '下余白を6cmに設定 .PageSetup.HeaderMargin = Application.CentimetersToPoints(1.1) 'ヘッダー余白を1.1cmに設定 .PageSetup.FooterMargin = Application.CentimetersToPoints(2.2) 'フッター余白を2.2cmに設定 .PageSetup.CenterHorizontally = True 'ページ中央水平:ON .PageSetup.CenterVertically = False 'ページ中央垂直:OFF .PrintPreview 'プレビュー表示 End With End Sub |
①余白(上・下・右・左)の設定を変更
②余白(ヘッダー・フッター)の設定を変更
③ページ中央水平:ON ・ページ中央垂直:OFFに設定変更
(画像クリックして拡大)
VBAで印刷設定(ページ設定:ヘッダー・フッター)
オブジェクト.PageSetup.プロパティ = 設定値
『使用例』: Worksheets(“Sheet1”). PageSetup.LeftHeader = “&F” & vbCrLf & “&A”
※『左ヘッダー』に:「ファイル名」・「シート名」を表示します。
タブ | 設定内容 | PageSetupプロパティ | 設定値 |
---|---|---|---|
『ヘッダー・フッター』 | ヘッダー(左側) | LeftHeader | 書式コード(下記参照)・文字列 |
ヘッダー(中央部分) | CenterHeader | 書式コード(下記参照)・文字列 | |
ヘッダー(右側) | RightHeader | 書式コード(下記参照)・文字列 | |
フッター(左側) | LeftFooter | 書式コード(下記参照)・文字列 | |
フッター(中央部) | CenterFooter | 書式コード(下記参照)・文字列 | |
フッター(右側) | RightFooter | 書式コード(下記参照)・文字列 |
書式コード | 内容(説明) |
---|---|
&P | ページ番号 |
&N | 総ページ数 |
&D | 現在の日付 |
&T | 現在の時刻 |
&F | ファイル名 |
&A | シート名 |
&"フォント名"& | フォントの指定 |
&nn | フォントサイズの指定 |
&B | 太字 |
&I | 斜体 |
&U | 下線 |
&G | 画像を表示 |
※初期設定では、ヘッター・フッターは設定されていません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Sub PageSetup03() 'ヘッダー・フットーにタイトル名・ページ番号と日付・画像等を設定する。 Dim This_Year As Date This_Year = Now() '現在の日付を取得(年度表示用) With Worksheets("Sheet1") .PageSetup.Orientation = xlLandscape '印刷の向きを「横」 '『ヘッダー』 .PageSetup.LeftHeader = "&F" & vbCrLf & "&A" '左ヘッダー:ファイル名 & シート名 .PageSetup.CenterHeader = "&""MS明朝""" & "&16 " & Format(This_Year, "yyyy年度") & "&16 支店別営業一覧表" .PageSetup.RightHeader = "&D" & vbCrLf & "&T" '右ヘッダー:現在の日付・時刻 '『フッター』 .PageSetup.LeftFooter = "&""MSゴシック"" &10&U経理課作成" '左フッター:MSゴシック・10サイズ・経理課作成” .PageSetup.CenterFooter = "&P / &N" '中央フッター:ページ番号 / 総ページ数 .PageSetup.RightFooterPicture.Filename = ActiveWorkbook.Path & "\画像.jpg" '右フッター:画像を設定(ファイル設定) .PageSetup.RightFooter = "&G" '右フッター:画像を表示 .PrintPreview 'プレビュー表示 End With End Sub |
①ヘッダー左側:ファイル名・シート名
②ヘッダー中央:タイトル名、年度は現在の年から取得
③ヘッダー右側:日付と日時を表示
④フッター右側:「経理課作成」・下線・MSゴシックでフォント10サイズ
⑤フッター中央:ページ番号 / 総ページ数
⑥フッター右側:画像を表示
(画像クリックして拡大)
VBAで印刷設定(ページ設定:シートタグ)
オブジェクト.PageSetup.プロパティ = 設定値
『使用例』: Worksheets(“Sheet1”).PageSetup.PrintArea = “A1:H14”
※印刷範囲の設定を『A1:H14』に設定
タブ | 設定内容 | PageSetupプロパティ | 設定値 |
---|---|---|---|
『シート』 | 印刷範囲 | PrintArea | A1形式(文字列) |
行のタイトル | PrintTitleRows | A1形式(文字列) | |
列のタイトル | PrintTitleColumns | A1形式(文字列) | |
印刷(枠線) | PrintGridlines | True (ON) / False (OFF) | |
印刷(白黒印刷) | BlackAndWhite | True (ON) / False (OFF) | |
印刷(簡易印刷) | Draft | True (ON) / False (OFF) | |
印刷(行列番号) | PrintHeadings | True (ON) / False (OFF) | |
印刷(コメント) | PrintComments | xlPrintInPlace(画面表示イメージ)等 | |
印刷(セルのエラー) | PrintErrors | xlPrintErrorsBlank(空白)等 | |
ページの方向 | Order | xlDownThenOver(左から右へ) / xlOverThenDown(上から下へ) |
下記のサンプルプログラムは、『Sheet3』のシートに対して印刷設定:シートタグの設定を行うサンプルプログラムです。2019年の上期・下期の営業一覧表があります。現在の日付から月を取得して、上期か下期を自動判定を行い、枠線をON・白黒印刷を行うプログラムです。下記の表(EXCEL)は、プログラム実行前の状態です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Sub PageSetup04() '印刷範囲を設定し、モノクロ印刷等を行います。 Dim This_Mouth As Integer This_Mouth = Month(Now) '現在の日付を取得(今月を取得) With Worksheets("Sheet3") .PageSetup.PaperSize = xlPaperA4 '指定する用紙 .PageSetup.Orientation = xlLandscape '印刷の向きを「横」 If This_Mouth >= 4 And This_Mouth <= 9 Then '現在の月が4~9月は、上期を印刷範囲・それ以外は、下期 .PageSetup.PrintArea = "A1:H14" '上期を印刷範囲に設定 Else .PageSetup.PrintArea = "J1:Q14" '下期を印刷範囲に設定 End If .PageSetup.PrintGridlines = True '印刷枠線をONにする。 .PageSetup.BlackAndWhite = True '白黒印刷をONにする。 .PrintPreview 'プレビュー表示 End With End Sub |
①現在の日付(Now)から月を取得して、10月を取得しましたので、印刷範囲を下期に設定
②印刷枠線をONに設定
③白黒印刷をONに設定
(画像クリックして拡大)
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。