Excel VBAでシートを削除する方法:DeleteとDisplayAlertsを使用

Excelのシートを削除するには、Deleteメソッドを使います。



Homeに戻る > Excel シートのTipsへ

Deleteを実行すると警告メッセージを表示し、VBAは停止します。

停止してほしくないので、DisplayAlertsをFalseにし表示しないようにします。

その後、DisplayAlertsをTrueにし元に戻します。

下のコードは下記の流れになっています。

  1. DisplayAlerts = False で警告メッセージをOFFにしています。
  2. 全シートをループし、該当のシート名かどうか判定します。
    もし、対象のシートの場合、Dleteでシートを削除しループを抜けます。
  3. DisplayAlerts = True で警告メッセージをONにし元に戻します。

関連するTipsの「Excel練習問題2:シートの追加・削除・移動・コピーを行う」も参照してください。


シートを検索し、見つかればシートを削除するVBA

Excelシートコード

Excelコマンドボタンクリックイベント

Private Sub CommandButton1_Click()
    ExDeleteSheet "Sheet3"
End Sub

'指定されたシート名のシートを削除
Private Sub ExDeleteSheet(sheetname As String)
    Dim i As Integer
    Dim j As Integer
    
    '警告メッセージの非表示
    Application.DisplayAlerts = False

    For i = 1 To Sheets.Count
        '指定のシート名発見
        If Sheets(i).Name = sheetname Then
            '削除
            Sheets(i).Delete
            Exit For
        End If
    Next

    Application.DisplayAlerts = True
End Sub

実行結果

「Sheet3」があるブックで実行します。

シートを削除ボタンをクリックすると、イベントが開始します。



すると下のように 「Sheet3」は削除されます。



DisplayAlertsをFalseにしないと、「このシートは完全に削除されます。続けますか?」と警告メッセージが表示されます。

[削除」ボタンをクリックすると削除され、[キャンセル]ボタンをクリックすると削除されずに、元の画面に戻ります。




Homeに戻る > Excel シートのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved