Передача пользовательских объектов из VBA в VBScript - PullRequest
3 голосов
/ 06 декабря 2011

У меня есть функция в файле 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 Ответ

3 голосов
/ 06 декабря 2011

Необходимо изменить свойство экземпляра модуля класса (в окне его свойств) с Личное на PublicNotCreatable .

(Вы также можете строго ввестифункция)

Function myVBAFunc() As Class1
   Set myVBAFunc= New Class1
   myVBAFunc.Name = "Test"
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...