Создал COM-объект с функцией Init, которая принимает в себе параметр ParamArray:
VB.NET:
Imports System.Runtime.InteropServices
< _
ComVisible(True), _
Guid(Report.ClassId), _
ClassInterface(ClassInterfaceType.AutoDual), _
ProgId("Report") _
> _
Public Class Report
Public Const ClassId As String = "446A6BDB-348B-4346-9B2F-D2FF2B815A12"
Public Const InterfaceId As String = "4EE5444A-9348-4079-9960-B16D800144D9"
Public Const EventsId As String = "2225448B-E63B-4f61-8F88-FD107E38BCBB"
Public Sub New()
MyBase.New()
End Sub
Public Function Init(ByVal Host As String, ByVal ParamArray Parameters() As String) As String
Return "Ok"
End Function
End Class
Создаю объект, вызываю функцию Init с 3-мя строковыми параметрами. Получаю "Wrong number of arguments or invalid property assignment Source: VBAProject":
Excel, VBA:
Sub Test()
On Error GoTo ErrLabel
Dim obj As Object
Set obj = CreateObject("Report")
MsgBox (obj.Init("127.1", "PARAM1", "PARAM2"))
GoTo EndLabel
ErrLabel:
MsgBox "Ошибка: " + Err.Description + " Source: " + Err.Source
EndLabel:
Set obj = Nothing
End Sub
Подскажите, что я делаю не так?
Спасибо.