【VBA】指定したシート以外のシートを消すコード

エクセルではデフォルトでSheet1というシートがあります。

設定によってはSheet2,Sheet3まである場合もあります。

マクロで色々処理したシートに名前をつけるとき、デフォルトのシートは消してしまいたい時は以下のようなコードを書きます。

Sub DeleteSheets(wb As Workbook, no_delete_sheet_name As String)

    For Each ws In wb.Worksheets
        
        If ws.name <> no_delete_sheet_name Then
            Application.DisplayAlerts = False
                Debug.Print ws.name & "を削除しました"
                ws.Delete
            Application.DisplayAlerts = True                
        End If

    Next ws

End Sub

Sub Test()
   
    Dim wb As Workbook
    Set wb = ThisWorkbook

    ' Sheet1 以外のシートを削除
    Call DeleteSheets(wb, "Sheet1")

End Sub

これでSheet1以外は消えます。

For Eachは必ず覚えましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA