Страницы: 1
RSS
Поставить пароль на проект VBA
 
Можно через vba поставить пароль на проект VBA ?  
 
Подскажите пожалуйста
 
Это если "руками" запаролить проект:  
http://www.planetaexcel.ru/forum.php?thread_id=11289  
 
А если VBA сам себя должен запаролить?! То это уже восстание машин будет ={
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Паролить будет других    
 
проблема уже решена
 
каким же образом код может поставить пароль на другой открытый проект?  
 
нашёл только свойство "только для чтения"  
---  
Const vbext_pp_locked = 1  
Const vbext_pp_none = 0  
   Member of VBIDE.vbext_ProjectProtection  
---    
Protection Property (VBA Add-In Object Model)    
Returns a value indicating the state of protection of a project. Read-only.  
Return Values  
vbext_pp_locked The specified project is locked.    
vbext_pp_none The specified project isn't protected.    
---  
 
извиняюсь за некрофильство, но очень надо, подскажите пожалуйста!
 
вот, стащил с одного буржуинского форума (поиск-таки рулит)  
 
'need reference To VBA Extensibility    
'need To make sure that the target project Is the active project    
Sub test()    
   UnprotectVBProject Workbooks("ABook.xls"), "password"    
End Sub    
   
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)    
   '    
   ' Bill Manville, 29-Jan-2000    
   '    
   Dim VBP As VBProject, oWin As VBIDE.Window    
   Dim wbActive As Workbook    
   Dim i As Integer    
       
   Set VBP = WB.VBProject    
   Set wbActive = ActiveWorkbook    
       
   If VBP.Protection <> vbext_pp_locked Then Exit Sub    
       
   Application.ScreenUpdating = False    
       
   ' Close any code windows To ensure we hit the right project    
   For Each oWin In VBP.VBE.Windows    
       If InStr(oWin.Caption, "(") > 0 Then oWin.Close    
   Next oWin    
       
   WB.Activate    
   ' now use lovely SendKeys To unprotect    
   Application.OnKey "%{F11}"    
   SendKeys "%{F11}%TE" & Password & "~~%{F11}", True    
       
   If VBP.Protection = vbext_pp_locked Then    
       ' failed - maybe wrong password    
       SendKeys "%{F11}%TE", True    
   End If    
       
   ' leave no evidence of the password    
   Password = ""    
   ' go back To the previously active workbook    
   wbActive.Activate    
       
End Sub    
   
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''­    
Sub ProtectVBProject(WB As Workbook, ByVal Password As String)    
       
   Dim VBP As VBProject, oWin As VBIDE.Window    
   Dim wbActive As Workbook    
   Dim i As Integer    
       
   Set VBP = WB.VBProject    
   Set wbActive = ActiveWorkbook    
       
   ' Close any code windows To ensure we hit the right project    
   For Each oWin In VBP.VBE.Windows    
       If InStr(oWin.Caption, "(") > 0 Then oWin.Close    
   Next oWin    
       
   WB.Activate    
   ' now use lovely SendKeys To unprotect    
   Application.OnKey "%{F11}"    
   SendKeys "+{TAB}{RIGHT}%V{+}{TAB}" & Password & "{TAB}" & Password & "~"    
   Application.VBE.CommandBars(1).FindControl(Id:=2578, recursive:=True).Execute    
   WB.Save    
End Sub    
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''­  
 
"сам не пробовал, но другим советую" (с)  
 
Timex, может быть, Вы рискнете попробовать?  
а потом нам расскажете :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
зпбыл ссылку на форум оставить: http://www.ozgrid.com/forum/showthread.php?t=13006
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Читают тему
Наверх