簡體   English   中英

使用VBA保護VBA項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM