Excel VBA: Makros aufzeichnen und selbst schreiben
VBA ist die Programmiersprache in Excel, mit der du wiederkehrende Klicks automatisierst. Blende unter Datei › Optionen › Menüband anpassen die Entwicklertools ein, starte dort Makro aufzeichnen oder öffne mit Alt + F11 den VBA-Editor, und speichere die Datei als .xlsm.
Englisch: Visual Basic for Applications · Stand 04.11.2026 · Übung ohne Anmeldung
Starte den Makrorekorder.
Die Entwicklertools sind schon eingeblendet. Dort sitzt Makro aufzeichnen.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tour | Fahrer | Ziel | Status |
| 2 | T-104 | Nowak | Göttingen | unterwegs |
| 3 | T-105 | Yılmaz | Fulda | geladen |
| 4 | T-106 | Schröder | Paderborn | erledigt |
| 5 | T-107 | Kaya | Eisenach | geladen |
| 6 | T-108 | Becker | Marburg | unterwegs |
| 7 | ||||
| 8 |
VBA: Schritt für Schritt
Entwicklertools einblenden
Klick auf Datei › Optionen › Menüband anpassen. Setz in der rechten Liste den Haken bei Entwicklertools und bestätige mit OK. Der neue Reiter erscheint im Menüband, meist rechts neben Ansicht. Das machst du nur einmal, Excel merkt es sich.
Makro aufzeichnen
Klick auf Entwicklertools › Makro aufzeichnen. Gib einen Namen ohne Leerzeichen ein, z. B.
TourenFormatieren, und wähle bei Makro speichern in die Option Diese Arbeitsmappe. Nach OK schreibt Excel jeden Klick mit. Formatiere jetzt, was du automatisieren willst, und klick danach auf Aufzeichnung beenden.Makro testen
Mach die Änderung rückgängig oder nimm ein neues Blatt. Drück Alt + F8, wähl dein Makro aus und klick auf Ausführen. Excel wiederholt alle aufgezeichneten Schritte in einem Rutsch.
VBA-Editor öffnen
Drück Alt + F11 oder klick auf Entwicklertools › Visual Basic. Links im Projekt-Explorer findest du unter Module den Eintrag Modul1. Ein Doppelklick zeigt den Code, den der Rekorder für dich geschrieben hat.
Als .xlsm speichern
Wähle Datei › Speichern unter und als Dateityp **Excel-Arbeitsmappe mit Makros (*.xlsm)**. Speicherst du als .xlsx, ist der Code nach dem Speichern weg.
Was ist VBA, und wann lohnt es sich?
VBA steht für Visual Basic for Applications. Es steckt in Excel, Word, Outlook und Access und kann alles, was du sonst mit Maus und Tastatur machst: Blätter anlegen, Zeilen löschen, Dateien öffnen und speichern, PDFs erzeugen. Ein Makro ist ein einzelnes Programm in VBA, meist ein paar Zeilen lang.
Es lohnt sich, wenn du dieselbe Abfolge von Klicks regelmäßig wiederholst: jeden Montag den Export aus der Warenwirtschaft gleich formatieren, für jede Filiale ein eigenes Blatt anlegen, 30 Lieferscheine einzeln als PDF ablegen. Was dich heute 20 Minuten kostet, läuft dann in Sekunden.
Für viele Aufgaben brauchst du aber gar kein VBA. Rechnen, Suchen und Zählen erledigen Formeln, die sofort nachrechnen und in jeder Excel-Version laufen. Musst du Daten jede Woche gleich bereinigen, Spalten teilen oder mehrere CSV-Dateien zusammenführen, ist Power Query die bessere Wahl: Es zeichnet die Schritte ohne Code auf, die Datei bleibt eine normale .xlsx, und ein Klick auf Aktualisieren genügt. Eine Excel-Tabelle wächst außerdem automatisch mit, wofür alte Dateien oft Makros hatten. Faustregel: Formeln für Ergebnisse, Power Query für Datenaufbereitung, VBA für Abläufe.
Makro aufzeichnen: absolute oder relative Verweise
Der Makrorekorder merkt sich standardmäßig die genauen Zellen. Hast du beim Aufzeichnen in B3 geklickt, schreibt das Makro später immer in B3, egal wo du gerade stehst. Das passt für feste Bereiche wie eine Kopfzeile.
Soll das Makro dort arbeiten, wo der Cursor gerade steht, klick vor dem Aufzeichnen auf Entwicklertools › Relative Verweise verwenden. Der Knopf bleibt hervorgehoben, solange er aktiv ist. Dann heißt es im Code nicht mehr „B3“, sondern „eine Zelle rechts von der aktiven Zelle“. Typischer Fall: In jeder neuen Zeile der Tourenliste Datum, Uhrzeit und Kürzel eintragen.
Der Rekorder schreibt viel überflüssigen Code, etwa jedes Select und jede Bildlaufbewegung. Das ist normal. Zum Lernen ist das trotzdem ideal: Zeichne einen Handgriff auf, schau dir im Editor an, welche Zeile was macht, und lösch, was nicht gebraucht wird.
Dein erstes eigenes Makro schreiben
Öffne mit Alt + F11 den Editor und wähle Einfügen › Modul. Rechts öffnet sich ein leeres Codefenster. Tippe diese vier Zeilen:
Sub Begruessung() · Range("A1").Value = "Hallo aus VBA" · MsgBox "A1 ist jetzt gefüllt." · End Sub
Jedes Makro beginnt mit Sub Name() und endet mit End Sub. Range("A1") meint die Zelle A1 im aktiven Blatt, .Value ist ihr Inhalt. MsgBox zeigt ein kleines Meldungsfenster. Setz den Cursor irgendwo in den Code und drück F5: In A1 steht der Text, und die Meldung erscheint. Groß- und Kleinschreibung der Befehle korrigiert der Editor selbst, sobald du die Zeile verlässt.
Ein wichtiger Unterschied zu normaler Arbeit: Was ein Makro ändert, kannst du nicht mit Strg + Z rückgängig machen. Teste neue Makros deshalb an einer Kopie der Datei.
Das kann im deutschen Excel schiefgehen
VBA spricht Englisch, auch in deutschem Excel. Schreibt ein Makro eine Formel mit .Formula, erwartet Excel englische Funktionsnamen und Komma als Trenner: Range("D2").Formula = "=SUM(B2,C2)". Ein Semikolon wie in "=SUMME(B2;C2)" führt zum Laufzeitfehler 1004, ein deutscher Funktionsname allein zu #NAME? in der Zelle. Für deutsche Formeln gibt es .FormulaLocal: Range("D2").FormulaLocal = "=SUMME(B2:C2)".
Auch Zahlen im Code schreibst du mit Punkt: 1.5 statt 1,5. Verzichte bei Makronamen auf Leerzeichen, Bindestriche und am besten auch auf Umlaute, dann gibt es auf fremden Rechnern keine Überraschungen. Und beachte: Ein Makro aus einem englischen Forum, das Blätter mit Sheets("Sheet1") anspricht, findet in deiner Mappe nichts, weil das Blatt hier „Tabelle1“ heißt.
Sicherheit, Web und Mac
Weil ein Makro alles darf, was du am PC darfst, ist VBA ein beliebter Weg für Schadsoftware. Aktiviere Makros nur in Dateien, deren Herkunft du kennst. Wie du gelbe und rote Sicherheitsleisten richtig löst, steht in der Anleitung Makros aktivieren.
Excel im Web öffnet .xlsm-Dateien, führt VBA aber nicht aus. Dort gibt es im Reiter Automatisieren die Office Scripts, die in TypeScript geschrieben werden und laut Microsoft ein Geschäfts- oder Schulkonto voraussetzen. VBA-Code lässt sich nicht einfach übertragen.
Excel für Mac kann VBA, aber eingeschränkt. Die Entwicklertools blendest du unter Excel › Einstellungen › Menüband und Symbolleiste ein. ActiveX-Steuerelemente gibt es nicht, und Makros, die Windows-Funktionen oder Pfade wie C:\ verwenden, laufen auf dem Mac nicht. Einfache Makros mit Zellen, Blättern und MsgBox klappen auf beiden Systemen.
VBA lernen geht am besten an echten Aufgaben aus deinem Alltag. Wenn dir die Grundlagen in Excel selbst noch fehlen, fang mit dem Excel-Kurs online an. Die wichtigsten Kürzel wie Alt + F11 und Alt + F8 findest du bei den Tastenkombinationen.
VBA: 3 Beispiele
Einfach: Kopfzeile per Rekorder
In der Spedition kommt jeden Morgen ein Export mit grauer Kopfzeile. Das aufgezeichnete Makro „KopfFormatieren“ macht Zeile 1 fett, färbt sie und passt die Spaltenbreiten an.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tour | Fahrer | Ziel | Stopps |
| 2 | T-104 | Nowak | Kassel | 6 |
| 3 | T-105 | Yılmaz | Fulda | 4 |
Büro: Button „Tour abschließen“
Ein Button neben der Liste trägt das heutige Datum in die markierte Zeile ein. Im Code steht dafür ActiveCell.Offset(0, 3).Value = Date, also drei Spalten rechts von der aktiven Zelle.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tour | Fahrer | Ziel | Erledigt am |
| 2 | T-104 | Nowak | Kassel | 04.11.2026 |
| 3 | T-105 | Yılmaz | Fulda |
Fortgeschritten: alle Zeilen durchgehen
Eine Schleife prüft die Zeilen 2 bis 8 und schreibt „prüfen“ neben jede Tour mit mehr als 10 Stopps. Genau hier ist VBA stärker als der Rekorder.
| Zeile | Code | |
|---|---|---|
| 1 | 1 | Sub StoppsPruefen() |
| 2 | 2 | For i = 2 To 8 |
| 3 | 3 | If Cells(i, 4).Value > 10 Then Cells(i, 5).Value = "prüfen" |
| 4 | 4 | Next i |
| 5 | 5 | End Sub |
Häufige Fehler und Lösungen
Laufzeitfehler 1004
Ursache: Anwendungs- oder objektdefinierter Fehler. Häufig: ungültiger Bereich wie Range("A0"), eine deutsche Formel in .Formula oder ein geschütztes Blatt.
Lösung: Im Fehlerfenster auf Debuggen klicken, die gelb markierte Zeile prüfen. Deutsche Formeln mit .FormulaLocal schreiben, Blattschutz vorher aufheben.
Laufzeitfehler 9: Index außerhalb des gültigen Bereichs
Ursache: Der Code spricht ein Blatt oder eine Mappe an, die es so nicht gibt, z. B. Sheets("Sheet1") statt „Tabelle1“.
Lösung: Blattnamen im Code genau so schreiben wie auf dem Blattregister, inklusive Leerzeichen.
„Makros sind deaktiviert“
Ursache: Excel hat die Makros beim Öffnen aus Sicherheitsgründen ausgeschaltet.
Lösung: Bei eigenen Dateien in der gelben Leiste Inhalt aktivieren. Alles Weitere steht unter Makros aktivieren.
Makro nach dem Speichern verschwunden
Ursache: Die Mappe wurde als .xlsx gespeichert, die Warnung zum VB-Projekt mit Ja bestätigt.
Lösung: Immer als .xlsm speichern. Ist der Code weg, hilft nur eine ältere Kopie oder die Versionsgeschichte in OneDrive.
Reiter Entwicklertools fehlt
Ursache: Er ist in Excel von Haus aus ausgeblendet.
Lösung: Unter Datei › Optionen › Menüband anpassen den Haken bei Entwicklertools setzen.
In welchen Excel-Versionen geht das?
VBA gibt es in allen Desktop-Versionen von Excel für Windows, inklusive Microsoft 365. Auf dem Mac läuft VBA mit Einschränkungen: keine ActiveX-Steuerelemente, keine Windows-spezifischen Befehle. Excel im Web und die Apps für iPhone, iPad und Android führen keine VBA-Makros aus.
- Excel 365 (Windows)
- Excel 2024 / 2021 / 2019 / 2016
- Excel für Mac (teilweise)
- Excel im Web (nicht verfügbar)
- Excel für iPhone, iPad, Android (nicht verfügbar)
Fragen zu VBA
Wie öffne ich den VBA-Editor in Excel?
+
Mit Alt + F11. Alternativ über Entwicklertools › Visual Basic. Auf dem Mac nutzt du Extras › Makro › Visual Basic-Editor oder den Knopf Visual Basic im Reiter Entwicklertools.
Wie erstelle ich ein Makro in Excel ohne Programmierkenntnisse?
+
Mit dem Makrorekorder: Entwicklertools › Makro aufzeichnen, Schritte ausführen, Aufzeichnung beenden. Excel schreibt den VBA-Code dabei selbst. Danach die Datei als .xlsm speichern.
Kann man VBA allein lernen?
+
Ja. Am besten zeichnest du einen eigenen Handgriff auf, liest den Code im Editor und änderst ihn Stück für Stück. Wichtige erste Begriffe sind Sub, Range, Cells, MsgBox und Schleifen mit For.
Wo finde ich die Entwicklertools in Excel?
+
Sie sind standardmäßig ausgeblendet. Du blendest sie unter Datei › Optionen › Menüband anpassen ein, indem du rechts den Haken bei Entwicklertools setzt.
Läuft VBA in Excel im Web?
+
Nein. Excel im Web öffnet Dateien mit Makros, führt den Code aber nicht aus. Für Automatisierung im Browser gibt es Office Scripts im Reiter Automatisieren.
Passt dazu
Excel richtig lernen, nicht nur nachschlagen.
Der Excel-Kurs online führt dich mit Übungen von SUMME bis Pivot, mit Zertifikat am Ende.