VBA架构技巧 - 宏包装

时间:2011-03-08 18:39:39

标签: excel vba module

我一起攻击了Excel的概念验证,以便从数据库中获取数据,并且需要对其进行打包以便将其分发给我们的客户。我的第一次尝试只是将我的所有代码都放到代码模块中,但是在Excel中我可以看到宏列表中的所有模块,当我真的只想要列表中的主要模块时。我猜我需要将不能直接运行的子程序移动到类模块中,以便隐藏它们。有没有关于如何打包宏代码的其他提示,以便给客户更简单,更安全?

1 个答案:

答案 0 :(得分:1)

Sub是否隐藏在宏列表中是基于它的范围(例如public,private)。如果您创建Sub私有,它将不会列在宏列表中。

'This sub is public
Public Sub myPublicSub()
    MsgBox "hello world"
End Sub

'This sub is also public
Sub mySub()
    MsgBox "hello world"
End Sub

'This sub is private
Private Sub myPrivateSub()
    MsgBox "hello world"
End Sub

类模块用于创建类,这些类可能对您的解决方案没有用处或必要(如果代码按照您现在的方式运行)。

如果这是针对客户的,我强烈建议打包为.xlam(Excel 2007+加载项),并学习如何自定义功能区以包含宏的按钮。宏列表不是特别有用。 (请参阅http://openxmldeveloper.org/archive/2006/05/25/CustomUIeditor.aspx获取文章底部的免费功能区xml编辑器“附件”。有关一些教程,请参阅http://www.rondebruin.nl/ribbon.htm

为了保护您的代码不被查看/被盗,VBA项目可以受密码保护,但这不应被视为坚如磐石的保护。