はじめに
Excelで作業をしていると、
「使わなくなったシートを整理したい」
「自動処理の最後に不要なシートを削除したい」
そんな場面が出てきます。
VBAを使えば、削除したいシートを指定して、
必要なタイミングで安全に削除することができます。
ここでは、シートを削除する基本のコードと、そのしくみを解説します。
まずはコードを確認
Worksheets("Sheet1").Delete
もっともシンプルな書き方です。
指定したシートを削除します。
コードのしくみを解説
削除時に表示される確認メッセージについて
通常、シートを削除するときは
「このシートを削除しますか?」
という確認メッセージが表示されます。
VBAで自動処理を行う場合、このメッセージを非表示にしたいことがあります。
確認メッセージを表示しないようにする
Application.DisplayAlerts = False
Worksheets("Sheet1").Delete
Application.DisplayAlerts = True
- DisplayAlerts = False
→ メッセージを表示しない
- DisplayAlerts = True
→ 元に戻す(必ず戻すのが安全)
変数で指定したシートを削除する
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ws.Delete
後続の処理でシートを扱う場合は、変数に入れておくと書きやすくなります。
あわせて知っておきたいポイント
アクティブシートを削除する場合
ActiveSheet.Delete
ただし、どのシートがアクティブかによって結果が変わるため、
実務ではあまり推奨されません。
最後の1枚は削除できない
Excelは、最低1枚のシートが必要です。
そのため、シートが1枚しかない場合は削除できません。
複数のシートをまとめて削除したい場合
Worksheets(Array("Sheet1", "Sheet2")).Delete
複数のシート名を配列で指定できます。
使うときに気をつけたいこと
- 削除したシートは元に戻せません
→ バックアップを取っておくと安心です。
- DisplayAlerts を戻し忘れないように
→ 他の処理に影響が出るため、必ず True に戻しましょう。
- シート名のスペルミスに注意
→ 存在しないシート名を指定するとエラーになります。
まとめ
- Worksheets(“名前”).Delete でシートを削除できる
- 確認メッセージを非表示にするには DisplayAlerts を使う
- 複数削除や変数指定など、実務で便利な書き方もある
シートの整理が自動化できると、作業がぐっとスムーズになります。

decopon
シートの削除はシンプルですが、実務では意外と使う場面が多い機能です。
安全に扱えるように、基本の書き方を覚えておくと安心です。

moco
いらなくなったシートは、VBAにそっと片づけてもらおう。
人は、必要な作業に集中できる時間が増えるね。

コメント