シートの削除をさせない方法【ExcelVBA】
worksheetのBeforeDeleteをキャンセルする方法がない為、別の方法でシートの削除を止める方法をとる
BeforeDeleteで削除する前にProtectメソッドでブックを保護し削除を止める
Application.OntimeメソッドでUnProtectメソッドでその後即ブックの保護を解除する方法で実践
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
’指定したシートのイベントプロシージャ
Private Sub Worksheet_BeforeDelete()
ThisWorkbook.Protect
Application.OnTime Now, "sample"
End Sub
’標準モジュール側
Public Sub sample()
Application.DisplayAlerts = False
ThisWorkbook.Unprotect
End Sub