[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] セルの書式設定を使いこなす! 「電気代安くなるシール」詐欺じゃなかったらスゴイのに