Vba 如何屏蔽excel宏代码

Vba 如何屏蔽excel宏代码,vba,excel,password-protection,Vba,Excel,Password Protection,我将以下内容存储在excel宏中:- Sub Sales() Dim StrSQl As String Con = "Provider=IBMDA400;Data Source=192.168.2.2;User Id=boss;Password=1we56" Set Db = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.recordset") Db.connectionSTring = Con Db.Open

我将以下内容存储在excel宏中:-

Sub Sales()

Dim StrSQl As String

Con = "Provider=IBMDA400;Data Source=192.168.2.2;User Id=boss;Password=1we56"

Set Db = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.recordset")
Db.connectionSTring = Con
Db.Open
StrSQl = "select myuc, sum (myac) as Amount from myabc.myqwerty where mydt >= 20100101 and mydt <= 20100831 group by (mycl)"
rs.Open StrSQl, Db, 3, 3
Sheet1.Cells(10, 1).CopyFromRecordset rs
rs.Close
Set rs = Nothing
Set cn = Nothing
End Sub
Sub-Sales()
作为字符串的Dim StrSQl
Con=“Provider=IBMDA400;数据源=192.168.2.2;用户Id=boss;密码=1we56”
Set Db=CreateObject(“ADODB.Connection”)
Set rs=CreateObject(“ADODB.recordset”)
Db.connectionSTring=Con
Db.Open

StrSQl=“选择myuc,sum(myac)作为myabc.myqwerty中的金额,其中mydt>=20100101和mydt您最安全的选项是保护您的整个宏代码,无论用户是否需要输入密码

  • 进入Visual Basic编辑器(VBE)
  • 在“项目资源管理器”窗口中选择要保护的项目
  • 右键单击…VBA项目属性
  • 单击“保护”选项卡,然后选中“从查看中锁定项目”并验证密码
  • 保存工作簿,关闭并重新打开以建立保护
除了编写
COM
外,这是安全的,因为您的代码将得到保护。请注意,有些产品可能会破解VBA代码

你在想什么

事情是这样的。再多的加密也帮不了你,因为如果Excel本身可以对数据进行解密(它可以,否则连接永远无法进行),那么恶意类型也可以这么做

正确的方法是向用户询问用户ID和密码,并使用这些信息动态构造连接字符串

这样,敏感信息只存在于用户的头脑中,并且(暂时)存在于他们正在使用的机器上(不管怎样,这可能是他们的机器)。任何人都无法从Excel电子表格中获取这些信息


除此之外,还有功能ID(在不同用户之间共享)几乎总是一个坏主意,因为它使审核成为一场噩梦。

我想说密码保护vba项目。好吧,但这不是最好的选择。有办法破解它,但如果ID和密码被屏蔽,这将提供额外的安全性。@Bob有办法破解每种类型的安全性,不幸的是这是事物的本质,没有系统可以创建不能被破坏的。人们可能需要付费程序来破解VBA项目,因此不太可能麻烦。好答案一如既往:)(+1获得铜牌的第10次投票).但是,我们可以指出这个线程:它描述了VBA安全性是如何实现的poor@JMaxThx.非常正确,如果有人决定走这条路,破坏VBA保护相对简单(对于当前的Eccel版本)。
Con = "Provider=IBMDA400;Data Source=192.168.2.2;User Id=boss;Password=1we56"