Select Case-Bedingung für Texte optimieren

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

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 ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar