VBAでアクティブシート以外のシートを全て削除する!

エクセルでシートを削除することは、よくあります。必要なくなったシートを削除したい時、エクセルVBAを使うと、一括で削除できます。ここでは、エクセルVBAで、アクティブティシート以外のシートを、すべて削除する方法を紹介しています。必要なシートだけ、シートを選択してアクティブティにしておきます。そこでVBAを実行させると、その他のシートが全て削除できる仕組みです。シートの削除するときは、必ず確認のメッセージがでますが、このメッセージは非表示にして、独自のメッセージを表示させることも、ここでは紹介しています。シートを一度削除すると、元には戻せないので、一括でシートを削除することに不安がある場合は、メッセージを表示させて確認しながら、アクティブティシート以外のシートを削除した方がいいでしょう。

 

 

アクティブシート以外のシートを削除

エクセルVBAで、アクティブシート以外のシートを削除します。

シートを削除する時、その前に、シートの削除の確認メッセージが、必ず出ます。

 

 

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

Application.DisplayAlerts = False

DisplayAlerts プロパティに True で元に戻します。

Application.DisplayAlerts = True

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

Sub アクティブシート以外を削除()
Dim DShe As Worksheet
With Application
Application.DisplayAlerts = False
For Each DShe In Worksheets
If DShe.Name <> ActiveSheet.Name Then DShe.Delete
Next
Application.DisplayAlerts = True
End With
End Sub

 

 

確認してからアクティブシート以外のシートを削除

シートを削除する前に必ず出る、確認メッセージは非表示にして、独自のメッセージを表示させて、確認しながらアクティブシート以外の、シートを削除するVBAです。

ここでは「ファイルを削除してもいいですか?」の、確認メッセージを表示させましょう。

Sub 確認してアクティブシート以外を削除()
Dim DShe As Worksheet
With Application
Application.DisplayAlerts = False
For Each DShe In Worksheets
If DShe.Name <> ActiveSheet.Name Then DShe.Delete
MsgBox “ファイルを削除してもいいですか?”
Next
Application.DisplayAlerts = True
End With
End Sub

シートの削除

エクセルVBAで、アクティブシート以外のシートを削除しましたが、削除するシートが決まっている場合は、名前を設定して、それ以外のシートを削除するVBAもあります。一度きりの作業だったら手作業でもいいのですが、よく行う作業であるならば、あらかじめ、アクティブシート以外のシートを削除するVBAを作っておいた方が、作業が楽になります。意外と、シートの削除は面倒で、削除するシートが多いと時間もかかります。一度シートを削除すると、元に戻らないので厄介です。VBAを使うと、間違ったシートを削除するといった失敗も防げます。

こちらの記事もご覧ください。⇒エクセルVBAで指定したシート以外のシートを削除する方法