Inhaltsverzeichnis

Kontrollstrukturen

Allgemein

Kontrollstrukturen (Verzweigungen) werden benötigt, um logische Überprüfungen durchzuführen. Abhängig vom Ergebnis der Überprüfung werden Anweisungen ausgeführt.

Die Überprüfung kann folgende Vergleichsoperatoren verwenden: =, <, <=, >, >=, <>.

Die folgenden Codebeispiele verwenden die Anweisung Debug.Print um in das Ausgabefenster zu schreiben. Blenden Sie das Ausgabefenster im VBA-Editor über den Menübefehl Ansicht - Direktfenster ein.

If-Then-Else

Die If-Anweisung überprüft eine logische Aussage. Ist diese Wahr (True), werden die Anweisungen innerhalb des If-Blocks ausgeführt.

'Ausgabe, wenn zahl < 10
Dim zahl As Integer
zahl = 5
If zahl < 10 Then
  Debug.Print "Kleiner als 10"
End If

Beachten Sie, dass bei einem Textvergleich der Text unter Anführungszeichen steht.

'Ausgabe, wenn nachname gleich Mustermann
Dim nachname As String
nachname="Huber"
If nachname = "Mustermann" Then
  Debug.Print "Hallo Mustermann!"
End If

Im Else-Zweig schreiben Sie jene Anweisungen, die ausgeführt werden sollen, wenn die Überprüfung den Wert Falsch (False) liefert.

'Unterschiedliche Ausgaben
Dim zahl As Integer
zahl = 5
If zahl < 10 Then
  Debug.Print "Kleiner als 10"
Else
  Debug.Print "Grösser oder gleich 10"
End If

Wollen Sie mehr als eine logische Aussage überprüfen, folgen auf die erste If-Anweisung weitere ElseIf-Anweisungen.

Sobald eine logische Aussage den Wert Wahr (True) liefert, werden die entsprechenden Anweisungen ausgeführt.Danach springt die Codeausführung zur End If-Anweisung.

'Mehrere Überprüfungen
Dim zahl As Integer
zahl = 5
If zahl < 10 Then
  Debug.Print "Kleiner als 10"
ElseIf zahl > 20 Then
  Debug.Print "Grösser als 20"
Else
  Debug.Print "Zwischen 10 und 20"
End If

Sie können If-Anweisungen auch verschachteln, d. h. die untergeordneten Überprüfungen werden nur durchgeführt, wenn die Hauptprüfung den Wert Wahr (True) liefert.

Im folgenden Beispiel werden die untergeordneten Prüfungen auf die Grösse nur durchgeführt, wenn es sich um eine gerade Zahl handelt.

'Verschachtelung
Dim zahl As Integer
zahl = 20
If zahl Mod 2 = 0 Then
  If zahl < 15 Then
    Debug.Print "Gerade Zahl kleiner 15"
  ElseIf zahl > 20 Then
    Debug.Print "Gerade Zahl grösser 20"
  Else
    Debug.Print "Gerade Zahl zwischen 15 und 20"
  End If
Else
  Debug.Print "Ungerade Zahl"
End If

Sie können mehrere logische Aussagen mit Und (And) bzw. Oder (Or) verknüpfen.

Verknüpfung mit Und (And): sind alle Aussagen Wahr (True), so ist der gesamte Ausdruck Wahr (True).

'Überprüfung mit Und (And)
Dim zahl As Integer
zahl = 5
If zahl >= 5 And zahl =< 10 Then
  Debug.Print "Zwischen 5 und 10"
End If

Verknüpfung mit Oder (Or): ist zumindest eine Aussage Wahr (True), so ist der gesamte Ausdruck Wahr (True).

'Überprüfung mit Oder (Or)
Dim zahl As Integer
zahl = 5
If zahl < 5 Or zahl > 10 Then
  Debug.Print "Kleiner 5 oder grösser 10"
End If

Select Case

Soll eine Variable auf eine grosse Anzahl von Werten geprüft werden, wird die If-Anweisung recht aufwändig. Als Alternative bietet sich das Select Case-Statement an. Hierbei wird die Variable auf unterschiedliche Fälle (Cases) "abgeklopft".

Das folgende Beispiel veranschaulicht die Möglichkeiten.

'Überprüfung mit Select Case
Dim zahl As Integer
zahl = 5
Select Case zahl
  Case 10
    Debug.Print "Zahl gleich 10"
  Case 1, 3, 5
    Debug.Print "Zahl gleich 1 oder 3 oder 5"
  Case 15 To 20
    Debug.Print "Zahl zwischen 15 und 20 (inkl. 15 oder 20)"
  Case Is > 100
    Debug.Print "Zahl grösser 100"
  Case Is <> 30
    Debug.Print "Zahl ungleich 30"
End Select

Beachten Sie, dass bei Prüfung auf Ungleichheit das Schlüsselwort Is mit angeführt werden muss.

Sobald ein Fall (Case) den Wert Wahr (True) liefert, werden die entsprechenden Anweisungen dieses Falles ausgeführt. Anschliessend springt die Codeausführung zur End Select-Anweisung.

Download Codebeispiele

Die gezeigten Codebeispiele können Sie als xlsm-Datei herunterladen.

Seitenanfang   Inhaltsverzeichnis