ブック内の特定の複数シートを印刷したいケースがあります。
その場合はPrintOutメソッドで必要なシートを印刷します。
複数シートを印刷するサンプルコード
Public Sub sample() '①■全てのシートを対象に処理する(ActiveWorkbook) Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets '■1枚づつ印刷処理を行う(非表示シートがある場合はエラー発生するため、表示しているシートのみ対象とする) If ws.Visible = xlSheetVisible Then ws.PrintOut End If Next '②■全てのシートを対象に処理する(ActiveWorkbook) Dim i As Long Dim arr As Variant For i = 1 To Worksheets.Count '■表示されているシートを配列に格納 If Worksheets(i).Visible = xlSheetVisible Then If IsEmpty(arr) Then ReDim arr(0) Else ReDim Preserve arr(UBound(arr) + 1) End If arr(UBound(arr)) = Worksheets(i).Name End If Next i '■配列にまとめたものを一気に印刷する Sheets(arr).PrintOut End Sub
注意点
- ①で都度印刷処理を行う場合、シートのたびに印刷処理がかかります
(途中で他の人が印刷すると間に入ってしまいます) - ②配列に格納しての場合、シートを1回の印刷処理で印刷します。
- 非表示シートがあった場合はエラーが出るため、表示非表示のチェックを行います。
- ブック全体を印刷する場合はこちらの記事参照。
コメント