Is it possible to protect\unprotect a VBA project using
code in Excel 97 or above? I am looking for similar
functionality as protecting\unprotecting a
worksheet\workbook.
Thanks,
Rohit Thomas
Other than using SendKeys, you cannot protect/unprotect a VBProject using
code.
--
Cordially,
Chip Pearson
Microsoft MVP - Excel
www.cpearson.com ch...@cpearson.com
"Rohit Thomas" <rohit...@comcast.net> wrote in message
news:00bf01c36d75$e7edfa00$a101...@phx.gbl...
Old post from Bill Manville
------------------------
You will need to use SendKeys to unprotect the project(s) and reprotect
after replacing the modules.
Here's something to get you started:
Sub TestProtect()
Workbooks.Add.SaveAs "C:\Temp\Book1.xls"
ProtectVBProject Workbooks("Book1.xls"), "Jack"
Workbooks("Book1.xls").Close True
End Sub
Sub TestUnprotect()
Workbooks.Open "C:\Temp\Book1.xls"
UnprotectVBProject Workbooks("Book1.xls"), "Jack"
End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
'can't do it if already unlocked!
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
' now use lovely SendKeys to quote the project password
SendKeys Password & "~~"
Application.VBE.CommandBars(1).FindControl(Id:=2578,
recursive:=True).Execute
End Sub
Sub ProtectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
'can't do it if already locked!
If vbProj.Protection = 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
' now use lovely SendKeys to set the project password
SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & _
Password & "~"
Application.VBE.CommandBars(1).FindControl(Id:=2578,
recursive:=True).Execute
WB.Save
End Sub
Bill Manville
MVP - Microsoft Excel, Oxford, England
No email replies please - reply in newsgroup
--
Regards Ron de Bruin
(Win XP Pro SP-1 XL2002 SP-2)
www.rondebruin.nl
"Chip Pearson" <ch...@cpearson.com> wrote in message news:ubdWGZXb...@TK2MSFTNGP10.phx.gbl...