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.