在Excel 2010中隐藏MS VBA屏幕

Cla*_*ric 4 excel vba excel-vba

我在一个办公室工作,我们有一些业余的Excel"专家",他们不断尝试"改进"(即快捷方式,改变逻辑,重写以使"更快")电子表格.当我在一个监管非常规的世界里工作时,宏需要得到公司,客户和监管机构的批准,改变宏是非常禁止的.

其中一个问题是我们有人能够进入代码,即使我们已经设置了密码保护来将工作表设置为只读,并且还在VBA属性屏幕中设置了密码.用户似乎能够绕过密码,并进入主代码,而无需设置密码.

还有什么可以阻止他们进入代码吗?提到的一个想法,但我找不到它的参考是阻止VBA屏幕打开.可以这样做吗?任何其他建议将被感激地接受.

Thu*_*ame 5

一旦您授予用户对PC的物理访问权限,就无法保证您的安全性不会被破坏.整个行业甚至说了很多:

如果一个坏人对您的计算机有不受限制的物理访问权限,那么它就不再是您的计算机了

密码保护充其量只是一种威慑.如果您的用户已经在规避您的保护,那么除了完全删除VBA之外,您无法做任何事情来绝对阻止他们使用VBA.

是否可以在没有VBA功能的情况下安装Office,但是无论如何都无法运行任何宏,因此您可能会失去比锁定它更多的功能.

您可以尝试模糊您的代码,但这并不能阻止您的用户编写更多自己的代码.

但是,您可以使用托管加载项和VSTO,从而将代码移出Excel工作簿和VBA模块,并转移到.NET源代码中.组件已部署和/或安装,用户无法轻易更改.

我与之合作的大多数监管机构都意识到VBA和密码保护的局限性,但他们也意识到允许用户使用Excel和VBA提供的功能所带来的商业利益.他们通常认为,只要您实施了合理的密码和保护措施,那么对这些保护措施的任何规避都超出了典型用户的能力范围.

您必须采取合理的保护措施,并分发和执行强有力的政策和程序.是的,如果监管机构质疑您的方法,您会得到违反政策的人,但您会有明确的案例.

另一方面,不是假设你的一些/所有"专家"是恶意的,而是组织一系列会议来讨论如何改进.您永远不会知道,他们可能会进行真正的优化,以降低您的成本和/或提高您的性能和弹性.