【エクセルマクロ】特定シートを削除禁止にする:イベント使用

ExcelVBA-特定シートの削除禁止-アイキャッチ エクセルマクロで効率化する

エクセルマクロで、特定シートの削除を禁止するVBAコードをご紹介します。

必要なシートを間違えて削除しないようにするプログラムです。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

特定シートを削除禁止にする

以下のExcelVBAを実行すると、特定シート以外を削除可能にします。


Private Sub Workbook_SheetBeforeDelete(ByVal Sh As Object)

    If ActiveSheet.Name = "Sheet3" Then
        ActiveWorkbook.Protect Structure:=True
    End If
        
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

    If ActiveSheet.Name <> "Sheet3" Then
        ActiveWorkbook.Protect Structure:=False
    End If
    
End Sub

 

削除禁止シートを削除しようとした場合

削除禁止シート:「Sheet3」シート

削除禁止シートを削除しようとしてみます。


 

「シートを削除すると元に戻せません。~」とメッセージ表示されるので「削除」をクリックします。


 

「ブックは保護されています。変更できません。」と表示され、

削除禁止シート「Sheet3」は削除されずに残ります。


 
 

補足

削除禁止シートを削除しようとすると、ブックを保護してシート削除できないようにします。

削除禁止シート以外がアクティブになった場合、ブック保護を解除してシート削除できるようにします。
 

マクロコードを記述する場所は?

VBE画面にて「ThisWorkbook」シートにマクロコードを記述します。


 
 
この記事がお役に立てれば幸いです。
 

【エクセルマクロ】ワークシート処理を自動化する:超便利29選
...

 

「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!