【Excel VBA】シートを削除する

この記事では、マクロを使ってシートを削除する方法について解説します。

Worksheetクラスのオブジェクト.Delete

目次

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

下記コードでアクティブなシート(現在表示中のシート)を削除することができます。

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

サンプルコードを実行すると添付のような警告メッセージが表示されます。

メッセージを出さずに削除する

先ほど紹介したコードでは、せっかく自動化しようとマクロでシートを削除するのに止まってしまうため、手動操作が必要になります。

警告メッセージを出さずにシートを削除するコードは以下の通りです。

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

警告メッセージを再度表示させる場合は、
「Application.DisplayAlerts = True」
を最後に追加してください。

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

シート名を指定してシートを削除するコードは以下の通りです。

Sheets(“シート名”).Delete

具体的なコードは以下の通りです。

Sub シート削除()
    Application.DisplayAlerts = False
    Sheets("Sheet1").Delete
End Sub

Sheet1の部分を変更すれば、対象のシートを削除することができます。

シート名が変数の場合

シート名が変わる場合そのままでは利用できません。以下のコードのように変更することで、変数でもシートを削除することができます。

Sub シート削除()
    Dim SheetName As String
    Dim i As Long
    
    Application.DisplayAlerts = False
    
    For i = 1 To 3
        SheetName = "Sheet" & i
        Sheets(SheetName).Delete
    Next
End Sub

上記コードを実行すると、Sheet1、Sheet2、Sheet3という名前のシートを削除することができます。

複数のシートをまとめて削除する

複数のシートをまとめて削除する場合、Array関数を使って複数のシートを指定して削除することができます。

Sub シート削除()
    Application.DisplayAlerts = False
    Sheets(Array("Sheet1", "Sheet2")).Delete
End Sub
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次