首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VBA保护VBA项目

使用VBA保护VBA项目
EN

Stack Overflow用户
提问于 2015-06-30 09:33:28
回答 1查看 1.3K关注 0票数 1

当我的VB项目完成运行时,它将保存excel工作簿的新副本,然后将其电子邮件发送到提供的发行版。当代码运行时,VB项目应该是不受保护的,允许VBE抛出的任何错误被“调试”(锁定的项目是不可能的--不幸的是,调试的原因不能在错误处理程序中说明;它主要与运行在SQL服务器数据库上的查询有关)。

但是,我希望VB项目一旦被保存为新副本,就会受到保护,从而防止任何接收到分布式副本的人能够访问VB项目。

我已经进行了搜索,似乎找不到任何有关使用VBA锁定VB项目的答案。如有任何指导,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-30 10:43:51

基于这条线

代码语言:javascript
复制
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 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31134582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档