ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Protect\Unprotect VBA project (https://www.excelbanter.com/excel-programming/275552-protect%5Cunprotect-vba-project.html)

Rohit Thomas

Protect\Unprotect VBA project
 
Hello All,

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

Chip Pearson

Protect\Unprotect VBA project
 
Rohit,

Other than using SendKeys, you cannot protect/unprotect a VBProject using
code.

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
www.cpearson.com



"Rohit Thomas" wrote in message
...
Hello All,

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




Ron de Bruin

Protect\Unprotect VBA project
 
Here is a example with unreliable Sendkeys


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:=257 8,
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:=257 8,
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" wrote in message ...
Rohit,

Other than using SendKeys, you cannot protect/unprotect a VBProject using
code.

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
www.cpearson.com



"Rohit Thomas" wrote in message
...
Hello All,

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







All times are GMT +1. The time now is 05:40 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com