全シートを印刷するマクロを実行したところ、以下のようなエラーが出てしまったのでメモ。
シートが非表示になっている場合にSheets(index).PrintOut
を実行すると上記のエラーになってしまいます。
この場合、シートをいったん再表示にすることでエラーを回避できます。
Sheetオブジェクトの持つVisible
が表示・非表示の状態を表しているので、これを利用することで印刷実行の抑止ができるようになります。
以下の例では、非表示になっているシートも含めてすべて印刷します。
Sub test() Dim i As Integer For i = 1 To Sheets.Count 'シートを表示にする Sheets(i).Visible = True Sheets(i).PrintOut Next i End Sub
以下の例では、非表示になっているシートは印刷されません。
Sub test() Dim i As Integer For i = 1 To Sheets.Count '表示になっているシートのみ印刷する If Sheets(i).Visible Then Sheets(i).PrintOut End If Next i End Sub