Sub TEST2()
Application.DisplayAlerts = False 'メッセージを非表示
ActiveSheet.Delete 'シートを削除
Application.DisplayAlerts = True 'メッセージを表示
End Sub
シートを削除し終わったら、メッセージは表示したいので、「True」に設定し直しておきます。
では、実行してみます。
メッセージを表示しないでシートを削除できた
メッセージを表示しないで、「Sheet1」を削除できました。
1シートは残す必要がある
エクセルでは、1シートは残す必要があります。
1シートの場合で、シートを削除するとエラーとなってしまいます。
やってみます。
1シートの場合でシートを削除してみる
シートを削除するVBAコードです。
Sub TEST3()
Application.DisplayAlerts = False 'メッセージを非表示
ActiveSheet.Delete 'シートを削除
Application.DisplayAlerts = True 'メッセージを表示
End Sub
実行してみます。
エラーになる
エラーとなりました。
シートを削除する際は、1シートは残すようにしましょう。
条件に一致するシートを削除
条件に一致するシートを削除するというのをやってみます。
シートが存在する場合に削除
存在しないシートを削除すると、エラーとなってしまいます。
ちょっとやってみます。
存在しないシート「Sheet4」を削除してみます。
存在しないシートを削除してみる
「Sheet4」を削除するVBAコードです。
Sub TEST4()
'存在しないシートを削除
Sheets("Sheet4").Delete
End Sub
実行してみます。
エラーとなりました。
シートを削除する際は、シートが存在するかを確認して、削除するといいです。
シートの存在を確認してシートを削除
シートの存在を確認して、シートを削除してみます。
シートの存在を確認して、シートを削除するVBAコードです。
Sub TEST5()
Dim A
For Each A In Sheets
'シートが存在する場合
If A.Name = "Sheet2" Then
Application.DisplayAlerts = False
A.Delete 'シートを削除
Application.DisplayAlerts = True
End If
Next
End Sub
実行すると、エラーを回避して、シートを削除できます。
シートを削除できました。
部分一致したシートを削除
シート名を部分一致で検索して、シートを削除してみます。
部分一致でシートを削除したい
シート名を部分一致で検索して、シートを削除するVBAコードです。
Sub TEST6()
Dim A
For Each A In Sheets
'シート名に「2」を含む場合
If InStr(A.Name, "2") > 0 Then
Application.DisplayAlerts = False
A.Delete 'シートを削除
Application.DisplayAlerts = True
End If
Next
End Sub