はじめに
ActiveWorkbook.PrintOut コマンドでは、印刷シートの特定で最初 (From) と最後 (To) のシート指定ができます。
ある特定の複数シートを印刷対象としたい場合には、シートが非表示の場合は印刷されない事を利用して印刷したいシートを振り分ける事が出来ます。
最後に、非表示を表示にすれば、印刷後は元の状態に戻ることができます。
プログラムコード
Sub myPrintOut()
Dim s
For Each s In Worksheets
If s.Name = "Sheet2" Or s.Name = "Sheet3" Then
s.Visible = False
End If
Next s
ActiveWorkbook.PrintOut Preview:=True
For Each s In Worksheets
If s.Name = "Sheet2" Or s.Name = "Sheet3" Then
s.Visible = True
End If
Next s
End Sub
このコードでは、最初に Sheet2 と Sheet3 を非表示にして、印刷対象から除外しています。
次に印刷コマンドをプレビュー付きで実行します。
非表示となったシートは印刷対象から外れます。
最後に、先程非表示にしたシートを表示属性に戻せばOKです。
まとめ
今回は、「非表示のシートは印刷されない」というExcelの仕様を利用したアイデアになります。
話が逸れますが、「非表示のシートはSelectできない」というExcelの仕様もありますので、これを利用したり、エラー対策すれば役に立つかもしれません。
参考にしてみてください。