隐藏Excel 2010中的MS VBA屏幕

问题描述:

我在一个办公室里工作,我们有许多业余的Excel“专家”,他们不断尝试“改进”(即快捷键,更改逻辑,重写以使“更快”)电子表格。当我在一个非常规范的世界中工作时,宏需要得到公司,客户和监管机构的批准,所以更改宏是非常重要的。隐藏Excel 2010中的MS VBA屏幕

其中一个问题是,即使我们已将密码保护设置为只读,然后在VBA属性屏幕中设置了一个密码,人们仍然可以进入代码。用户似乎能够绕过密码,并进入主代码,而无需设置密码。

还有什么可以阻止他们进入代码吗?提到了一个想法,但我找不到对它的参考,是为了防止VBA屏幕打开。这可以做到吗?任何其他建议将受到感谢。

+1

将您的项目转移到VSTO解决方案或编译的DLL功能 –

+4

备忘录告知他们违反公司安全策略的后果,特别是如果他们采用技术绕过内置保护功能将是一种方法。 –

+0

@KazimierzJawor感谢您的意见。很有用。我会带他们通知 – Clauric

一旦您允许您的用户物理访问PC,您不能保证您的安全不会被打败。整个行业甚至说之多:

如果一个坏家伙已经不受限制到您的计算机的物理访问,这是不是你的电脑了

密码保护充其量是一种威慑。如果您的用户已经在规避您的保护,那么您无法完全阻止来自VBA的操作,除了完全删除VBA。

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

您可以尝试混淆您的代码,但这并不能真正阻止您的用户编写更多自己的代码。

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

我一直在使用的大多数监管机构都知道VBA和密码保护的局限性,但他们也意识到允许用户使用Excel和VBA提供的功能的业务优势。他们通常认为,只要您实施了合理的密码和保护措施,那么对这些保护措施的任何规避都超出了典型用户的能力范围。

你必须采取合理的保护措施,并分发和执行健全的政策和程序。是的,你会得到违反政策的人,但如果监管机构对你的方法提出质疑,你就会有明确的案例。另一方面,不是假设某些/所有的“专家”都是恶意的,也许组织一系列会议来讨论如何改进事情。你永远不知道,他们可能有真正的优化,可以降低你的成本和/或提高你的性能和弹性。

+0

谢谢。非常有用的评论。我将不得不接受劝告。 – Clauric