【Excel VBA】シートを削除する基本コードと安全な使い方をやさしく解説

VBA & Excel
スポンサーリンク
スポンサーリンク

はじめに

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
decopon

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

moco
moco

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

コメント

タイトルとURLをコピーしました