k01ken’s b10g

He110 W0r1d!

VBA(Excel)で印刷の設定を行う

開発環境は、Windows 10 Pro(64bit)。動作テストは、Excel 2019。

印刷範囲の設定

With ActiveSheet.PageSetup
  .PrintArea = "$A$1:$BT$37"
End With

タイトル行の設定

With ActiveSheet.PageSetup
  '1枚ごとに毎回、タイトル行が印刷される
  .PrintTitleRows = "$1:$3"
End With

余白の設定

With ActiveSheet.PageSetup
  '上下左右に1cm、ヘッダーとフッターに0.5cmの余白設定
  .LeftMargin = Application.CentimetersToPoints(1)
  .LeftMargin = Application.CentimetersToPoints(1)
  .TopMargin = Application.CentimetersToPoints(1)
  .BottomMargin = Application.CentimetersToPoints(1)
  .HeaderMargin = Application.CentimetersToPoints(0.5)
  .FooterMargin = Application.CentimetersToPoints(0.5)
End With

向きの設定

With ActiveSheet.PageSetup
  '縦
  .Orientation = xlPortrait
  '横
  .Orientation = xlLandscape
End With

拡大/縮小

With ActiveSheet.PageSetup
  '100%
  .Zoom = 100
  '65%
  .Zoom = 65
End With

すべての列を1ページに印刷

With ActiveSheet.PageSetup
  .Orientation = xlPortrait
  .Zoom = False
  .FitToPagesWide = 1
  .FitToPagesTall = False
End With

すべての行を1ページに印刷

With ActiveSheet.PageSetup
  .Orientation =  xlLandscape
  .Zoom = False
  .FitToPagesWide = False
  .FitToPagesTall = 1
End With

ヘッダーの右部分にページごとの文字の追加

With ActiveSheet.PageSetup
  'フォントサイズを36に設定している
  'フォントサイズを設定する際は半角スペースを空けること
  '4枚印刷するつもりで、1枚目ならば、 『1 / 4 ページ』のように表示される
  .RightHeader = "&36 &P / &N ページ"
End With

フッターの右部分にページごとの文字の追加

With ActiveSheet.PageSetup
  '下線を引いて太字でフォントサイズを36に設定している
  '4枚印刷するつもりで、1枚目ならば、 『1 / 4 ページ』のように表示される
  .RightFooter = "&U&B&36 &P / &N ページ計"  
End With

垂直方向の改ページ

With ActiveSheet
  '垂直方向の4列目の後で改ページ
  .Columns(4).PageBreak = xlPageBreakManual
  '垂直方向の4列目の後の改ページを削除
  .Columns(4).PageBreak = xlPageBreakNone
End With

水平方向の改ページ

With ActiveSheet
  '水平方向の5列目の後で改ページ
  .Rows(5).PageBreak = xlPageBreakManual
  '水平方向の5列目の後の改ページを削除
  .Rows(5).PageBreak = xlPageBreakNone
End With

改ページを削除

With ActiveSheet
  .ResetAllPageBreaks
End With