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

我知道这是一个远射,但是由于“Option Private Module”的限制,甚至更糟的是“Private Sub / Function”,有没有人知道如何从Excel应用程序中隐藏VBA程序,而不是从其他项目中隐藏?

我有一个可重复使用的function的子集,我喜欢包括和引用新的Excel项目的XLAM,但使用“选项私人模块”阻碍这一点,如果我省略它,一堆不可用或隐藏的function和潜艇变得可见和可用到应用程序。

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

1类:

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