Wie kann man folgende Funktion aufrufen? Ich habe es probiert mit:
Sub ggTTest()
Dim Zahl(1) As Variant
Zahl(0) = 12
Zahl(1) = 33
Debug.Print ggT(Zahl())
End Sub
Function ggT(ParamArray Zahl() As Variant) As Double
'Liefert den größten gemeinsamen Teiler der "Zahl"-Werte.
Dim i As Integer, ungültig As Boolean
Dim a As Double, b As Double, Rest As Double
ungültig = (UBound(Zahl) = -1)
For i = 0 To UBound(Zahl)
ungültig = (ungültig Or Zahl(i) <= 0 Or CStr(Zahl(i)) <> CStr(Int(Zahl(i))) Or Zahl(i) >= 10 ^ 15)
Next
If ungültig Then MsgBox "Ungültiger Parameterwert!", vbCritical: Stop
Select Case UBound(Zahl)
Case 0: ggT = Zahl(0)
Case 1
If Zahl(0) > Zahl(1) Then
a = Zahl(0): b = Zahl(1)
Else
a = Zahl(1): b = Zahl(0)
End If
Do
Rest = Divisionsrest(a, b)
If Rest = 0 Then Exit Do
a = b
b = Rest
Loop
ggT = b
Case Else
ggT = Zahl(0)
For i = 1 To UBound(Zahl)
ggT = ggT(ggT, Zahl(i))
Next
End Select
End Function
Vidul
|