2011-03-08 55 views
2

我一起攻击了Excel的概念证明,以从数据库获取数据,并且需要打包以便将其分发给我们的客户。我的第一个尝试只是把我所有的代码放到一个代码模块中,但是在Excel中,我可以看到宏列表中的所有模块,当我真的只想要列表中的主模块时。我猜我需要将不能直接运行的子例程移到类模块中,以便它们隐藏起来。是否还有其他关于如何打包宏代码的提示,以便给客户提供更简单更安全的方法?VBA体系结构技巧 - 宏包装

+2

如果您的宏正在访问数据库,请不要忘记密码保护VB项目。如果宏中的任何信息特别敏感,那么请注意,这种密码保护功能不是很强大(最多可以阻止这种空闲的好奇)。在这种情况下,你会想要一些类型的compliled加载项。 – 2011-03-08 19:58:24

回答

1

Sub是否隐藏在宏列表中是基于它的作用域(例如public,private)。如果您创建一个私人的,它不会列在宏列表中。

'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编辑器“附件(S)”在文章底部看到http://www.rondebruin.nl/ribbon.htm的一些教程)

为了保护您的代码被查看/被盗,VBA项目可以被密码保护,但这种不应该被认为是坚实的保护。