VBA – Boolescher Datentyp (Dim Variable)
In this Article
Boolescher Variablentyp
Der VBA-Datentyp Boolean wird verwendet, um die Werte Wahr oder Falsch zu speichern. Wahr kann auch durch 1 und Falsch durch 0 dargestellt werden.
Um eine boolesche Variable zu deklarieren, verwenden Sie die Dim-Anweisung (kurz für Dimension):
Dim blnA as Boolean
Um einer Variablen einen Wert zuzuweisen, verwenden Sie dann einfach das Gleichheitszeichen:
blnA = True
Wenn Sie dies in eine Prozedur einbauen, könnte es so aussehen:
Sub blnBeispiel()
'Die boolesche Variable deklarieren
Dim blnA as Boolean
'Den Code ausführen, um die Variable zu belegen - Normalerweise besteht der Code aus einem If- oder Case-Ausdruck
If Range("A1") > 0 Then
blnA = True
Else
blnA = False
End If
'Die Meldungsbox anzeigen
MsgBox "Das Ergebnis der Prüfung, um festzustellen, ob die Zelle einen Wert größer als 0 hat, lautet: " & blnA
End Sub
Wenn Sie den obigen Code ausführen, wird das folgende Meldungsfenster angezeigt.
Boolesche Variable auf Modul- oder globaler Ebene deklarieren
Im vorherigen Beispiel haben wir die boolesche Variable innerhalb einer Prozedur deklariert. Variablen, die in einer Prozedur deklariert werden, können nur innerhalb dieser Prozedur verwendet werden.
Stattdessen können Sie boolesche Variablen auf der Modul- oder globalen Ebene deklarieren.
Modulebene
Sie können Variablen auf Modulebene am Anfang von Codemodulen mit der Dim-Anweisung deklarieren.
Diese Variablen können in jeder Prozedur in diesem Codemodul verwendet werden.
Globale Ebene
Sie können auch Variablen der globalen Ebene am Anfang von Codemodulen deklarieren. Anstelle der Dim-Anweisung verwenden Sie jedoch die Public-Anweisung, um anzugeben, dass die boolesche Variable in Ihrem gesamten VBA-Projekt verwendet werden kann.
Public blnA As Boolean
Wenn Sie die boolesche Variable auf Modulebene deklarieren und dann versuchen, sie in einem anderen Modul zu verwenden, werden Sie einen Fehler erhalten.
Wenn Sie die boolesche Variable jedoch mit dem Schlüsselwort Public deklariert hätten, wäre der Fehler nicht aufgetreten und die Prozedur wäre einwandfrei gelaufen.
Verwendung einer booleschen Variable
Die boolesche Variable wird für logische Vergleiche verwendet. Sie werden oft mit If-Anweisungen wie im obigen Beispiel verwendet, um zu prüfen, ob eine Bedingung wahr oder falsch ist, oder in einer Codezeile, um einen logischen Test durchzuführen. Vielleicht um zu sehen, ob ein Wert größer als ein anderer ist.
Sub blnBeispiel()
'Die boolesche Variable deklarieren
Dim blnA As Boolean
'Prüfen, ob eine Zahl größer als die nächste ist
blnA = 45 > 68
'Die Meldungsbox anzeigen
MsgBox blnA
End Sub
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Meldungsbox.
denn natürlich ist 45 nicht größer als 68!
Boolesche Operatoren verwenden
Da boolesche Variablen in logischen Vergleichen verwendet werden, können wir die logischen Operatoren AND und OR verwenden, um zu prüfen, ob mehr als eine Bedingung wahr oder falsch ist.
Verwendung des Operators AND
Mit dem AND-Operator können wir prüfen, ob BEIDE Bedingungen erfüllt sind.
Sub blnBeispiel()
'Die boolesche Variable deklarieren
Dim blnA As Boolean
'Den Operator AND verwenden, um zu prüfen, ob beide Bedingungen erfüllt sind.
blnA = 10 > 13 And 15 > 12
'Die Meldungsbox anzeigen
MsgBox blnA
End Sub
oder wir können denselben Test mit einer If-Anweisung durchführen:
Sub blnBeispiel()
'Die boolesche Variable deklarieren
Dim blnA As Boolean
'Den Operator AND verwenden, um zu prüfen, ob beide Bedingungen erfüllt sind.
If 10 > 13 And 15 > 12 Then
blnA = True
Else
blnA = False
End If
'Die Meldungsbox anzeigen
MsgBox blnA
End Sub
Beide obigen Beispiele würden FALSCH zurückgeben, da 10 NICHT größer als 13 ist und BEIDE Bedingungen müssen wahr sein, damit der boolesche Wert wahr ist.
Verwendung des Operators OR
Wir können die OR-Operator verwenden, um zu prüfen, ob EINE der Bedingungen erfüllt ist.
Sub blnBeispiel()
'Die boolesche Variable deklarieren
Dim blnA As Boolean
'den Operator OR verwenden, um zu prüfen, ob eine der Bedingungen erfüllt ist
blnA = 10 > 13 Or 15 > 12
'Die Meldungsbox anzeigen
MsgBox blnA
End Sub
oder wir können denselben Test mit einer If-Anweisung durchführen:
Sub blnBeipiel()
'Die boolesche Variable deklarieren
Dim blnA As Boolean
'den Operator OR verwenden, um zu prüfen, ob eine der Bedingungen erfüllt ist
If 10 > 13 Or 15 > 12 Then
blnA = True
Else
blnA = False
End If
'Die Meldungsbox anzeigen
MsgBox blnA
End Sub
Diese Beispiele würden TRUE zurückgeben, da 10 NICHT größer als 13 ist, aber 15 größer als 12 ist und NUR EINE Bedingung wahr sein muss, damit der Boolesche Wert True entspricht.
Mit If-Anweisungen können wir weitere logische Operatoren verwenden
Verwendung des Operators NOT
Wir können auch den NOT-Operator mit der booleschen Variablen verwenden. Der NOT-Operator negiert den Wert der Bedingung. Wenn also eine Bedingung wahr ist, gibt der NOT-Operator false zurück.
Sub DifferenzenFinden()
'Bereichsvariablen deklarieren
Dim Bereich1 As Range
Dim Bereich2 As Range
'Tabelle1 aktivieren
Worksheets("Tabelle1").Activate
'Die Bereiche belegen
Set Bereich1 = Range("A3")
Set Bereich2 = Range("B3")
'Den Operator NOT verwenden, um festzustellen, ob die Werte gleich sind oder nicht
If Not Bereich1.Value = Bereich2.Value Then
MsgBox "Die Werte in den Zellen sind nicht gleich"
Else
MsgBox "Die Werte in den Zellen sind gleich"
End If
End Sub
Verwendung des logischen Operators XOR
Der logische Operator XOR wird verwendet, um zwei oder mehr Bedingungen zu vergleichen. Wenn eine der Bedingungen wahr ist, gibt er WAHR zurück. Wenn es 2 Bedingungen gibt und KEINE von beiden wahr ist oder BEIDE wahr sind, gibt er FALSCH zurück.
Sub blnBeispiel()
'Die Integer-Variablen deklarieren
Dim intA As Integer
Dim intB As Integer
'Die boolesche Variable deklarieren
Dim blnErgebnis As Boolean
'Die Variablen belegen
intA = 5
intB = 10
'Prüfen, ob eine davon wahr ist
If intA = 5 Xor intB = 5 Then
blnErgebnis = True
Else
blnErgebnis = False
End If
MsgBox blnErgebnis
End Sub
Im obigen Beispiel ist EINE der Bedingungen WAHR und das Meldungsfeld gibt WAHR zurück.
Sub blnBeispiel()
'Die Integer-Variablen deklarieren
Dim intA As Integer
Dim intB As Integer
'Die boolesche Variable deklarieren
Dim blnErgebnis As Boolean
'Die Variablen belegen
intA = 5
intB = 5
'Prüfen, ob eine davon wahr ist
If intA = 5 Xor intB = 5 Then
blnErgebnis = True
Else
blnErgebnis = False
End If
MsgBox blnErgebnis
End Sub
Da jedoch im obigen Beispiel BEIDE Bedingungen wahr sind, gibt die Meldungsbox FALSCH zurück.
Sub blnBeispiel()
'Die Integer-Variablen deklarieren
Dim intA As Integer
Dim intB As Integer
'Die boolesche Variable deklarieren
Dim blnErgebnis As Boolean
'Die Variablen belegen
intA = 6
intB = 8
'Prüfen, ob eine davon wahr ist
If intA = 5 Xor intB = 5 Then
blnErgebnis = True
Else
blnErgebnis = False
End If
MsgBox blnErgebnis
End Sub
und schließlich, da beide Bedingungen FALSCH sind, gibt die Meldungsbox auch FALSCH zurück.