VBA function Array

Hallo Zusammen,
ich verzweifel gerade hier ran:
ich moechte einen vba function ein eindimensionales Array uebergeben und der Output soll ein zweidimensionales Array sein, dessen Diagonale sich aus den Inputwerten berechnet:
(Groesser des Inputarray soll variabel sein)
1   zu  4  0  0
1         0  4  0
1         0  0  4
mit meinem Code bekomme ich leider nur Fehlermeldungen oder Values:
Public Function createSplineArray(Steps() As Variant) As Variant
Dim ArrayOne(UBound(Steps(1)), UBound(Steps(1))) As Variant
Dim i As Integer
ArrayOne(i, i) = 2 * (Steps(1) + Steps(2))
Next i
createSplineArray() = ArrayOne()
End Function

Wenn ich das richtig verstanden habe, müsste folgendes die korrekte Funktion sein:

Public Function createSplineArray(Steps() As Double) As Double(,)
        Dim ret(UBound(Steps), UBound(Steps)) As Double

        For i As Integer = 0 To UBound(Steps)
            For j = 0 To UBound(Steps)
                ret(i, j) = 0
            Next

            ret(i, i) = Steps(i)
        Next

        Return ret
    End Function

sub ausgabe
Dim werte(2) As Double
        werte(0) = 1
        werte(1) = 2
        werte(2) = 3
        Dim ret(,) As Double = createSplineArray(werte)
        Dim retStr As String = „“

        For i As Integer = 0 To UBound(ret)
            For j As Integer = 0 To UBound(ret)
                retStr &= ret(i, j) & " "
            Next
            retStr &= vbCrLf
        Next

'1 0 0
'0 2 0
'0 0 3

end sub

Gruss,
Andi Osswald

Vielen Dank!