-
可視および非表示のワークシートを印刷する方法: 以下のVBAコードを使用すると、可視および非表示のワークシートを印刷できます。
Sub PrintVisibleAndHiddenWorksheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ' ワークシートが可視状態かどうかを確認 If ws.Visible = xlSheetVisible Then ' ワークシートを印刷する ws.PrintOut Else ' ワークシートを一時的に可視状態に変更して印刷する ws.Visible = xlSheetVisible ws.PrintOut ' ワークシートを元の非表示状態に戻す ws.Visible = xlSheetHidden End If Next ws End Sub
上記のコードでは、
PrintVisibleAndHiddenWorksheets
という名前のサブルーチンが作成されています。このサブルーチンでは、ThisWorkbook
内のすべてのワークシートをループ処理し、可視状態のワークシートはそのまま印刷し、非表示状態のワークシートは一時的に可視状態に変更して印刷後、元の非表示状態に戻します。 -
特定のワークシートのみを印刷する方法: 上記のコードでは、すべてのワークシートが対象ですが、特定のワークシートのみを印刷したい場合は、以下のようにコードを変更します。
Sub PrintSpecificWorksheets() Dim ws As Worksheet Dim targetSheets As Variant ' 印刷したいワークシートの名前を指定 targetSheets = Array("Sheet1", "Sheet3", "Sheet5") For Each ws In ThisWorkbook.Worksheets ' ワークシートが指定されたワークシートかどうかを確認 If IsInArray(ws.Name, targetSheets) Then ' ワークシートを印刷する ws.PrintOut End If Next ws End Sub Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1) End Function
上記のコードでは、
PrintSpecificWorksheets
という名前のサブルーチンが作成されています。targetSheets
変数に印刷したいワークシートの名前を配列で指定し、ループ処理中に指定されたワークシートのみを印刷します。IsInArray
関数は、指定されたワークシートがtargetSheets
配列に存在するかどうかを確認するために使用されます。
これらの方法を使用すると、VBAを使ってExcelの可視および非表示のワークシートを印刷することができます。必要に応じて、コードをカスタマイズしてさまざまな要件に対応できます。