С помощью функции ниже вы можете проверить, защищен ли VBProject, прежде чем пытаться редактировать проект:

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

Пример:

If ProtectedVBProject(ActiveWorkbook) Then Exit Sub