Con la funzione sottostante puoi controllare se un VBProject è protetto prima di provare a modificare il progetto:

Function ProtectedVBProject(ByVal wb As Workbook) As Boolean

' returns TRUE if the VB project in the active document is protected

Dim VBC As Integer

VBC = -1

On Error Resume Next

VBC = wb.VBProject.VBComponents.Count

On Error GoTo 0

If VBC = -1 Then

ProtectedVBProject = True

Else

ProtectedVBProject = False

End If

End Function

Esempio:

If ProtectedVBProject(ActiveWorkbook) Then Exit Sub