【VBA】シートを削除する

シートを削除する前のお約束として、
 ・確認メッセージを非表示
にしましょう!

PR

VBAコード

ここでは例として、
 ・シート「aiueo」を削除
します。

シートを削除(実行前)
シートを削除(実行前)
Option Explicit

Sub sample()

    Dim sheetName As String
    Dim sheet As Worksheet
    
    '削除対象のシート名を指定
    sheetName = "aiueo"

    'シート数分繰り返し
    For Each sheet In ThisWorkbook.Worksheets
        '削除対象のシート名が存在するか確認
        If sheet.Name = sheetName Then
            '確認メッセージを非表示
            Application.DisplayAlerts = False
            'シート削除
            Worksheets(sheetName).Delete
            '確認メッセージを表示
            Application.DisplayAlerts = True
        End If
    Next
    
End Sub

「ThisWorkbook」により、「Workbookオブジェクト」を取得しています(12行目)。

「Workbookオブジェクト」の「Worksheets」プロパティにより、「Sheetsコレクション」を取得しています(12行目)。

存在しないシートの削除を試みるとエラーとなるため、削除前に存在するかどうかを確認しています(14行目)。

「Worksheetオブジェクト」の「Delete」メソッドにより、シートを削除しています(18行目)。

削除対象のシートが存在することを確認するために、シートの数分繰り返し処理をしています(12~22行目)。
※「シートの数」=「Sheetsコレクションの数」です

「確認メッセージを非表示」により以下のメッセージが表示されなくなり、VBAが一時停止してしまうことを防止します。

確認メッセージ
確認メッセージ

シートを削除した後に、「確認メッセージを表示」にしましょう。
※元に戻しましょう。

PR

実行結果

シートを削除できました。

シートを削除(実行後)
シートを削除(実行後)
PR

参考

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●ThisWorkbook


●「Workbookオブジェクト」の「Worksheets」プロパティ


●「Worksheetオブジェクト」の「Delete」メソッド


●確認メッセージを非表示/表示