Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从其他VBA项目隐藏Excel加载项中的工作表_Vba_Excel - Fatal编程技术网

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

从其他VBA项目隐藏Excel加载项中的工作表,vba,excel,Vba,Excel,我正在构建一个Excel加载项,该加载项将用户设置存储在加载项中的settings工作表中。我使用设置表基本上是存储布尔值和用户的注册详细信息 但是,如果我打开一个新的VBA项目并将外接程序作为参考(在VBA中:Tools>References>MY Add-In),那么我可以访问设置工作表,并可能会破坏其密码并破解注册详细信息 设置工作表设置为xlVeryHidden,但可通过VBA代码访问。在Excel中是否有防止这种情况发生的方法?例如,在模块中,我可以使用选项Private module

我正在构建一个Excel加载项,该加载项将用户设置存储在加载项中的
settings
工作表中。我使用
设置
表基本上是存储布尔值和用户的注册详细信息

但是,如果我打开一个新的VBA项目并将外接程序作为参考(在VBA中:
Tools>References>MY Add-In
),那么我可以访问
设置
工作表,并可能会破坏其密码并破解注册详细信息


设置
工作表设置为
xlVeryHidden
,但可通过VBA代码访问。在Excel中是否有防止这种情况发生的方法?例如,在模块中,我可以使用
选项Private module
方法。

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

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

For s = 1 to Sheets.Count
   Sheets(s).visible = True
Next s
…查看您的设置表

有几种选择:

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

2) 在设置表中使用某种加密并在代码中解密,一个非常简单的示例是使用数字代替文本,因此“示例”将为“5,24,1,13,16,12,5”,但显然,您希望采用比这更复杂的方法,并且您可以在线搜索多种方法来实现这一点

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

但是要注意,对于那些知道自己在做什么的人来说,真的没有办法,除非您使用选项1/3,并且有办法将文件存储在不可公开访问的地方