[英]Protect VBA project using VBA
當我的VB項目完成運行時,它將保存excel工作簿的新副本,然后通過電子郵件將其發送到提供的分發中。 運行代碼時,VB項目應不受保護,允許VBE拋出的任何錯誤都被“調試”(對於鎖定的項目是不可能的-不幸的是,錯誤原因不能在錯誤處理程序中解釋調試的原因;主要是與針對SQL Server數據庫運行的查詢有關)。
但是,我希望將VB項目保存為新副本后對其進行保護,以防止收到分布式副本的任何人都可以訪問VB項目。
我進行了搜索,但似乎找不到與使用VBA鎖定VB項目有關的任何答案。 任何指導表示贊賞。
基於此線程 :
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.