Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4225|回复: 2

如何用Vba程序自动给工程加密

[复制链接]
发表于 2016-5-12 15:00 | 显示全部楼层 |阅读模式
我编写了一段程序,进行了工程加密(密码123)
运行程序,先进行条件判断
如果满足条件执行以下步骤:
1、用程序自动解密(如果不解密,无法删除宏)(已实现)
2、删除宏1(已实现)
3、用vba程序自动给现工程加密,密码123(未实现)

请问各位大神,第3步要怎么实现?谢谢!
发表于 2016-5-12 16:28 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-5-12 19:41 | 显示全部楼层
02761752696 发表于 2016-5-12 16:28
上传附件

Sub 破解密码() '破解密码
    Dim strPassWord As String
    '关闭VBE主窗口
    Application.VBE.MainWindow.Visible = False
    strPassWord = "123" '密码字符串
    '判断是否设置了工程保护,使用密码打开工程
    If ActiveWorkbook.VBProject.Protection = 1 Then
        Application.VBE.CommandBars.FindControl(ID:=2578).Execute
        SendKeys strPassWord & "{ENTER}{TAB}{ENTER}"
        DoEvents '更新工程状态
    End If
    call 删除代码   ’进入第2步

End Sub

‘第2步
Sub 删除代码() ‘删除非“我的工程”的其他模块
Dim a, b
For Each a In Application.VBE.VBProjects
    If a.Name <> "我的工程" Then
        For Each b In a.VBComponents
            If InStr(b.Name, "模块") > 0 Then
                'MsgBox b.Name
                a.VBComponents.Remove (b)
            End If
        Next b
    End If
Next a
End Sub


’第3步,用密码123给现有工程加密(这一步怎么写?)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-22 19:13 , Processed in 0.242407 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表