I want to pass values from an array to a function with a ParamArray in the same way as if I had passed each value from the array seperately.
Simplified example to further explain my question:
Sub DoSomething()
Dim MyArray(3) As Variant
MyArray(0) = "A"
MyArray(1) = "Whatever"
MyArray(2) = 2
MyArray(3) = "xyz"
'Now I want this...
SomeNativeFunction MyArray
'...to act the same way like this:
SomeNativeFunction MyArray(0), MyArray(1), MyArray(2), MyArray(3)
'... because at this point I don't know how many elements MyArray actually might contain during runtime, so my only chance by now is something like this:
Select UBound(MyArray)
Case 1
SomeNativeFunction MyArray(0)
Case 2
SomeNativeFunction MyArray(0), MyArray(1)
Case 3
SomeNativeFunction MyArray(0), MyArray(1), MyArray(2)
Case .....
Case 99999
SomeNativeFunction MyArray(0), MyArray(1), MyArray(2), MyArray(...)
End Select
End Sub
Function SomeNativeFunction (ParamArray args() As Variant)
'can't touch this...
End Function
The way I call SomeNativeFunction in the example above at first MyArray will be handed over to position 0 in args, so args(0) = MyArray. But Instead, I need args(0) = MyArray(0), args(1) = MyArray(1), etc.. like I did in the second function call. The problem is, MyArray could have a different amount of parameters so hardcoding this would actually not work in all cases or at least would become really messy.
The subs/functions I want to call this way are given by Excel or other sources so changing them is not possible.
RunandJointo append the relevant parameters.