Sub UnprotectVBProject(WkBk As Workbook, ByVal Pwd As String) Dim vbProj As Object Set vbProj = WkBk.VBProject If vbProj.Protection <> 1 Then Exit Sub ' already unprotected Set Application.VBE.ActiveVBProject = vbProj SendKeys Pwd & "~~" Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute End Sub