目標
VBAを利用して印刷の設定・利用ができる。
ページ設定属性とPageSetupプロパティを理解して利用できる
PrintPreviewメソッドとPrintOutメソッドを理解して利用できる。
ページ設定属性と利用方法
ページ設定属性とは
Excelで印刷を行うとき、印刷の範囲を決めたり、1ページに収めたり、用紙を縦向きにしたり、横向きにしたり、色々なことを行います。VBAでも同様にこれらの設定をプログラムから行わせることができます。この時に用いられるのが印刷設定用のプロパティで、このことを「ページ設定属性」と言います。
ページ設定属性の利用
ページ設定属性はPageSetupプロパティに個別のつなげて利用します。それぞれのプロパティに設定値を代入して設定します。
ページ設定属性の種類
属性 | 設定項目 | 設定値 |
PrintArea | 印刷範囲の設定 | ”開始セル:終了セル” |
Orientation | 印刷用紙の向き | xlPortrait(縦向き) xlLandscape(横向き) |
Zoom | 印刷の拡大と縮小 | 50%など%で指定 |
FitToPagesTall | 縦方向のページ数 ※Zoomプロパティは「false」に設定 | 1(1ページに収める) false |
FitToPagesWide | 横方向のページ数 ※Zoomプロパティは「false」 | 1(1ページに収める) false |
CenterVertically | 垂直方向に対して印刷範囲を中央に設定 | True/False |
CenterHorizontally | 水平方向に対して印刷範囲を中央に設定 | True/False |
PrintPreviewメソッドの概要と利用方法
PrintPreviewメソッドとは
印刷プレビューを表示させるにはPrintPreviewメソッドを利用します。またPrintPreviewメソッドに準備されている引数「EnableChanges」を「False」にすると印刷プレビュー中にユーザーに印刷設定の変更を行わせないようにすることができます。
ユーザーに設定の変更を許可するのであれば、後ほど出てくるPrintOutメソッドを利用するのが一般的です。PrintOutメソッドでもPreview属性をTrue(「Preview:=True」)にすると印刷プレビューが確認できます。
PrintPreviewメソッドの利用方法
PrintPreviewの構文
ActiveSheet.PrintPreview EnableChanges:=False
サンプルプロシージャ1
Sub printProgram1()
Sheets("sheet5").Select
With ActiveSheet.PageSetup
.PrintArea = "K1:Q8"
.Orientation = xlLandscape
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
End With
ActiveSheet.PrintPreview EnableChanges:=False
End Sub
実行結果
PrintOutメソッドの概要と利用方法
PrintOutメソッドとは
選択されたオブジェクトを印刷するメソッドです。PrintOutメソッドには9種類の引数が準備されています。
PrintOutメソッドの利用方法
PrintOutメソッドの構文
PrintOut 第1引数,第2引数,第3引数,第4引数,第5引数,第6引数,第7引数,第8引数,第9引数
引数には名前があります。
引数 | 名前付き引数 | 設定項目 |
第1引数 | From | 印刷開始ページ番号。 省略した場合は先頭のページから印刷 |
第2引数 | To | 印刷終了ページ番号。 省略した場合は最後のページまで印刷 |
第3引数 | Copies | 印刷部数。 省略した場合は1部 |
第4引数 | Preview | True→プレビューあり False→プレビューなし 省略した場合は「False」 |
第5引数 | ActivePrinter | プリンター名の指定。 省略した場合は通常利用するプリンター名 |
第6引数 | PrintToFile | True→ファイルへの出力 False→ファイルへの出力なし 省略した場合は「False」 |
第7引数 | Collate | True→部単位の印刷 False→ページ単位の印刷 |
第8引数 | PrToFileName | True→出力ファイル名を設定する |
第9引数 | IgnorePrintAreas | True→設定された印刷範囲を無視して印刷 False→設定された印刷範囲で印刷 |
サンプルプロシージャ2
Sub printProgram2()
Dim st As Object
Sheets(Array("sheet1", "sheet2", "sheet3")).Select
For Each st In ActiveWindow.SelectedSheets
With st.PageSetup
.PrintArea = "C3:H7"
.Orientation = xlLandscape
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
End With
Next st
Sheets("sheet1").Activate
ActiveWindow.SelectedSheets.PrintOut Preview:=True
End Sub
実行結果
今回は以上となります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。