Suchfunktionen, automatisierte Berechnungen oder Einträge in Tabellenzeilen: All diese Funktionen bietet Excel nicht auf Anhieb. Mit ein bisschen Programmierungsgeschick können Sie die Anweisungen mit Excel VBA jedoch ganz leicht in Ihr Tabellenblatt integrieren.
In diesem Artikel zeigen wir Ihnen, welches Grundwissen Sie zu VBA in Excel brauchen und geben Ihnen Beispiele für einfache Automatisierungsfunktionen.
Was ist Excel VBA?
Excel VBA (Visual Basic for Application) ist eine Programmiersprache, die in Microsoft Excel genutzt wird, um Automatisierungen für wiederkehrende Aktionen zu schaffen. Grundsätzlich kann VBA in allen gängigen Microsoft Office-Programmen verwendet werden. Mithilfe des Codes können die Funktionen der Programme erweitert werden.
Neben Excel kommt VBA auch bei Microsoft Word, PowerPoint, Outlook, Project, Publisher, Visio und Access zum Einsatz.
Einsatzmöglichkeiten: Was kann man mit Excel VBA alles machen?
VBA ist in Excel immer dann sinnvoll, wenn eine Aufgabe sehr viel Zeit in Anspruch nimmt oder viele Male wiederholt werden muss. Die Programmiersprache bietet in Excel demnach viele Einsatzmöglichkeiten, wie etwa:
- Automatisierungen von Arbeitsschritten anlegen,
- spezielle Excel-Tools wie einen Rechnungsgenerator bauen oder
- Diagramme, Tabellen und andere Elemente zwischen Excel und weiteren Programmen synchronisieren.
Ist VBA noch zeitgemäß?
VBA gibt es bereits seit 1993. Auch wenn VBA zugegeben nicht mehr die aktuellste und flexibelste aller Sprachen ist, ist der Einsatz in Excel und Co. aus unserer Sicht immer noch zeitgemäß. Auch ein Blick auf den Marktanteil der Microsoft-Lösungen unterstreicht das. In 85 Prozent aller deutschen Unternehmen werden die Office-Lösungen verwendet.
Excel-VBA-Programmierung: Wann lohnt sich der Aufwand?
Für erfahrene Developer und Entwicklerinnen dürfte die Programmierung mit VBA ein Leichtes sein. Anfängerinnen und Anfänger hingegen müssen erst einmal Zeit in die Lernphase investieren. Daher stellt sich, noch bevor Sie über VBA nachdenken, die Frage, ab wann die Nutzung überhaupt sinnvoll ist.
Unsere Kollegin Jennifer Lapp empfiehlt: „Als Faustregel können Sie sich merken: Wenn Sie eine Aufgabe dreimal ausführen müssen, ist der manuelle Weg aus eigener Erfahrung schneller. Müssen Sie eine Aufgabe hingegen hundertmal ausführen, würde ich an Ihrer Stelle VBA nutzen.“
Wenn Sie also klassische Routineaufgaben – wie beispielsweise das Formatieren einer Tabelle oder Erstellen einer Rechnung – effizienter gestalten möchten, ist die Programmierung mit VBA definitiv die beste Entscheidung.
Weniger geeignet ist der Code aus unserer Sicht hingegen, um Daten abzurufen. Möchten Sie beispielsweise Reports aus unterschiedlichen Quellen erstellen, dann sollten Sie lieber auf Power-Query setzen.
Excel-Handbuch (nicht nur) für Marketer*innen
Füllen Sie das Formular aus, um das kostenlose Excel-Handbuch zu erhalten.
- Zeitersparnis durch Excel
- Wissen für Excel-Erfolg
- Grundlegende Funktionen
- Fortgeschrittene Funktionen
Excel VBA lernen oder kaufen?
Die Grundlagen in VBA sind für jede Person, die technisch nicht ganz versiert ist, machbar. Komplexe Projekte können hingegen schnell zu einer Mammutaufgabe werden und die eigentliche Zeiteinsparung zunichtemachen. Jedoch gibt es eine Vielzahl von Tools, die bereits vorgefertigt sind und die Sie einfach kaufen können.
Unser Tipp: Gerade wenn es sich um Aufgaben handelt, die alltäglich und für eine Vielzahl von Personen wichtig sind, ist die Chance sehr groß, dass Sie passende Programme für Ihre Aufgabe bzw. Ihr Vorhaben finden.
Excel VBA aktivieren: Einstellungen für den Visual Basic Editor einrichten
Bevor Sie nun loslegen und Ihre eigenen Programme in Excel schreiben, müssen Sie zunächst bestimmte Einstellungen vornehmen.
Im ersten Schritt benötigen Sie den Reiter „Entwicklertools“ in der Navigation. Um diesen zur Ansicht hinzuzufügen, gehen Sie wie folgt vor:
1. Klicken Sie bei Windows in Ihrem Excel-Blatt auf „Datei“ > „Optionen“ (bei Mac: „Excel“ > „Einstellungen“).
2. Wählen Sie nun „Menüband anpassen“ bzw. „Menüband und Symbolleiste“ aus und setzen Sie einen Haken bei „Entwicklertools“.
Quelle: Screenshot Excel for Mac
3. Sobald Sie auf „Speichern“ geklickt haben, erscheint der Reiter in der oberen Navigation.
Wie öffne ich VBA in Excel?
Sobald Sie die Einstellungen für den Visual Basic Editor im Office-Programm vorgenommen haben, folgt der nächste Schritt. Um VBA in Excel zu öffnen, müssen Sie in den Reiter Entwicklertools wechseln. Alles weitere erfolgt über ein separates Fenster.
Unser Tipp: Werfen Sie einen genauen Blick auf die Grundlagen, bevor Sie loslegen – sonst verwirrt Sie der Editor.
Excel VBA öffnen: Visual Basic Editor über Entwicklertools aufrufen
Wir vermitteln Ihnen diese Grundlagen Schritt für Schritt. Zuerst rufen Sie wie bereits beschrieben den Menüpunkt „Entwicklertools“ auf.
Quelle: Screenshot Excel for Mac
Um den VBA-Editor zu öffnen, klicken Sie links auf die Schaltfläche „Visual Basic“. Nun öffnet sich ein eigenes Fenster, das für die Programmierung genutzt wird.
Quelle: Screenshot Excel for Mac
Der Projekt-Explorer auf der linken Seite zeigt Ihnen eine Auflistung Ihrer Tabellen und Arbeitsblätter. Damit Sie nun den Programm-Code editieren können, müssen Sie mit einem Doppelklick auf das entsprechende Tabellenblatt klicken. Es öffnet sich der Programm-Editor.
Quelle: Screenshot Excel for Mac
Im VBA-Editor fügen Sie nun die einzelnen Bausteine für Ihre Automatisierungsfunktion ein.
Einfaches Excel VBA-Tutorial: Was Sie über den Aufbau wissen müssen
Damit Sie Ihre eigenen Excel-Makros im Visual Basic-Editor schreiben können, müssen Sie zunächst einmal den hierarchischen Aufbau der Office-Programme verstehen. Das Verständnis ist elementar, um die Syntax korrekt anzuwenden und die einzelnen Befehle des Programm-Codes zu begreifen.
Der wichtigste Begriff dabei ist das Objektmodell. Excel und auch andere Office-Programme sind in Objekte strukturiert. Objektbasiertes Programmieren findet sich auch in anderen Programmiersprachen wieder.
Der Grundgedanke dabei ist, dass eine Applikation für die jeweilige Programmiersprache als Objekt verstanden wird, das aus weiteren Unterobjekten besteht. Im Falle von VBA ist Excel ein Objekt, das aus Arbeitsblättern, Tabellen, Zellen oder Diagrammen besteht – zur Verfügung stehen beispielsweise:
- Application = Excel
- Workbook = Arbeitsmappe
- Worksheet = Tabellenblatt
- Range = Zellenbereich
- Cells = einzelne Zellen
Diese Objekte sind wiederum mit bestimmten Eigenschaften und Methoden ausgestattet. So besitzen Tabellen beispielsweise Namen, eine bestimmte Schriftart oder Position, Inhalte oder Größe.
Möchten Sie beispielsweise dem Objekt Worksheet einen Wert hinzufügen, dann nutzen Sie die Methode Value = „XY“. Das Range-Objekt in Excel VBA etwa ermöglicht es Ihnen, auf bestimmte Zellbereiche zuzugreifen und diese zu manipulieren. Mit Cells können Sie einzelne Zellen anhand von Zeilen- und Spaltennummern ansteuern.
Darüber hinaus gibt es in VBA unterschiedliche Variablen, die mit einem Datentyp bezeichnet werden müssen. Beispielsweise gilt:
- String = Text
- Byte = ganze Zahl (0 bis 255)
- Date = Datum
- Variant = abhängig vom Inhalt
Die Variablen können, wie in mathematischen Gleichungen, auch zum Rechnen eingesetzt werden. Neben Addition, Subtraktion, Division und Multiplikation sind auch Vergleichsoperatoren oder logische Operatoren (wahr oder falsch) möglich.
Tipps zur VBA-Programmierung: Die fünf wichtigsten Excel-VBA-Befehle
Online-Bibliotheken bieten eine Übersicht über die gängigsten VBA-Befehle. Bevor Sie jedoch anfangen, diese auswendig zu lernen, empfehlen wir Ihnen, sich vor allem mit den folgenden fünf Befehlen zu beschäftigen:
If-Then-Else
If-Then-Schleifen sind in Programmiersprachen gängig und werden genutzt, um Bedingungen aufzustellen. Stimmt die mit If aufgestellte Anweisung, so werden die folgenden Befehle automatisch ausgeführt. Andernfalls wird ein anderer Befehl eingeleitet.
For-Next
For-Next-Befehle lassen Anweisungen so oft ausführen wie im Code angegeben. Wurde der Wert erreicht, startet die nächste Anweisung.
Do-Loop
Mit Do können Sie Anweisungen einleiten, die so oft ausgeführt werden, bis ein bestimmtes Ergebnis eintritt. Als Loop können die Werte While sowie Until verwendet werden. Während While bis zum falschen Ergebnis durchgeführt wird, endet Until, sobald der Ausdruck wahr ist.
MsgBox
Mit der Excel VBA-Message Box (msgbox) können Sie Nachrichten an die Benutzerin oder den Benutzer ausgeben. Das können einfache Informationen sein oder Sie fordern den Nutzer oder die Nutzerin zu einer Eingabe auf.
For-Schleife
Die For-Schleife ermöglicht es Ihnen, Code mehrfach auszuführen. Sie können damit durch Zellbereiche iterieren oder wiederholende Aufgaben ausführen.
Excel-Handbuch (nicht nur) für Marketer*innen
Füllen Sie das Formular aus, um das kostenlose Excel-Handbuch zu erhalten.
- Zeitersparnis durch Excel
- Wissen für Excel-Erfolg
- Grundlegende Funktionen
- Fortgeschrittene Funktionen
VBA Excel-Beispiele: Einfache Makros selbst schreiben
Excel-Makros gibt es zuhauf. Häufig müssen Sie diese gar nicht selbst schreiben, sondern können sich einer Vielzahl von Vorlagen bedienen. Nachfolgend finden sie zwei VBA Excel-Beispiele, die sich für uns immer wieder nützlich erweisen:
Zellen mit gleicher Formatierung addieren
Der folgende Programm-Code addiert alle Zellen mit derselben Farbe. Sie können stattdessen jedoch auch andere Formatierungen ansprechen.
Function Farbsumme(Bereich As Range)
Application.Volatile
Farbsumme = 0
For Each zelle In Bereich
If zelle.Font.ColorIndex = 3 Then
Farbsumme = Farbsumme + zelle.Value
End If
Next
End Function
Umlaute in ausgewählten Zellen umwandeln
Stimmen die Dateiformate nicht überein, so werden Umlaute in Microsoft Excel häufig falsch eingefügt. Mit dem folgenden Makro können Sie alle Umlaute in den markierten Zellen mit einem Klick umwandeln lassen:
Sub umwandel_ä_in_ae()
'Wandelt ä in ae um
With Selection
.Replace What:="Ö", Replacement:="Oe", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True
.Replace What:="Ä", Replacement:="Ae", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True
.Replace What:="Ü", Replacement:="Ue", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True
.Replace What:="ö", Replacement:="oe", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True
.Replace What:="ä", Replacement:="ae", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True
.Replace What:="ü", Replacement:="ue", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True
End With
End Sub
Typische Fehler bei der Verwendung von Excel VBA
Auch uns unterläuft von Zeit zu Zeit mal eine Abweichung, wenn wir mit VBA arbeiten. Damit Ihnen das nicht passiert, sind hier die häufigsten Fehler und die dazugehörigen Excel-Tipps:
- Falsche Referenzen im VBA-Code: Oft werden falsche oder ungenaue Zellreferenzen im VBA-Code verwendet. Achten Sie darauf, dass Sie die richtigen Zellen oder Bereiche ansprechen, um Fehler zu vermeiden.
- Nicht deklarierte Variablen: Es ist wichtig, alle Variablen im VBA-Code zu deklarieren. Tun Sie das nicht, gibt es unerwartete Fehler, die nur schwer zu diagnostizieren sind. Verwenden Sie „Option Explicit“ am Anfang des Codes zur Deklarierung aller Variablen.
- Kaum Fehlerbehandlung: Viele VBA-Skripte enthalten keine oder nicht ausreichende Fehlerbehandlungsroutinen. Fügen Sie „On Error“-Anweisungen hinzu, um den VBA-Code leichter zu debuggen.
- Nicht optimierte Schleifen: Die vorgestellten Schleifen wie „For“ oder „Do While“ werden häufig ineffizient genutzt, was die Ausführungszeit verlängert. Optimieren Sie Ihre Schleifen so, dass sie die Excel-Tabelle nicht unnötig belasten.
Fazit: Automatisieren Sie Excel-Prozesse mit VBA
Die Programmiersprache VBA erweist sich in Excel und anderen Office-Anwendungen als Helfer in der Not und darf aus unserer Sicht in keinem Excel-Leitfaden fehlen. Lästige Routineaufgaben lassen sich mit kurzen Code-Schnipseln automatisieren und ewige manuelle Aufgaben gehören der Vergangenheit an.
Zahlreiche Bibliotheken bieten bereits vorgefertigte Excel-Makros, die Sie nur zusammensetzen müssen, um Ihre eigene Lösung zu entwerfen.
Titelbild: HubSpot