ワークシートの印刷を行いたい場合は PrintOut メソッドを使用します。ブック内の複数シートを選択して印刷することも可能です。引数 Preview に True を設定することで、プレビュー表示することもできます。
PrintPreview メソッドではページの指定はできませんでしたが、PrintOut メソッドであれば、ページ指定オプションとプレビューオプションを使用することで、ページ指定した印刷プレビューを表示することができます。
PrintOutメソッドの使用方法
引数名 | 省略 | 定数/ データ型 |
説明 |
---|---|---|---|
From | ○ | バリアント型(Variant) | 印刷を開始するページの番号を指定します。この引数を省略すると、最初のページから印刷します。 |
To | ○ | バリアント型(Variant) | 印刷を終了するページの番号を指定します。この引数を省略すると、最後のページまで印刷します。 |
Copies | ○ | バリアント型(Variant) | 印刷部数を指定します。この引数を省略すると、印刷部数は 1 部になります。 |
Preview | ○ | ブール型(Boolean) | True の場合、印刷をする前に印刷プレビューを実行します。False、または省略した場合、直ちに印刷を行います。 |
ActivePrinter | ○ | バリアント型(Variant) | アクティブなプリンタの名前を指定します。 |
PrintToFile | ○ | ブール型(Boolean) | True の場合、ファイルへ出力します。引数 PrToFileName が省略された場合、出力先のファイル名を指定するためのダイアログ ボックスを表示します。 |
Collate | ○ | ブール型(Boolean) | True の場合、部単位で印刷します。 |
PrToFileName | ○ | バリアント型(Variant) | 引数 PrintToFile が True の場合、この引数に印刷したいファイルの名前を指定します。 |
IgnorePrintAreas | ○ | ブール型(Boolean) | True の場合、印刷範囲を無視してオブジェクト全体を印刷します。 |
PrintOutメソッドの使用例
ワークシート1枚の印刷
印刷ヘッダーや、用紙サイズなどの設定してから印刷する例です。
Sub sample_eb07f_01()
With Worksheets("2016年度")
'印刷ヘッダー設定(太字、18pt、シート名表示)
.PageSetup.CenterHeader = "&B&18&A 売上一覧表"
'日付表示
.PageSetup.RightHeader = "印刷日 : &D"
'用紙サイズ、方向
.PageSetup.PaperSize = xlPaperA4
.PageSetup.Orientation = xlPortrait
'印刷
.PrintOut
End With
End Sub
マクロを実行すると直ちに印刷がはじまります。下図は、印刷イメージをプリンターへ出力せずに、ファイルへ保存したものになります。
全ワークシートの印刷
ブック内の全シートを印刷する例です。
Sub sample_eb07f_02()
'ブック内全シートの印刷
Worksheets.PrintOut
End Sub
複数ワークシートの印刷
ブック内の複数ワークシートを印刷する例です。
Sub sample_eb07f_03()
Dim varSheets As Variant
'印刷したいシート名の配列
varSheets = Array("2014年度", "2016年度")
'ワークシート選択
Worksheets(varSheets).Select
'選択シートの印刷
ActiveWindow.SelectedSheets.PrintOut
End Sub
ページを指定した印刷プレビュー表示
ページ指定した印刷プレビューを表示する例です。マクロを実行するとまずプレビュー画面が表示されますので、その画面で印刷ボタンを押下すると印刷がはじまります。
Sub sample_eb07f_04()
'アクティブシートの2~3ページの印刷プレビューを表示
ActiveSheet.PrintOut From:=2, To:=3, Preview:=True
End Sub