【備忘】VBA/ワークシートの印刷設定
ExcelにてVBAマクロを使う機会が最近多くなってきたので備忘用のメモ
★印刷設定を行うワークシート情報と各種印刷情報を引数として渡して設定する
'******************************************************************************************************* 'ワークシートの印刷設定を行う ' '@param Worksheet ws_print 印刷設定を行うワークシート '@param String cell_print_start 印刷開始セル(A1形式) '@param String cell_print_end 印刷開始セル(A1形式) '@param Boolean bln_print_1page true:1ページに印刷する '@param Long margin_top 余白上 '@param Long margin_bottom 余白下 '@param Long margin_left 余白左 '@param Long margin_right 余白右 '@param Long margin_header 余白ヘッダー '@param Long margin_footer 余白フッター '@param Boolean bln_center_horizontally true:水平中央寄せ '@param Boolean bln_center_vertically true:垂直中央寄せ '@param Long page_size ページサイズ(A3=8/A4=9/A5=11) '@param Long page_view ワークシートのページビュー(標準=1/改ページプレビュー=2/ページレイアウト=3) ' '@returns なし '******************************************************************************************************* Sub printPageSetUp( _ ByRef ws_print As Worksheet _ , ByVal cell_print_start As String _ , ByVal cell_print_end As String _ , ByVal bln_print_1page As Boolean _ , ByVal margin_top As Long _ , ByVal margin_bottom As Long _ , ByVal margin_left As Long _ , ByVal margin_right As Long _ , ByVal margin_header As Long _ , ByVal margin_footer As Long _ , ByVal bln_center_horizontally As Boolean _ , ByVal bln_center_vertically As Boolean _ , ByVal page_size As Long _ ) 'ワークシートをアクティヴにする ws_print.Activate On Error GoTo localError With ws_print.PageSetup '印刷エリアの設定 .PrintArea = ws_print.Range(cell_print_start & ":" & cell_print_end).Address '印刷サイズの設定 .PageSize = page_size 'シートを1ページに印刷 If bln_print_1page Then .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End If '余白設定 .TopMargin = Application.CentimetersToPoints(margin_top) '上余白 .BottomMargin = Application.CentimetersToPoints(margin_bottom) '下余白 .LeftMargin = Application.CentimetersToPoints(margin_left) '左余白 .RightMargin = Application.CentimetersToPoints(margin_right) '右余白 .HeaderMargin = Application.CentimetersToPoints(margin_header) 'ヘッダー余白 .FooterMargin = Application.CentimetersToPoints(margin_footer) 'フッター余白 '印刷位置の設定 .CenterHorizontally = bln_center_horizontally '水平 .CenterVertically = bln_center_vertically '垂直 End With 'ワークシートのページビューを設定 ActiveWindow.View = page_view Exit Sub localError: MsgBox "エラー番号:" & Err.Number & vbCrLf & _ "エラーの種類:" & Err.Description, vbExclamation End Sub
★呼び出し例
call printPageSetUp(ws,"A1","P100",true,0.9,0.9,0.9,0.9,0.5,0.5,false,false,8,1)