/ / Passando objetos personalizados do VBA para o VBScript - vba, objeto, vbscript, excel-vba, excel

Passando objetos personalizados do VBA para o VBScript - vba, objeto, vbscript, excel-vba, excel

Eu tenho uma função em um arquivo do Excel que retorna uma classe personalizada, quando eu tento chamar essa função do VBScript eu recebo um "erro de execução desconhecido"

Exemplo de código VBA:

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

Chamando o código VBScript:

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

Eu estou recebendo um erro quando eu tento definir myRes, eu assumo isso é causado pelo VBScript não reconhecendo o tipo do objeto. Existe alguma maneira de contornar isso?

Obrigado, Achraf

Respostas:

3 para resposta № 1

Você precisa alterar a propriedade de instanciação do módulo de classe (em sua janela de propriedades) de Privado para PublicNotCreatable.

(Você também pode digitar estritamente a função)

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