指定したシート以外のWorkSheetをすべて削除したい
VBAで開いているWorkbookのシート削除を複数行う場合があります。
一つずつ手動で削除すると間違いのもとなので、VBAで一括処理しましょう。
指定シートが一つの場合
'■指定したシート以外のシートを削除する(削除しないシートは一つ) Private Function call_sheetDelete() Dim ws As Worksheet '■シート削除の確認ポップアップを非表示 Application.DisplayAlerts = False For Each ws In ActiveWorkbook.Worksheets If ws.name <> "一覧表" Then ws.Delete '右記は表示されない「シートを削除すると元に戻せません。また、一部のデータが削除される可能性があります。それでも問題ない場合は[削除]をクリックしてください。」 End If Next ws Application.DisplayAlerts = True End Function
指定シートが複数の場合
'■指定したシート以外のシートを削除する(削除しないシートは複数) Private Function call_sheetDelete2() Dim ws As Worksheet '■シート削除の確認ポップアップを非表示 Application.DisplayAlerts = False For Each ws In ActiveWorkbook.Worksheets Select Case ws.name '■シート「一覧表」、シート「設定シート」は何もしない Case "一覧表", "設定シート" '■それ以外は削除する Case Else ws.Delete '右記は表示されない「シートを削除すると元に戻せません。また、一部のデータが削除される可能性があります。それでも問題ない場合は[削除]をクリックしてください。」 End Select Next ws Application.DisplayAlerts = True End Function
関連記事
- 特定シートより右側のワークシートを削除する【ExcelVBA】
- 「シートがあれば削除/なければシート作成する」処理をパーツ化する【ExcelVBA】
- ActiveSheet以外のWorkSheetを削除する【エクセルVBA】
コメント
マクロ初心者です、不要なシートをいちいち消していましたが、この
マクロのおかげで素早く消すことができ作業が一段と効率UPしました
ありがとうございました。