Auf
https://msdn.microsoft.com/de-de/library/d186xcf0(v=vs.110).aspx
wird beschrieben, wie einer Dll eine VB.NET Callback Funtion übergeben wird. Das ist soweit klar. Ich möchte aber gerade umgekehrt, einer VB.NET-Funktion eine Callback-Funktion einer VBA-Routine übergeben.
Die Funktion, der ich den Callback übergeben will, schaut so aus:
Public Property Solving As Action
Property Value
Type: System.Action
The value of the callback function.
Implements
ISolverEvents.Solving
Ich habe schon folgendes probiert, aber das funktioniert irgendwie nicht:
Public Property objCallback() As Object
Get
Return m_objCallback
End Get
Set(value As Object)
m_objCallback = value
End Set
End Property
Public Sub SetCallback()
Dim objActionCallback As Action
objActionCallback = New Action(AddressOf m_objCallback.Solving)
m_objSimplexSolverParams.Solving = objActionCallback
End Sub
In der VBA-Routine steht:
Dim objCallback As Variant
Set objCallback = New clsSolverCallback
Set objP.objCallback = objCallback
objP.SetCallback
objSolver.Solve objP
clsSolverCallback ist eine Klasse, die die Methode Solving enthält. Sie ist die eigentliche Callback-Funktion.
Bin für jede Hilfe dankbar.