シートの削除をさせない方法【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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です