在Excel XLA加载项中公开类

时间:2012-04-04 13:51:52

标签: vba excel-vba xla excel

我为Excel编写了一个XLA加载项。此添加包括一个类模块。我想知道如何公开这个类模块以供使用。我已经四处搜索并找到了使用Visual Studio的方法,但遗憾的是我没有Visual Studio。有没有办法只从XLA做到这一点?

1 个答案:

答案 0 :(得分:8)

您可以在XLA中创建一个返回该类实例的公共函数。然后,任何引用XLA的工作簿都可以调用该函数。假设您有Book2,其中包含您要使用Class1的Class1和Book3。将Class1 Instancing属性更改为Public Not Creatable(在类模块中为F4)。

在Book2中的标准模块中创建一个函数

Public Function InstantiateClass1() As Class1

    Set InstantiateClass1 = New Class1

End Function

在Book3中,调用函数

Public Sub DoStuff()

    Dim clsClass1 As Book2Project.Class1

    Set clsClass1 = instantiateclass1

    clsClass1.prop = "something"

    Debug.Print clsClass1.prop

End Sub

在此示例中,Class1有一个名为prop的属性。 Book2的VBProject名称已更改为Book2Project。