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

エクセルでシートを削除する時に、削除するシートが複数ある!しかも大量にある場合、シートを削除するのは、面倒で大変です、シート名も1つ1つ確認しながらシートを削除しなければいけません。しかも、シートは一度削除すると、2度と元には戻りません。慎重に削除しないと、取り返しのつかないことになってしまいます。ここでは、そのようなことがないように、エクセルVBAで、複数のシートを削除する方法を紹介しています。エクセルVBAで、シート名を指定して複数のシートを削除したり、アクティブシートをまとめて、一括で削除したりしています。

 

 

複数シートを削除する

アクティブシートをまとめて削除

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

Delete メソッドで、アクティブシートをまとめて、一括で削除するVBAです。

ActiveWindow.SelectedSheets で選択している全てのシートを取得できます。

Sub アクティブシートの削除()
ActiveWindow.SelectedSheets.Delete
End Sub

ですが、上のVBAを実行しようとすると、シートを削除していいかを問う、確認のメッセージが出ます。

 

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

Application.DisplayAlerts = False

 

 

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

削除したいシートを、あらかじめ全て選択しておきます。

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

選択している複数のシートが、全て削除されます。

ボタンをクリック時に、アクティブシートをまとめて削除するコードです。

Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
End Sub

 

 

シート名を指定して複数シートを削除する

Sheet2 と Sheet3 を指定して、シートを削除するコードです。

Sub 複数シートを削除P()
Application.DisplayAlerts = False
Sheets(Array( “Sheet2”, “Sheet3”)).Delete
Application.DisplayAlerts = True
End Sub

シート Sheet2  Sheet3が削除されます。

シート名「契約№」「氏名」「住所」 を削除するコードです。

Sub 複数シートを削除Q()
Application.DisplayAlerts = False
Sheets(Array( “契約№”, “氏名”, “住所”)).Delete
Application.DisplayAlerts = True
End Sub

シート「契約№」「氏名」「住所」 が削除されます。

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

インデックス番号を指定して、シートを削除できます。

Sub 複数シートを削除R()
Application.DisplayAlerts = False
Sheets(Array(1, 2, 5)).Delete
Application.DisplayAlerts = True
End Sub

複数シートの削除

エクセルで、いつも削除するシートが決まっているときは、VBAを作成するのがお勧めです。シートの削除は、「元に戻す」機能で元に戻すことはできません。となると、間違えてシートを削除するには、よく確認して削除しなければいけません。そうなると、複数のシートの削除する場合、意外と時間がかかってしまいます。エクセルVBAで、複数シートを削除すると、そのような問題が全て解決します。とにかく一括で、指定したシートを全て削除できます。一度VBAで作成すると、削除するシートが変更になった場合でも、シート名を修正するだけで、使いまわしができます。今まで大変だった作業が、効率よくできます。

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