Visual Basic for Applications ( VBA ) ist eine Programmiersprache , mit der Sie die Funktionalität von Excel erweitern und wiederkehrende Aufgaben automatisieren können. Mit VBA lassen sich Makros, Formulare, benutzerdefinierte Funktionen und interaktive Anwendungen erstellen. In diesem Artikel lernen Sie die Grundlagen von VBA in Excel kennen und erfahren, wie Sie damit einfache und komplexe Operationen durchführen.
Wie greife ich in Excel auf VBA zu?

Um in Excel auf VBA zuzugreifen, müssen Sie die Registerkarte „Entwicklertools“ im Menüband aktivieren. Gehen Sie dazu wie folgt vor:
- Klicken Sie auf die Schaltfläche „Datei“ und anschließend auf „Optionen“.

- Klicken Sie im Fenster „Excel-Optionen“ auf „Menüband anpassen“.

- Aktivieren Sie in der Liste der Hauptregisterkarten das Kontrollkästchen „Entwickler“ und klicken Sie anschließend auf „OK“.
Anschließend wird die Registerkarte „Entwicklertools“ im Menüband angezeigt. Diese Registerkarte enthält verschiedene VBA-bezogene Tools, wie beispielsweise die Schaltfläche „Visual Basic“, die Schaltfläche „Makro aufzeichnen“ und die Schaltfläche „Steuerelement einfügen“.


Über die Schaltfläche „Visual Basic“ wird der Visual Basic Editor (VBE) geöffnet, in dem Sie VBA-Code erstellen und bearbeiten können. Die Schaltfläche „Makro aufzeichnen“ generiert automatisch VBA-Code, der die Aktionen in Ihrer Anwendung nachbildet. Mit der Schaltfläche „Steuerelement einfügen“ können Sie interaktive Elemente wie Schaltflächen, Kontrollkästchen oder Dropdown-Listen in Ihre Tabelle einfügen.
Wie schreibe ich VBA-Code in Excel?
Um VBA-Code in Excel zu schreiben, müssen Sie den Visual Basic Editor (VBE) verwenden. Klicken Sie dazu auf die Schaltfläche „Visual Basic“ auf der Registerkarte „Entwicklertools“ im Menüband.
Die VBE besteht aus mehreren Fenstern:

- Das Projektfenster zeigt die hierarchische Struktur der Objekte mit VBA-Code an. Wenn Sie beispielsweise eine Arbeitsmappe namens „MyWorkbook.xlsm“ mit zwei Tabellenblättern namens „Sheet1“ und „Sheet2“ haben, werden die Objekte „Sheet1“ und „Sheet2“ unter „MyWorkbook.xlsm“ sowie ein Objekt namens „ThisWorkbook“ angezeigt.

- Das Eigenschaftenfenster zeigt die Eigenschaften des im Projektfenster ausgewählten Objekts an. Wenn Sie beispielsweise das Objekt „Sheet1“ auswählen, werden dessen Eigenschaften wie Name (Name), Farbe (Tab.Color), Code (CodeName) usw. angezeigt.

- Das Codefenster zeigt den VBA-Code an, der dem im Projektfenster ausgewählten Objekt zugeordnet ist. Wenn Sie beispielsweise das Objekt „Sheet1“ auswählen, sehen Sie den VBA-Code, der bei der Interaktion mit dem Arbeitsblatt „Sheet1“ ausgeführt wird.

- Das Direktfenster zeigt die Ergebnisse des VBA-Codes oder Fehlermeldungen an. Wenn Sie beispielsweise die MsgBox-Funktion verwenden, um dem Benutzer eine Meldung anzuzeigen, wird diese im Direktfenster angezeigt.

Um VBA-Code zu schreiben, müssen Sie bestimmte Syntaxregeln befolgen:
- Jede Anweisung muss mit einem Zeilenumbruch oder einem Doppelpunkt (:) enden.
- Schlüsselwörter der VBA-Sprache müssen in Groß- oder Kleinbuchstaben geschrieben werden, nicht jedoch die Namen von Objekten, Eigenschaften oder Methoden, da diese zwischen Groß- und Kleinschreibung unterscheiden.
- Kommentare müssen mit einem Apostroph (') oder Rem eingeleitet werden und müssen in einer separaten Zeile oder nach einer Anweisung geschrieben werden.
- Zeichenketten müssen in doppelte Anführungszeichen (+ ) eingeschlossen werden.
- Die arithmetischen Operatoren sind +, -, *, / und ^ (Potenz).
- Die logischen Operatoren sind Und, Oder, Nicht, XOR und Gleich.
- Die Vergleichsoperatoren sind =, <>, <, <=, > und >=.
- Die vordefinierten Konstanten sind True, False, Null, Empty, Nothing und vbNullString.
Hier ist ein Beispiel für VBA-Code, der dem Benutzer eine Nachricht anzeigt:
Sub Hello() ' Dies ist ein Kommentar MsgBox "Hallo, ich bin Bing!" ' Zeigt eine Nachricht an End Sub
Wie kann man Excel-Tabellenfunktionen in VBA verwenden?
Sie können die meisten Excel-Tabellenfunktionen in Ihren VBA-Anweisungen verwenden. Dazu müssen Sie die folgende Syntax verwenden:
Application.WorksheetFunction.FunctionName(argument1, argument2, ...)
Wenn Sie beispielsweise die SUMME-Funktion verwenden möchten, um die Summe der Werte im Bereich A1:A10 zu berechnen, können Sie Folgendes schreiben:
Sub Sum() Dim result As Double ' Deklariert eine Variable vom Typ Double result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Weist der Variable das Ergebnis der SUMME-Funktion zu MsgBox result ' Zeigt das Ergebnis an End Sub
Sie können auch benutzerdefinierte Funktionen verwenden, die Sie selbst in VBA erstellen. Dazu müssen Sie die folgende Syntax verwenden:
Funktion Funktionsname(Argument1 als Typ1, Argument2 als Typ2, ...) als Rückgabetyp ' Deklarationen und Anweisungen Funktionsname = Ausdruck ' Weist der Funktion das zurückzugebende Ergebnis zu Ende Funktion
Wenn Sie beispielsweise eine Funktion erstellen möchten, die das Quadrat einer Zahl berechnet, können Sie Folgendes schreiben:
Funktion Quadrat(Zahl As Double) As Double ' Deklariert eine Funktion, die eine Zahl als Argument entgegennimmt und eine Zahl zurückgibt Quadrat = Zahl * Zahl ' Weist der Funktion das Quadrat der Zahl zu End Function
Sie können diese Funktion dann in Ihren VBA-Anweisungen oder in Ihren Excel-Formeln verwenden. Zum Beispiel:
Sub Test() Dim x As Double ' Deklariert eine Variable vom Typ Double x = 5 ' Weist der Variable den Wert 5 zu MsgBox Square(x) ' Zeigt das Quadrat von x an End Sub
Wie erstelle ich Makros in Excel?
Ein Makro ist eine Reihe von VBA-Anweisungen, die einmalig ausgeführt werden. Sie können Makros erstellen, um wiederkehrende oder komplexe Aufgaben in Excel zu automatisieren. Es gibt zwei Möglichkeiten, Makros zu erstellen: durch Aufzeichnung oder durch manuelle Programmierung.
Makro aufzeichnen
Das Aufzeichnen eines Makros erfolgt über die Schaltfläche „Makro aufzeichnen“ auf der Registerkarte „Entwicklertools“ im Menüband. Dadurch werden Ihre Aktionen in Excel erfasst und in VBA-Code umgewandelt. Dies ist die einfachste und schnellste Methode, ein Makro zu erstellen, kann aber zu schlecht optimiertem oder redundantem Code führen.
Um ein Makro aufzuzeichnen, befolgen Sie diese Schritte:
- Klicken Sie auf die Schaltfläche „Makro aufzeichnen“ auf der Registerkarte „Entwicklertools“ im Menüband.

- Im Dialogfeld „Makro aufzeichnen“ können Sie Ihrem Makro einen Namen geben, optional eine Tastenkombination auswählen, einen Speicherort für Ihr Makro festlegen (aktive Arbeitsmappe, neue Arbeitsmappe oder persönliche Arbeitsmappe) und optional eine Beschreibung hinzufügen.

- Klicken Sie auf OK, um die Aufnahme zu starten.
- Führen Sie die Aktionen, die Sie in Excel automatisieren möchten, aus. Wenn Sie beispielsweise ein Makro erstellen möchten, das eine Tabelle formatiert, wählen Sie die Tabelle aus, wenden Sie einen Stil an, sortieren Sie sie alphabetisch usw.
- Klicken Sie auf die Schaltfläche „Aufnahme beenden“ auf der Registerkarte „Entwicklertools“ im Menüband, um die Aufnahme zu beenden.
Anschließend können Sie Ihr Makro mit der von Ihnen gewählten Tastenkombination ausführen, indem Sie auf die Schaltfläche „Makros“ auf der Registerkarte „Entwicklertools“ im Menüband klicken oder indem Sie die Schaltfläche „Ausführen“ im VBE verwenden.
Schreiben Sie ein Makro
Das Schreiben eines Makros erfolgt über den VBA-Editor (VBE), wo der VBA-Code für die zu automatisierenden Aktionen direkt eingegeben wird. Es ist die flexibelste und leistungsstärkste Methode zur Makroerstellung, erfordert jedoch Programmierkenntnisse.
Um ein Makro zu schreiben, befolgen Sie diese Schritte:
- Öffnen Sie den VBE, indem Sie auf die Schaltfläche „Visual Basic“ auf der Registerkarte „Entwicklertools“ im Menüband klicken.

- Wählen Sie im Projektfenster das Objekt aus, in dem Sie Ihr Makro speichern möchten (aktive Arbeitsmappe, neue Arbeitsmappe oder persönliche Arbeitsmappe).
- Geben Sie im Codefenster den VBA-Code ein, der den Aktionen entspricht, die Sie automatisieren möchten. Wenn Sie beispielsweise ein Makro erstellen möchten, das eine Tabelle formatiert, geben Sie folgenden Code ein:
Sub FormatTable() ' Wählt die Tabelle aus Range("A1:D10").Select ' Wendet einen Stil auf die Tabelle an Selection.Style = "Tabelle 1" ' Sortiert die Tabelle alphabetisch nach Spalte A ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A10") , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Anschließend können Sie Ihr Makro über die Schaltfläche „Ausführen“ im VBE ausführen oder ihm eine Tastenkombination oder ein Steuerelement zuweisen.

FAQs
Hier finden Sie einige häufig gestellte Fragen zur Verwendung von VBA in Excel:
Was ist VBA und wozu dient es?
VBA ist die in Microsoft Office integrierte Version von Visual Basic. Es handelt sich um eine objektorientierte Programmiersprache mit einer Syntax, die der natürlichen Sprache sehr ähnlich ist. Mit VBA können Sie mithilfe von Code auf Objekte, Eigenschaften und Methoden von Excel zugreifen und diese bearbeiten. Dadurch haben Sie eine präzisere und leistungsfähigere Kontrolle über Excel als über die grafische Benutzeroberfläche.
Die Verwendung von VBA bietet mehrere Vorteile:
- Sie können wiederkehrende oder mühsame Aufgaben automatisieren, wie z. B. Datenbereinigung, Tabellenformatierung, Diagrammerstellung usw.
- Sie können Excel an Ihre spezifischen Bedürfnisse anpassen, indem Sie Funktionen hinzufügen, die in der Software nicht vorhanden sind, oder ihr Verhalten verändern.
- Sie können mit dem Benutzer über Dialogfelder, Formulare oder benutzerdefinierte Meldungen interagieren.
- Sie können Excel mit anderen Office-Anwendungen oder externen Datenquellen wie Outlook, Word, Access, SQL Server usw. integrieren.
Wie kann man VBA-Code in Excel debuggen?
Zum Debuggen von VBA-Code in Excel können Sie VBE-Tools wie Haltepunkte, Einzelschrittausführung, das Überwachungsfenster oder das Gebietsschemafenster verwenden. Mit diesen Tools können Sie die Codeausführung steuern, Variablenwerte überprüfen und Fehler erkennen.
Wie kann man VBA-Code in Excel schützen?
Um VBA-Code in Excel zu schützen, können Sie das VBA-Projekt mit einem Passwort sperren. Gehen Sie dazu wie folgt vor:
- Öffnen Sie den VBE, indem Sie auf die Schaltfläche „Visual Basic“ auf der Registerkarte „Entwicklertools“ im Menüband klicken.
- Klicken Sie im Projektfenster mit der rechten Maustaste auf den VBA-Projektnamen und wählen Sie „VBA-Projekteigenschaften“.
- Klicken Sie im Dialogfeld „VBA-Projekteigenschaften“ auf die Registerkarte „Schutz“.
- Aktivieren Sie das Kontrollkästchen, um das Projekt für die Ansicht zu sperren, geben Sie ein Passwort ein und bestätigen Sie es.
- Klicken Sie auf OK, um das Dialogfeld zu schließen.
- Speichern und schließen Sie die Arbeitsmappe.
Wie kann ich beim Öffnen oder Schließen einer Arbeitsmappe ein Makro ausführen?
Um ein Makro beim Öffnen oder Schließen einer Arbeitsmappe auszuführen, müssen Sie die Ereignisse „Workbook_Open“ oder „Workbook_BeforeClose“ verwenden. Gehen Sie dazu wie folgt vor:
- Öffnen Sie den VBE, indem Sie auf die Schaltfläche „Visual Basic“ auf der Registerkarte „Entwicklertools“ im Menüband klicken.
- Wählen Sie im Projektfenster unter dem Arbeitsmappennamen das Objekt „ThisWorkbook“ aus.
- Wählen Sie im Codefenster in der oberen linken Ecke in der Dropdown-Liste „Objekt“ die Option „Arbeitsmappe“ aus.
- Wählen Sie in der Dropdown-Liste „Prozedur“ oben rechts entweder „Öffnen“ oder „VorSchließen“ aus.
- Geben Sie den VBA-Code ein, der das auszuführende Makro aufruft. Zum Beispiel:
Private Sub Workbook_Open() ' Führt das Makro Bonjour beim Öffnen der Arbeitsmappe aus Bonjour End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Führt das Makro AuRevoir beim Schließen der Arbeitsmappe aus AuRevoir End Sub
Wie erstellt man ein Formular in Excel mithilfe von VBA?
Um in Excel mithilfe von VBA ein Formular zu erstellen, müssen Sie den VBA-Formulardesigner verwenden. Gehen Sie dazu wie folgt vor:
- Öffnen Sie den VBE, indem Sie auf die Schaltfläche „Visual Basic“ auf der Registerkarte „Entwicklertools“ im Menüband klicken.
- Klicken Sie im Projektfenster mit der rechten Maustaste auf den VBA-Projektnamen und wählen Sie Einfügen und dann Benutzerformular.
- Ein neues Benutzerformularfenster öffnet sich. Sie können Steuerelemente wie Beschriftungen, Textfelder, Schaltflächen usw. hinzufügen, indem Sie sie aus der Werkzeugleiste per Drag & Drop hinzufügen.
- Sie können die Eigenschaften der Steuerelemente im Eigenschaftenfenster ändern oder im Codefenster VBA-Code schreiben, um deren Ereignisse zu behandeln.
- Um das Formular anzuzeigen, können Sie die Show-Methode verwenden. Zum Beispiel:
Sub ShowForm() ' Zeigt das Formular UserForm1 an UserForm1.Show End Sub
Wie erstellt man eine benutzerdefinierte Funktion in Excel mithilfe von VBA?
Um in Excel mithilfe von VBA eine benutzerdefinierte Funktion zu erstellen, müssen Sie die folgende Syntax verwenden:
Funktion Funktionsname(Argument1 als Typ1, Argument2 als Typ2, ...) als Rückgabetyp ' Deklarationen und Anweisungen Funktionsname = Ausdruck ' Weist der Funktion das zurückzugebende Ergebnis zu Ende Funktion
Wenn Sie beispielsweise eine Funktion erstellen möchten, die das Quadrat einer Zahl berechnet, können Sie Folgendes schreiben:
Funktion Quadrat(Zahl As Double) As Double ' Deklariert eine Funktion, die eine Zahl als Argument entgegennimmt und eine Zahl zurückgibt Quadrat = Zahl * Zahl ' Weist der Funktion das Quadrat der Zahl zu End Function
Sie können diese Funktion dann in Ihren VBA-Anweisungen oder in Ihren Excel-Formeln verwenden. Zum Beispiel:
Sub Test() Dim x As Double ' Deklariert eine Variable vom Typ Double x = 5 ' Weist der Variable den Wert 5 zu MsgBox Square(x) ' Zeigt das Quadrat von x an End Sub
Sie können auch benutzerdefinierte Funktionen verwenden, die Sie selbst in VBA erstellen. Dazu müssen Sie die folgende Syntax verwenden:
Funktion Funktionsname(Argument1 als Typ1, Argument2 als Typ2, ...) als Rückgabetyp ' Deklarationen und Anweisungen Funktionsname = Ausdruck ' Weist der Funktion das zurückzugebende Ergebnis zu Ende Funktion
Wenn Sie beispielsweise eine Funktion erstellen möchten, die das Quadrat einer Zahl berechnet, können Sie Folgendes schreiben:
Funktion Quadrat(Zahl As Double) As Double ' Deklariert eine Funktion, die eine Zahl als Argument entgegennimmt und eine Zahl zurückgibt Quadrat = Zahl * Zahl ' Weist der Funktion das Quadrat der Zahl zu End Function
Sie können diese Funktion dann in Ihren VBA-Anweisungen oder in Ihren Excel-Formeln verwenden. Zum Beispiel:
Sub Test() Dim x As Double ' Deklariert eine Variable vom Typ Double x = 5 ' Weist der Variable den Wert 5 zu MsgBox Square(x) ' Zeigt das Quadrat von x an End Sub
Oder
=QUADRAT(A1) ' Berechnet das Quadrat des Wertes in Zelle A1
Abschluss
In diesem Artikel haben Sie gelernt, wie Sie Visual Basic for Applications (VBA) in Excel verwenden. Sie haben erfahren, was VBA ist und wofür es eingesetzt wird, wie Sie in Excel auf VBA zugreifen, VBA-Code schreiben, Tabellenfunktionen in VBA nutzen, Makros und Formulare mit VBA erstellen und benutzerdefinierte Funktionen in Excel mit VBA entwickeln. Zu den benutzerdefinierten Funktionen die Sie mit VBA erstellen können, gehört beispielsweise die Subtraktionsfunktion . Nutzen Sie nun die Programmierleistung von VBA, um Excel an Ihre Bedürfnisse anzupassen und zu automatisieren.
![[GetPaidStock.com]-648864a469b9a](https://tt-hardware.com/wp-content/uploads/2023/06/GetPaidStock.com-648864a469b9a-696x400.jpg)


