PCメモ

Excelを中心とした業務改善の記録

PageSetupオブジェクト(印刷設定)

PageSetupオブジェクトについて 

 PageSetupオブジェクトのプロパティを変更することで印刷設定を行うことができる。

With Worksheets("Sheet1").PageSetup.

 '横向き印刷
 .Orientation = xlLandscape

  'A4

 .PaperSize = xlPaper A4

 '拡大縮小無し

 .Zomm = False

 '横幅を指定ページに収める

 .FitToPagesWide  = 1

 'タイトル行

 .PrintTitleRows = "$1:$1"
End With

 

f:id:abv72:20210814210726p:plain

 

 印刷範囲設定(PrintArea)

Cells(1,1)からCells(最終行,最終列)の範囲を印刷範囲とする。

L列までを一ページに収まるようにして、1行目を印刷タイトルにする。

f:id:abv72:20210814090610p:plain

Sub 印刷範囲設定()

 Dim Row As Long
 Dim Column As Long
 Dim myRange As Range

 

 '最終行と最終列
 Row = Cells(Rows.Count, 1).End(xlUp).Row
 Column = Cells(1, Columns.Count).End(xlToLeft).Column

Set myRange = Range(Cells(1, 1), Cells(Row, Column))


  With ActiveSheet.PageSetup
  .PrintArea = myRange.Address
  .Zoom = False
  .PrintTitleRows = "$1:$1"
  .FitToPagesWide = 1
  .FitToPagesTall = False
 End With


End Sub

 

Set myRange = Range(Cells(1, 1), Cells(Row, Column))

印刷範囲指定したいセル範囲をmyRangeに格納する。

Range(Cells(1,1),Cells(10,12)) となっている。

f:id:abv72:20210814140124p:plain


.PrintArea = myRange.Address
印刷範囲をmyRangeとする。

.Zoom = False
拡大縮小をクリアする。列や行を1ページに収める場合はFalseにしておく。

.PrintTitleRows = "$1:$1"
印刷タイトルを指定。2ページ以降もタイトルとして印刷される。

.FitToPagesWide = 1
列を1ページに収める

.FitToPagesTall = False
行は1ページに収めない。

 

 

 ※なんちゃって個人情報を使用しています。

 

【参考記事】

docs.microsoft.com