从Excel应用程序隐藏VBA过程,但不从其他项目隐藏

时间:2014-07-12 13:12:39

标签: excel vba excel-vba

我知道这是一个很长的镜头,但是由于“选项私有模块”的限制,甚至更糟的“私有子/功能”,有没有人知道是否有一种方法可以从Excel应用程序隐藏VBA程序而不是其他项目?

我有一个XLAM,其中包含可重用功能的子集,我希望将其包含在新Excel项目中并引用,但是使用“Option Private Module”会阻碍这一点,如果我省略它,一堆无法使用或模糊不清的功能和潜艇将成为可见并可供应用程序使用。

1 个答案:

答案 0 :(得分:3)

  • 将XLAM中的标准模块转换为类模块(设置为 Public Not Creatable );
  • 创建一个返回实例的附加类模块(带有 每个这样的模块的一些额外工作,实例);和
  • 使用一个属性创建一个标准模块,该属性返回主类入口模块的实例

Class1:

Option Explicit

Public Sub IAmInvisible()

End Sub

<强> ModuleEntry:

Option Explicit

Private mClass As New Class1

Public Property Get TheClass() As Class1
    Set TheClass = mClass
End Property