イベントを使用するBeforePrint
と、組み込みの印刷機能でできることを変更できます。マクロは、BeforePrint
'Workbook' の下の 'ThisWorkbook' 内にあります。
たとえば、次のように印刷されないようにシート 4 を非表示にすることができます。
Private Sub aWorkbook_BeforePrint(Cancel As Boolean)
Sheets(4).Visible = xlSheetHidden
End Sub
この方法の欠点はAfterPrint
、シートを再表示する方法がないことです。したがって、印刷ダイアログを回避する必要があります。これにはいくつかの方法がありますが、ここでは非常に単純な方法を 1 つ紹介します。(注: 考慮する必要がある他の多くの印刷シナリオがある場合、これは適切な解決策ではない可能性があります)
ここでは、印刷するシートを正確に指定しています (シート 1 と 4 のみ)。番号の代わりに名前を使用したり、ループを作成して変数を探したりして、印刷するシートを決定することもできます。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Sheets(Array("1", "4")).PrintOut , , 1
Application.EnableEvents = True
'//prevent the default print
Cancel = True
End Sub