Ein Makro ist eine gespeicherte Abfolge von Befehlen, die Excel auf Knopfdruck wiederholt. Der Makrorekorder schreibt dabei mit, was Sie tun, und übersetzt es in VBA-Code (Visual Basic for Applications). Programmieren müssen Sie dafür nicht. Trotzdem erleben viele beim ersten Versuch eine Enttäuschung: Das Makro formatiert die falschen Zellen, übersieht neue Zeilen oder lässt sich nach dem Versand an Kollegen gar nicht mehr starten.
Diese Probleme haben klare Ursachen. Der Artikel zeigt die Aufzeichnung Schritt für Schritt an einem Beispiel und erklärt den Unterschied zwischen absoluten und relativen Verweisen. Dazu kommen die Grenzen des Rekorders und die Sicherheitsregeln, die Microsoft für Makros vorsieht. Die Beschreibung gilt für Excel für Microsoft 365 und Excel 2016 bis 2024 unter Windows. In Excel für das Web lassen sich VBA-Makros laut Microsoft weder erstellen noch ausführen oder bearbeiten. Dort übernimmt die Registerkarte Automatisieren mit Office-Skripts eine ähnliche Aufgabe.
Vorbereitung: Registerkarte Entwicklertools einblenden
Die Befehle für Makros liegen auf der Registerkarte Entwicklertools, die standardmäßig ausgeblendet ist. So blenden Sie sie ein: Datei > Optionen > Menüband anpassen, rechts unter Hauptregisterkarten das Kontrollkästchen Entwicklertools aktivieren und mit OK bestätigen. Die Registerkarte bleibt danach dauerhaft sichtbar.
Bevor Sie aufzeichnen, sollten Sie den Ablauf einmal von Hand durchspielen. Microsoft weist ausdrücklich darauf hin, dass der Rekorder fast jeden Schritt erfasst, auch Fehlklicks. Ein versehentlich angeklicktes Menü landet ebenso im Code wie die eigentliche Arbeit. Je flüssiger Sie aufzeichnen, desto sauberer wird das Ergebnis.
Beispiel: einen Monatsbericht formatieren
Beispieldatei: Ein fiktiver Handwerksbetrieb exportiert jeden Monat eine Liste offener Rechnungen nach Excel. Die Rohdatei hat Überschriften in Zeile 1 und Daten ab Zeile 2. Jeden Monat wiederholt sich dieselbe Formatierung: Überschrift fett mit Füllfarbe, Spalte C (Betrag) im Währungsformat, Spalte B (Fälligkeit) im Datumsformat TT.MM.JJJJ, Spaltenbreiten automatisch anpassen, oberste Zeile fixieren. Von Hand dauert das in diesem Beispiel etwa 14 Minuten, weil zusätzlich ein paar Kontrollen anfallen.
- Öffnen Sie eine Rohdatei als Kopie, nicht das Original.
- Markieren Sie Zelle A1, damit die Aufzeichnung an einem definierten Punkt beginnt.
- Klicken Sie auf Entwicklertools > Code > Makro aufzeichnen.
- Geben Sie einen Namen ein, etwa
Bericht_formatieren. Laut Microsoft muss der Name mit einem Buchstaben beginnen. Danach sind Buchstaben, Ziffern und Unterstriche erlaubt, Leerzeichen nicht. Namen, die wie ein Zellbezug aussehen (etwaAB1), führen zu einer Fehlermeldung. - Optional: Tastenkombination und Beschreibung eintragen (Hinweise dazu weiter unten).
- Unter Makro speichern in wählen Sie den Speicherort. Für den Anfang genügt Diese Arbeitsmappe.
- Klicken Sie auf OK und führen Sie die Formatierungsschritte aus.
- Beenden Sie mit Entwicklertools > Code > Aufzeichnung beenden.
Zum Abspielen öffnen Sie die nächste Rohdatei, drücken Alt+F8, wählen das Makro aus und klicken auf Ausführen. Den aufgezeichneten Code sehen Sie über Bearbeiten im selben Dialog oder mit Alt+F11 im Visual Basic-Editor.
Absolute oder relative Verweise: der häufigste Stolperstein
Standardmäßig zeichnet Excel feste Zelladressen auf. Klicken Sie während der Aufnahme auf B2, steht im Code Range("B2").Select. Beim Abspielen wird immer B2 angesprochen, egal wo Sie gerade stehen. Für Formatierungen fester Spalten wie im Beispiel ist das genau richtig.
Anders sieht es aus, wenn das Makro relativ zur aktuellen Zelle arbeiten soll, etwa „in der Zelle rechts neben der Markierung ein Kürzel eintragen und eine Zeile nach unten springen“. Dafür schalten Sie vor dem Aufzeichnen auf der Registerkarte Entwicklertools in der Gruppe Code die relative Aufzeichnung ein. Die Beschriftung der Schaltfläche unterscheidet sich je nach Version und Übersetzung: Die deutsche VBA-Dokumentation von Microsoft spricht von „Relative Aufzeichnung“, die Hilfe für Excel für Mac von „Relative Bezüge verwenden“, in der englischen Oberfläche heißt sie „Use Relative References“. Achten Sie in Ihrer Version also auf die Schaltfläche in der Gruppe Code, deren Name mit „Relativ“ beginnt. Laut Microsoft-Dokumentation verwendet der Rekorder bei relativer Aufzeichnung die Offset-Eigenschaft. Statt einer festen Adresse steht im Code beispielsweise ActiveCell.Offset(1, 0), also „eine Zeile unter der aktiven Zelle“.
' absolut aufgezeichnet
Range("B2").Select
ActiveCell.FormulaR1C1 = "erledigt"
' relativ aufgezeichnet
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "erledigt"
Die Einstellung bleibt nach dem Einschalten aktiv, bis Sie sie wieder ausschalten; eine eingeschaltete Schaltfläche erscheint im Menüband hervorgehoben. Prüfen Sie den Zustand deshalb vor jeder Aufnahme.
Grenzen des Rekorders
Feste Bereiche wachsen nicht mit
Microsoft beschreibt es ausdrücklich: Zeichnen Sie Aktionen für einen bestimmten Bereich auf, wirkt das Makro auch später nur auf diesen Bereich. Hatte die Rechnungsliste bei der Aufnahme 120 Datenzeilen (Zeilen 2 bis 121), steht im Code etwa Range("C2:C121"). Hat der nächste Export 135 Datenzeilen, reichen die Daten bis Zeile 136. Die letzten 15 Beträge bleiben dann unformatiert, ohne jede Fehlermeldung.
Abhilfe auf drei Wegen: Markieren Sie während der Aufnahme ganze Spalten (Klick auf den Spaltenkopf C) statt eines Zellbereichs. Oder Sie wandeln die Daten vorher in eine formatierte Tabelle um (Strg+T), deren Spalten mitwachsen. Oder Sie passen den Code an, was erste VBA-Kenntnisse voraussetzt.
Keine Entscheidungen, keine Schleifen
Der Rekorder kennt nur „genau so wie aufgezeichnet“. Bedingungen wie „nur wenn der Betrag über 500 € liegt“ oder Wiederholungen wie „für jede Datei im Ordner“ kann er nicht aufzeichnen. Solche Logik muss im Visual Basic-Editor ergänzt werden. Für das Zusammenführen vieler Dateien gibt es ohnehin einen bequemeren Weg ohne Code, beschrieben im Artikel Power Query: Monatsdateien aus einem Ordner zusammenführen.
Ballast im Code
Aufgezeichneter Code enthält viele Select-Befehle und Einstellungen, die Sie gar nicht bewusst geändert haben, etwa alle Eigenschaften eines Dialogs, in dem Sie nur eine Option angeklickt haben. Das stört die Funktion nicht, macht den Code aber unübersichtlich. Microsoft rät, lange Abläufe lieber in mehrere kleine Makros aufzuteilen.
Speicherort und Dateiformat
Im Feld Makro speichern in entscheiden Sie, wo der Code liegt, und damit, wo er verfügbar ist.
| Speicherort | Verfügbar in | Geeignet für |
|---|---|---|
| Diese Arbeitsmappe | nur dieser Datei (und ihren Kopien) | Makros, die zu einer bestimmten Vorlage gehören und weitergegeben werden |
| Persönliche Makroarbeitsmappe | allen Dateien, die Sie auf diesem Rechner öffnen | persönliche Helfer, etwa das Formatieren von Exporten |
| Neue Arbeitsmappe | der neu angelegten Datei | selten sinnvoll, eher zum Ausprobieren |
Die persönliche Makroarbeitsmappe heißt Personal.xlsb. Excel legt sie an, sobald Sie zum ersten Mal ein Makro dorthin aufzeichnen. Sie liegt im Ordner XLSTART und wird bei jedem Start von Excel ausgeblendet im Hintergrund geöffnet. Für das Beispiel oben ist sie der passende Ort: Das Makro soll auf jede neue Exportdatei angewendet werden, die Exportdatei selbst muss aber keinen Code enthalten.
Wichtig beim Speicherort „Diese Arbeitsmappe“: Das Standardformat .xlsx kann laut Microsoft keinen VBA-Code speichern. Speichern Sie die Datei als Excel-Arbeitsmappe mit Makros (*.xlsm). Wer das übersieht, erhält beim Speichern einen Hinweis. Bestätigt man ihn vorschnell, ist das Makro verloren.
Tastenkombinationen mit Bedacht vergeben
Eine Tastenkombination wie Strg+Umschalt+B macht ein Makro schnell erreichbar. Microsoft warnt aber: Makro-Tastenkombinationen überschreiben die Standardkombinationen von Excel, solange die Arbeitsmappe mit dem Makro geöffnet ist. Wer Strg+Z belegt, verliert in dieser Excel-Sitzung das Rückgängigmachen. Bei Makros in der persönlichen Makroarbeitsmappe gilt das in jeder Sitzung, weil diese Mappe bei jedem Start im Hintergrund geöffnet wird. Großbuchstaben, also Kombinationen mit Umschalt, sind seltener vorbelegt und daher die sicherere Wahl.
Sicherheit: Was Makros dürfen und was nicht
VBA-Code kann weit mehr als Zellen formatieren: Dateien löschen, Programme starten, Daten versenden. Deshalb sind Makros ein bekannter Weg für Schadsoftware, und Microsoft hat die Standardeinstellungen entsprechend streng gewählt.
Die Makroeinstellungen finden Sie unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen. In Excel heißen die Optionen unter anderem „VBA-Makros mit Benachrichtigung deaktivieren“ und „VBA-Makros deaktivieren, mit Ausnahme digital signierter Makros“. Die Option, alle Makros zu aktivieren, kennzeichnet Microsoft als nicht empfohlen. Auf Firmenrechnern legt oft die IT diese Einstellungen fest, dann können Sie sie nicht ändern.
Mit der üblichen Einstellung „mit Benachrichtigung deaktivieren“ erscheint beim Öffnen einer Makrodatei eine gelbe Leiste mit Inhalt aktivieren. Wer das bestätigt, stuft die Datei als vertrauenswürdiges Dokument ein. Microsofts Regel dazu ist eindeutig: Makros nur aktivieren, wenn Sie wissen, was sie tun, und die Funktion tatsächlich brauchen. Zum Ansehen und Bearbeiten einer Datei ist das nicht nötig.
Für Dateien aus dem Internet gilt eine zusätzliche Sperre. Heruntergeladene Dateien und E-Mail-Anhänge tragen unter Windows eine Markierung („Mark of the Web“). Laut Microsoft Learn blockiert Office Makros in solchen Dateien standardmäßig und zeigt statt der Schaltfläche „Inhalt aktivieren“ ein rotes Banner „Sicherheitsrisiko“. Stammt die Datei nachweislich aus sicherer Quelle, können Sie die Blockierung in den Dateieigenschaften (Rechtsklick > Eigenschaften > Registerkarte Allgemein > Kontrollkästchen Blockierung aufheben) entfernen. Für regelmäßig genutzte Makrodateien ist ein vertrauenswürdiger Speicherort im Trust Center die sauberere Lösung, sofern Ihre IT das zulässt.
Wann sich ein Makro lohnt: eine Beispielrechnung
Angenommen, die Formatierung dauert von Hand 14 Minuten, das Makro erledigt sie samt Kontrolle in etwa 1 Minute. Für Aufzeichnung, Probelauf und Korrektur rechnen wir einmalig 60 Minuten. Pro Durchlauf sparen Sie also 13 Minuten. Nach 60 ÷ 13 ≈ 4,6 Durchläufen, also ab dem fünften Einsatz, ist die Einrichtung hereingeholt. Bei einem wöchentlichen Bericht mit 52 Durchläufen im Jahr bleiben nach Abzug der Einrichtung 52 × 13 − 60 = 616 Minuten, gut zehn Stunden.
Die Rechnung ist ein Beispiel, Ihre Zeiten werden anders aussehen. Nach unserer Einschätzung lohnt sich die Aufzeichnung vor allem dann, wenn ein Ablauf häufig, immer gleich und rein mechanisch ist. Ändert sich der Aufbau der Rohdaten ständig, kostet die Pflege des Makros schnell mehr Zeit, als es spart. Für Prüfungen bei der Eingabe braucht es oft gar kein Makro. Die Datenüberprüfung erledigt das ohne Code, siehe Dropdowns und Datenüberprüfung.
Checkliste für Ihr erstes Makro
- Registerkarte Entwicklertools einblenden, Ablauf einmal von Hand üben.
- Vor der Aufnahme festlegen: absolute oder relative Verweise.
- Ganze Spalten oder formatierte Tabellen markieren, damit neue Zeilen erfasst werden.
- Aussagekräftigen Namen ohne Leerzeichen vergeben, Tastenkombination mit Umschalt wählen.
- Speicherort bewusst wählen:
Personal.xlsbfür eigene Helfer,.xlsmfür weitergegebene Vorlagen. - Erst an einer Kopie laufen lassen und das Ergebnis prüfen, denn Makros lassen sich nicht rückgängig machen.
- Makros aus fremden Dateien nur aktivieren, wenn Quelle und Zweck klar sind.
Wie dieser Artikel entstanden ist
Bedienschritte, Namensregeln, Speicherorte und Sicherheitseinstellungen beruhen auf der Microsoft-Dokumentation. Das Formatierungsbeispiel und die Zeitrechnung sind fiktive Beispiele, mit Python nachgerechnet. Die Einordnung, wann sich ein Makro lohnt, ist redaktionelle Einschätzung.
Alle Beispieldaten sind frei erfunden und dienen nur der Veranschaulichung. Unsere Arbeitsweise beschreiben wir unter Redaktion & Korrekturen.
Quellen und weiterführende Dokumentation
- Microsoft Support: Automatisieren von Aufgaben mit der Makroaufzeichnung
- Microsoft Support: Erstellen und Speichern aller Makros in einer einzelnen Arbeitsmappe
- Microsoft Support: Aktivieren oder Deaktivieren von Makros in Microsoft 365-Dateien
- Microsoft Learn: Makros aus dem Internet werden in Office standardmäßig blockiert
- Microsoft Learn: Verweisen auf Zellen mit relativem Bezug zu anderen Zellen (VBA)
- Microsoft Support: Von Excel unterstützte Dateiformate
- Microsoft Support: Arbeiten mit VBA-Makros in Excel für das Web
- Microsoft Support: Verwenden der Registerkarte Entwicklertools zum Erstellen oder Löschen eines Makros in Excel für Mac
- Microsoft Support: Anzeigen der Registerkarte Entwicklertools
Ist Ihnen ein Fehler aufgefallen oder gilt etwas in Ihrer Excel-Version anders? Schreiben Sie uns an [email protected].