エクセルではデフォルトで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は必ず覚えましょう。










コメントを残す