VBA Boolean/Bool in String konvertieren

Wer mit VBA programmiert, um sich bestimmte Aufgaben in der Microsoft Office Welt zu erleichtern, der kommt nicht umhin, dass auch mal verschiedene Datentypen in einen String konvertiert werden müssen, wie z.B. ein Datum, Integer-Zahlen oder Double-Zahlen. In diesem Beitrag soll es darum gehen, wie man einen bool’schen Wert, als den Datentyp Boolean, der True und False annehmen kann, in einen String (Zeichenkette) konvertieren kann.

Einfache Lösung mit CStr()

Für die Umwandlung einer Boolean-Variable in einen String verwendet man einfach die CStr-Funktion. Diese mächtig überladene Funktion eignet sich auch für andere Datentypen, um diese in eine Zeichenkette zu konvertieren.

In diesem Beispiel haben wir einfach ein Bool-Wert (myBool) auf True gesetzt, wandeln diesen in einen Zeichenkettenwert und weisen diesen der Variable myString zu. Diese wiederum bringen wir zur Anzeige in einer MessageBox.

Screenshot VBA Code inkl. Ausgabe eines in String umgewandelten Boolean-Wertes
CStr-Funktion verwenden für Konvertierung Bool zu String
Sub BooleanToString()
    Dim myBool As Boolean
    Dim myString As String
    myBool = True
    myString = CStr(myBool)
    MsgBox myString, vbOKOnly, "Show Bool as String"
End Sub

An der Anzeige sehen wir, dass hier bereits die „Lokalisierung“ mit eingreift. Es wird also nicht einfach „0“ oder „1“ oder „True“ oder „False“ ausgegeben, sondern „Wahr“ oder „Falsch„. Das liegt daran, dass das Office-Programm auf die deutschen Sprachpakete eingestellt ist und in diesem Fall Excel gleich die Übersetzung von „True“ in „Wahr“ vornimmt.

Alternative individuelle Umwandlung: If-Anweisung

Zugegebenermaßen kann man bei einer solchen Konvertierung oftmals nix direkt mit den Werten „Wahr“ oder „Falsch“ anfangen. Ggf. eigenen sich diese noch zum Filtern in Excel. Durch eine einfach If-Then-Else-Anweisung kann man aber auch eine individuelle Umwandlung vornehmen und der String-Variable eigene Werte in Abhängigkeit von der Boolean-Variable zuweisen.

VBA-Code mit Boolean-Wert, der über If-Anweisung in einen String gewandelt wird
If-Then-Else Direktive zur individuellen Umwandlung Bool in String
Sub BooleanToMyString()
    Dim myBool As Boolean
    Dim myString As String
    myBool = False
    If myBool = True Then
        myString = "Okay!"
    Else
        myString = "Not Okay!"
    End If
    MsgBox myString, vbOKOnly, "Show Bool as String"
End Sub

Das dürfte in vielen Fällen die eigentlich bevorzugte Variante sein. Man überprüft einfach, ob ein Wert „True“ ist und gibt dann einen individuellen Text aus.

Bestseller Nr. 1
Bestseller Nr. 2

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.