在Excel XLA加载项中公开类

Das*_*ete 7 excel vba xla excel-vba

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

Dic*_*ika 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
Run Code Online (Sandbox Code Playgroud)

在Book3中,调用该函数

Public Sub DoStuff()

    Dim clsClass1 As Book2Project.Class1

    Set clsClass1 = instantiateclass1

    clsClass1.prop = "something"

    Debug.Print clsClass1.prop

End Sub
Run Code Online (Sandbox Code Playgroud)

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