Normalerweise verwenden wir die Select Case-Bedingung so, dass wir im Kopf einen einen Teil des Vergleichsausdrucks platzieren und in den einzelnen Case-Zweigen die Vergleichswerte. Genau genommen ist das der große Unterschied zur If…Then-Bedingung, die immer den kompletten Ausdruck in einem Zweig darstellt. Die If…Then-Bedingung scheint daher bei der Auswertung von Zeichenketten Vorteile zu haben. Wir können aber auch die Select Case-Bedingung prima für Zeichenketten nutzen.
Angenommen, wir untersuchen eine Zeichenkette, die wir in diesem Fall über eine InputBox erhalten. Mit einer If…Then-Bedingung können wir einfach bestimmte Auswertungen durchführen:
Public Sub IfThen() Dim strText As String strText = InputBox("Text:", "Text eingeben", "abc") If strText = "abc" Then MsgBox "Text ist ''abc''" ElseIf strText Like "a*" Then MsgBox "Text beginnt mit ''a''" ElseIf InStr(1, strText, "a") Then MsgBox "Text enthält ''a''" ElseIf Right(strText, 1) = "a" Then MsgBox "Text endet auf ''a''" End If End Sub
[
Wenn wir das mit einer Select Case-Bedingung abbilden wollten, die manchmal übersichtlicher wirken, hätten wir außer bei der Abbildung der ersten Bedingung ein Problem:
Public Sub SelectCase() Dim strText As String strText = InputBox("Text:", "Text eingeben", "abc") Select Case strText Case "abc" MsgBox "Text ist ''abc''" Case ? MsgBox "Text beginnt mit ''a''" Case ? MsgBox "Text enthält ''a''" Case ? MsgBox "Text endet auf ''a''" End Select End Sub
Der Trick ist dann, als ersten Vergleichswert True hinter Select Case zu schreiben und in den einzelnen Case-Zweigen einfach die kompletten Bedingungen als Bool“sche Ausdrücke einzufügen:
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo
