【问题标题】:Hide worksheet in Excel Add-In from other VBA Projects从其他 VBA 项目中隐藏 Excel 加载项中的工作表
【发布时间】:2017-06-02 09:42:37
【问题描述】:

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

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

Settings 工作表设置为xlVeryHidden,但是可以通过 VBA 代码访问它。无论如何在Excel中防止这种情况?例如,在一个模块中,我可以使用Option Private Module 方法。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

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

    但是,没有什么可以阻止黑客......

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

    ...查看您的设置表。

    有几个选项:

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

    2) 在设置表中使用某种加密并在代码中对其进行解密,一个非常简单的示例是使用数字代替文本,因此 'example' 将 = '5,24,1,13,16, 12,5',但显然你想使用比它更复杂的东西,你可以在网上搜索很多方法来做到这一点。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多