エクセルVBAでシートを削除する!

エクセルでシートを削除する時、誤って別なシートを、削除してしまったことはないでしょうか。エクセルVBAでシートを削除すると、そのような失敗を防げます。シートを削除するVBAで、アクティブシートを削除できるし、シート名を指定しても削除できます。もし、定期的に、削除するシートが決まっていたら、あらかじめ、そのシートを指定して、削除するVBAを作っておけばいいです。シートの削除は、Delete メソッドで削除します。ボタンを作成して、シートを削除するVBAを登録すると、ボタンをクリックするだけで、シートを削除できます。

 

 

アクティブなシートを削除

エクセルVBAで、シートを削除する時は、Delete メソッドで削除します。

アクティブシートを削除するコードです。

今、選択しているシートが削除されます。

Sub シートの削除()
ActiveSheet.Delete
End Sub

上のVBAを実行しようとすると、確認のメッセージが出ます。

そのメッセージを非表示にするには、DisplayAlerts プロパティに False を設定します。

確認メッセージを非表示にする DisplayAlerts プロパティ

Application.DisplayAlerts = False

 

確認メッセージを非表示にして、アクティブシートを削除するコードです。

Sub シートの削除A()
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub

 

 

シート名を指定して削除

エクセルVBAで、シート名を指定してシートを削除できます。

Sheet1を削除するコードです。

Sub シートの削除B()
Application.DisplayAlerts = False
Worksheets(“Sheet1”).Delete
Application.DisplayAlerts = True
End Sub

シート名「管理表」を、削除するときのコードです。

Sub シートの削除C()
Application.DisplayAlerts = False
Worksheets(“管理表”).Delete
Application.DisplayAlerts = True
End Sub

シートの左端から、2番目のシートを削除するコードです。

Sub シートの削除D()
Application.DisplayAlerts = False
Worksheets(2).Delete
Application.DisplayAlerts = True
End Sub

指定したシートの削除

エクセルVBAで、シートを削除する時、指定したシートを削除することができます。シートを選択してアクティブティにしてから、VBAでシートを削除してもいいですが、削除するシートが決まっている場合は、ボタンを作成して、シート名を指定して削除するVBAを登録した方が、間違いがないです。シートを削除する時、VBAでシートを削除する場合でなくても、確認メッセージは必ず表示されます。それでも、うっかり誤って別のシートを削除してしまうことがあります。一度削除してしまったシートは、もう2度と元には戻りません。そのような失敗を防ぐためにも、エクセルVBAでシートを削除することをお勧めします。

こちらの記事もご覧ください。⇒エクセルVBAでシートをコピーする方法!