Erstellen eines VBA-Skripts

**This is an old revision of the document!**

Funktionsdeklaration

Anfang

Function DurchschnittBerechnen(Bereich As Range) As Double
...
End Function

  • Diese Zeile deklariert eine Funktion namens DurchschnittBerechnen, die einen Bereich (Range) als Eingabe nimmt und einen Double-Wert zurückgibt.
  • End Function beendet die Funktion -Range: Objekt, das eine Zelle oder einen Zellbereich in einem Arbeitsblatt darstellt
  • Im Beispiel: Bereich als Range deklariert - Funktion erwartet einen Zellbereich als Eingabe

Variablendeklaration mit Dim und Initialisierung

Variablendeklaration

  • Dim steht für “Dimension” und wird verwendet, um Variablen zu deklarieren. Es teilt VBA mit, dass eine neue Variable erstellt wird, und definiert ihren Datentyp.

Dim Zelle As Range
Dim Summe As Double
Dim Anzahl As Integer

  • Zelle wird als Range deklariert und dient als Schleifenvariable, um durch jede Zelle im Bereich zu iterieren.
  • Summe wird als Double deklariert, um die Summe der numerischen Werte zu speichern.
  • Anzahl wird als Integer deklariert, um die Anzahl der numerischen Zellen zu zählen.

Initialisierung

Summe = 0
Anzahl = 0

  • Summe und Anzahl werden auf 0 initialisiert.

Schleife durch den Bereich durch For Each und Next

For Each Zelle In Bereich
    If IsNumeric(Zelle.Value) Then
        Summe = Summe + Zelle.Value
        Anzahl = Anzahl + 1
    End If
Next Zelle

  • For Each startet Schleife, die durch jedes Element in einer Sammlung (z.B. einem Zellbereich) iteriert.
  • For Each Zelle In Bereich: Diese Zeile startet eine Schleife, die jede Zelle im Bereich durchläuft.
  • Next Zelle: Diese Zeile markiert das Ende der Schleife und weist VBA an, zur nächsten Zelle überzugehen.

Berechnung des Durchschnitts

If Anzahl > 0 Then
    DurchschnittBerechnen = Summe / Anzahl
Else
    DurchschnittBerechnen = 0
End If

  • Wenn die Anzahl der numerischen Zellen größer als 0 ist, wird der Durchschnitt berechnet, indem die Summe durch die Anzahl geteilt wird.
  • Wenn keine numerischen Zellen gefunden wurden, wird der Durchschnitt auf 0 gesetzt.

Code

Function DurchschnittBerechnen(Bereich As Range) As Double
    Dim Zelle As Range
    Dim Summe As Double
    Dim Anzahl As Integer
 
    Summe = 0
    Anzahl = 0
 
    For Each Zelle In Bereich
        If IsNumeric(Zelle.Value) Then
            Summe = Summe + Zelle.Value
            Anzahl = Anzahl + 1
        End If
    Next Zelle
 
    If Anzahl > 0 Then
        DurchschnittBerechnen = Summe / Anzahl
    Else
        DurchschnittBerechnen = 0
    End If
End Function