Select Case-Bedingung für Texte optimieren

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

Schreibe einen Kommentar