Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| programmierung:vba [2025/05/11 14:11] – created swe | programmierung:vba [2025/12/20 14:53] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ## Erstellen eines VBA-Skripts |
| - | + | ### Funktionsdeklaration | |
| - | ## Funktionsdeklaration | + | |
| Anfang | Anfang | ||
| Line 14: | Line 13: | ||
| - Im Beispiel: `Bereich` als `Range` deklariert - Funktion erwartet einen Zellbereich als Eingabe | - Im Beispiel: `Bereich` als `Range` deklariert - Funktion erwartet einen Zellbereich als Eingabe | ||
| - | ## Variablendeklaration mit Dim und Initialisierung | + | ### Variablendeklaration mit Dim und Initialisierung |
| **Variablendeklaration** | **Variablendeklaration** | ||
| Line 36: | Line 35: | ||
| - `Summe` und `Anzahl` werden auf 0 initialisiert. | - `Summe` und `Anzahl` werden auf 0 initialisiert. | ||
| - | ## Schleife durch den Bereich durch `For Each` und `Next` | + | ### Schleife durch den Bereich durch For Each und Next |
| ```vba | ```vba | ||
| For Each Zelle In Bereich | For Each Zelle In Bereich | ||
| Line 45: | Line 44: | ||
| Next Zelle | Next Zelle | ||
| ``` | ``` | ||
| - | ### 3. | ||
| - | |||
| - | - ## Bedeutung | ||
| - `For Each` startet Schleife, die durch jedes Element in einer Sammlung (z.B. einem Zellbereich) iteriert. | - `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. | - `For Each Zelle In Bereich`: Diese Zeile startet eine Schleife, die jede Zelle im `Bereich` durchläuft. | ||
| Line 53: | Line 49: | ||
| - | ## Berechnung des Durchschnitts | + | ### Berechnung des Durchschnitts |
| ```vba | ```vba | ||
| If Anzahl > 0 Then | If Anzahl > 0 Then | ||
| Line 64: | Line 60: | ||
| - Wenn keine numerischen Zellen gefunden wurden, wird der Durchschnitt auf 0 gesetzt. | - Wenn keine numerischen Zellen gefunden wurden, wird der Durchschnitt auf 0 gesetzt. | ||
| + | |||
| + | ### Code | ||
| + | ```vba | ||
| + | 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 | ||
| + | ``` | ||
| + | |||
| + | ## Datentypen in VBA | ||
| + | |||
| + | |||
| + | | Datentyp | ||
| + | |---------------|-------------------------------------------------------------------------------------------------|----------------|--------------------------------------------------------------------------------------------------| | ||
| + | | `Integer` | ||
| + | | `Long` | ||
| + | | `Single` | ||
| + | | `Double` | ||
| + | | `Currency` | ||
| + | | `String` | ||
| + | | `Boolean` | ||
| + | | `Date` | ||
| + | | `Object` | ||
| + | | `Variant` | ||
| + | | `Byte` | ||
| + | |||
| + | ## Type-Checking-Functions (Typüberprüfungsfunktionen) in VBA | ||
| + | |||
| + | Hier ist eine Tabelle mit den Funktionen in VBA, die verwendet werden, um verschiedene Bedingungen zu überprüfen: | ||
| + | |||
| + | | Funktion | ||
| + | |---------------|-------------------------------------------------------------------------------------------------| | ||
| + | | `IsNumeric` | ||
| + | | `IsDate` | ||
| + | | `IsEmpty` | ||
| + | | `IsNull` | ||
| + | | `IsError` | ||
| + | | `IsArray` | ||
| + | | `IsObject` | ||
| + | | `TypeName` | ||
| + | | `VarType` | ||