Die Select... Case-Anweisung vergleicht den Wert von einem oder mehreren separaten Case-Anweisungen, um einen Ausdruck auszuwählen. Die Case-Anweisungen werden in der Reihenfolge verarbeitet, in der sie deklariert wurden, bis eine mit dem Select-Ausdruck übereinstimmt. Wenn eine Case-Anweisung dem Select-Ausdruck entspricht, wird der mit der Case-Anweisung verknüpfte Anweisungsblock ausgeführt. Wenn keine Case-Anweisung dem Select-Ausdruck entspricht und eine optionale Case...Else-Anweisung vorhanden ist, wird deren Anweisungsblock ausgeführt. Andernfalls wird die Steuerung an das Ende der Select-Anweisung übergeben.
Das folgende Beispiel zeigt eine einfache Select...Case-Anweisung. In diesem Beispiel wird der Wert von nTeeth (die Anzahl der Zähne für das Kettenrad) mit einer Reihe von Case-Klauseln verglichen. Wenn eine Übereinstimmung gefunden wird, legt die Anweisung in der übereinstimmenden Case-Klausel den Wert der Beschreibung fest. Wenn keine Case-Anweisung übereinstimmt, wird die Anweisung in der optionalen Case...Else-Anweisung ausgeführt.
Select nTeeth
Case 18
description = "18 Tooth Sprocket"
Case 21
description = "21 Tooth Sprocket"
Case 25
description = "25 Tooth Sprocket"
Case Else
description = "Default"
End Select
Eine Case-Klausel kann aus einem einfachen Ausdruck wie im vorherigen Beispiel oder aus einer Liste von Ausdrücken (durch Kommas getrennt) wie im folgenden Beispiel bestehen.
Select LinkArmAssy.length
Case 150, 175, 200
boltDia = 12.0
Case 225
boltDia = 16.0
Case 250, 275
boltDia = 20.0
Case Else
boltDia = 24.0
End Select
Im vorhergehenden Beispiel entspricht die Select-Anweisung der Längenregel des LinkArmAssy-Bauteils. Die erste Case-Anweisung besteht aus drei durch Kommas voneinander getrennten Ausdrücken. Wenn der Wert der Längenregel einem der drei Ausdrücke entspricht, wird der Anweisungsblock ausgeführt, der mit der Case-Anweisung verknüpft ist.