[Excel] [VBA] 全てのシートを選択する
VBAですべてのシートを選択したい場合、
Worksheets.Select
の一文のみで選択されます。
ただし、これを実行した場合、エラーになる時があります。
「アプリケーション定義またはオブジェクト定義のエラーです。」

原因は、非表示シートです。
非表示にしているシートがあると、Worksheets.Selectは失敗します。
もう少し具体的なエラーだったらいいのですが、この原因を見つけるまでにしばらくかかりました。
というわけで、非表示シートを除外して、全てのシートを選択する関数を作りました。
'
' 全てのシートを選択する
' 非表示シートは含めない
'
Sub AllSheetsSelect()
Dim i As Long
Dim sh As Worksheet
Dim targetSheets() As String
ReDim targetSheets(0)
For Each sh In ActiveWorkbook.Worksheets
If sh.Visible = xlSheetVisible Then
ReDim Preserve targetSheets(i)
targetSheets(i) = sh.Name
i = i + 1
End If
Next sh
If targetSheets(0) = "" Then Exit Sub
Worksheets(targetSheets).Select
End Sub
表示されているシートのみの配列を作成して、Selectします。
「If sh.Visible = xlSheetVisible Then」ここの条件を変えれば、他にも選択条件を追加することができます。
== ランキングに参加しています。ぜひクリックお願いします ==
[Excel] セルの書式設定を使いこなす! 「電気代安くなるシール」詐欺じゃなかったらスゴイのに