Funktionen zur Ablaufsteuerung

Die folgenden Funktionen sind in der Praxis eher unnötig und kaum zu empfehlen. Es werden nämlich stets alle Parameter ausgewertet, selbst wenn diese überhaupt nicht benötigt werden (siehe hierzu das folgende Beispiel zu Choose). Anstelle dieser Funktionen sollten die Befehle für Verzweigungen If oder Select-Case verwendet werden.

Choose

Choose(Index As Single, Choice() As Variant) As Variant

Wählt anhand Index einen Wert aus Choice() aus und gibt ihn zurück. Ist Index kleiner 1 oder größer als die Anzahl der Werte in Choice(), wird Null zurückgegeben.

Debug.Print Choose(1, "A", "B", "C")
A

Debug.Print Choose(2, "A", "B", "C", MsgBox("Das ist D"), "E")
B

Im zweiten obigen Beispiel ist auch noch ein MsgBox-Befehl enthalten. Obwohl dieser Parameter gemäß Index nicht ausgewählt wird, wird der Befehl dennoch ausgeführt.

Iif

Iif(Expression As Variant, TruePart As Variant, FalsePart As Variant) As Variant

Expression wird als Ausdruck ausgewertet. Ist er True, wird TruePart zurückgegeben, sonst FalsePart.

Debug.Print Iif(15 = 15 , "Richtig", "Unrichtig")
Richtig

Partition

Partition(Number As Variant, Start As Variant, Stop As Variant, Interval As Variant) As String

Teilt den „Zahlenstrahl“ von Start bis Stop in Abschnitte gemäß Interval. Es wird dasjenige Intervall zurückgegeben, in dem Number liegt. Dabei wird der Rückgabewert so formatiert, dass, bei gleichem Wert von Stop, stets gleich viele Leerzeichen vorhanden sind.

Debug.Print Partition(99, 1, 100, 5)
 96:100

Switch

Switch(VarExpr() As Variant) As Variant

VarExpr muss zwingend eine gerade Anzahl von Parametern enthalten, von denen jeweils zwei zusammengehören. Der jeweils erste davon ist ein Ausdruck, der ausgewertet wird, und wenn er True ist, wird der zugehörige nächste Parameter zurückgegeben.

Function Sprache(Stadt As String)
    Sprache = Switch(Stadt = "Zürich", "Deutsch", _
                     Stadt = "Lausanne", "Französisch", _
                     Stadt = "Locarno", "Italienisch", _
                     Stadt = "Chur", "Rätoromanisch")
End Function