将自定义对象从VBA传递到VBScript

时间:2011-12-06 15:57:48

标签: vba object vbscript excel-vba excel

我在Excel文件中有一个函数返回一个自定义类,当我尝试从VBScript调用此函数时,我得到一个“未知的运行时错误”

示例VBA代码:

Function myVBAFunc() As Variant
   Set myClass1 = New Class1
   myClass1.Name = "Test"
   Set myVBAFunc= myClass1
End Function

调用VBScript代码:

Set Excel = CreateObject("Excel.Application") 
Set Workbook = Excel.Workbooks.open("C:\myFile.xls")
Set myRes = Excel.Run("myVBAFunc")
Excel.Quit

当我尝试设置myRes时出现错误,我认为这是由VBScript无法识别对象的类型引起的。有什么方法可以解决这个问题吗?

谢谢, Achraf

1 个答案:

答案 0 :(得分:3)

您需要将类模块的instancing属性(在其属性窗口中)从 Private 更改为 PublicNotCreatable

(您也可以严格输入功能)

Function myVBAFunc() As Class1
   Set myVBAFunc= New Class1
   myVBAFunc.Name = "Test"
End Function