VBA: Вызов функции с ParamArray из COM-объекта
От: dvin  
Дата: 22.12.09 09:05
Оценка:
Создал 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



Подскажите, что я делаю не так?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.