Question: Protecting workbook structure will prevent a user from deleting sheets. But how could I (using VBA) prevent a user from deleting a *particular* sheet I designate? I've seen examples where an active sheet is prevented from deletion by

```
Set mymenubar = CommandBars.ActiveMenuBar
mymenubar.Controls("Edit").Controls("Delete sheet").Visible = False

```

in its `Worksheet_Activate` event but that of course only works if the sheet is activated.  

Is there a way to prevent a sheet from being deleted whether active or no?  

For clarity: I'm fine with the user deleting some sheets, just not a couple of particular sheets.  

So protecting workbook structure won't work.

Answer: 
"there isn't an event that can be used to detect when a sheet is about to be deleted"

Since Office 2013, it is possible with the **SheetBeforeDelete** event.
Maybe you could try to protect the structure of the workbook in SheetBeforeDelete.
See my example:

```
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    ThisWorkbook.Protect Structure:=False
End Sub

Private Sub Workbook_SheetBeforeDelete(ByVal Sh As Object)
    If Sh.Name = "Example" Then
        ThisWorkbook.Protect Structure:=True
    End If
End Sub

```