印刷プレビューを表示する。
VBAで印刷プレビューを表示させるには下記の3つの方法が利用できます。
・Application.Dialogs(xlDialogPrintPreview).Showを利用
・PrintPreviewメソッドを利用
・PrintOutメソッドの引数(Preview)に True 指定して利用
Application.Dialogs(xlDialogPrintPreview).Showは、Application.Dialogsコレクションの引数にXlBuiltInDialog列挙体の定数(xlDialogPrintPreview)を指定してShowメソッドを利用することでプレビューが表示されます。この方法ではアクティブな状態のシートのプレビューが表示されシートの指定などはできません。他の方法だとシートを指定してプレビューが可能です。
PrintPreviewメソッド は引数に EnableChanges(規定値:True) を利用することができ、この引数に False を指定するとプレビュー画面で余白、ページ設定の操作を不可にすることができます。
PrintPreviewメソッド に利用できる引数は EnableChanges のみになります。
PrintOutメソッド は引数の Preview に True 指定するとプレビュー画面で表示されます。
またPrintOutメソッドには部数や印刷ページの指定などを下記の引数で指定することができます。
Preview に False もしくは省略した場合はプレビューが表示されずにそのまま印刷されます。
| 引数名 | 説明 | 省略 | |
| 第1引数 | From | 開始するページの番号を指定 | 可 |
| 第2引数 | To | 終了するページの番号を指定 | 可 |
| 第3引数 | Copies | 印刷部数を指定 | 可 |
| 第4引数 | Preview | 印刷をする前に印刷プレビューを実行、省略した場合はそのまま印刷を実行 | 可 |
| 第5引数 | ActivePrinter | アクティブなプリンターの名前を指定 | 可 |
| 第6引数 | PrintToFile | True の場合、ファイルへ出力 | 可 |
| 第7引数 | Collate | True の場合、部単位で印刷 | 可 |
| 第8引数 | PrToFileName | True の場合、この引数は印刷するファイルの名前を指定 | 可 |
| 第9引数 | IgnorePrintAreas | True の場合、印刷範囲を無視してオブジェクト全体を印刷 | 可 |
●Application.Dialogs(xlDialogPrintPreview).Show
'*****************************************************************
' プリンターの印刷プレビューを表示
'*****************************************************************
Sub Preview_Dialogs()
'印刷プレビュー
Application.Dialogs(xlDialogPrintPreview).Show
End Sub●PrintPreviewメソッド(余白、ページ設定不可)
'*****************************************************************
' プリンターの印刷プレビューを表示
'*****************************************************************
Sub Preview_PrintPreview()
'印刷プレビュー(余白、ページ設定不可)
Sheets("Sheet1").PrintPreview EnableChanges:=False
End Sub●PrintOutメソッド(ページ、部数指定)
'*****************************************************************
' プリンターの印刷プレビューを表示
'*****************************************************************
Sub Preview_PrintOut()
'印刷プレビュー(ページ、部数指定)
Sheets("Sheet1").PrintOut Preview:=True, From:=2, To:=3, Copies:=3
End Sub

