从其他VBA项目中隐藏Excel加载项中的工作表

时间:2017-06-02 09:42:37

标签: excel vba excel-vba

我正在构建一个Excel加载项,用于在加载项的Settings工作表中存储用户设置。我使用Settings表作为布尔值的存储,可能还有用户的注册详细信息。

但是,如果我打开一个新的VBA项目并将加载项作为参考(在VBA:Tools > References > MY Add-In中),那么我可以访问Settings工作表并可能破坏其上的密码并破解注册细节。

Settings表设置为xlVeryHidden,但可以通过VBA代码访问。反正有没有在Excel中阻止这种情况?例如,在模块中,我可以使用Option Private Module方法。

1 个答案:

答案 0 :(得分:0)

如果密码保护并锁定项目,则无法查看代码和工作表对象。转到工具> VBAObject属性>然后选择“保护”选项卡,选中“锁定项目以供查看”,然后在“密码查看对象属性”中设置密码。

然而,没有什么可以阻止黑客......

For s = 1 to Sheets.Count
   Sheets(s).visible = True
Next s

...查看您的设置表。

有几个选择:

1)将设置表放在单独的工作簿或其他格式(如.txt)中并从中读取(推荐)。

2)在你的设置表中使用某种加密并在你的代码中解密它,一个非常简单的例子是使用数字代替文本,所以'example'will ='5,24,1,13,16, 12,5',但显然你想要使用比它更复杂的东西,你可以在网上搜索很多方法。

3)使用2,但将解密代码存储在其他地方。

请注意,对于那些知道自己在做什么的人来说,真的无法prevent a VBA hack,除非您使用选项1/3并且有办法将文件存储在不公开的地方访问。