Makro aufzeichnen: was der Rekorder kann und wo Schluss ist
Der Makrorekorder schreibt deine Klicks als VBA mit und spielt sie auf Knopfdruck wieder ab, und sobald ein Wenn im Ablauf steckt, beginnt die eigentliche Arbeit.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Der Rekorder kennt Wiederholung, aber keine Entscheidung
In fast jedem Team gibt es diesen einen Ablauf, der jede Woche gleich läuft: Export öffnen, drei Spalten löschen, Kopfzeile formatieren, Ergebnis ablegen. Zwanzig Minuten, die niemand vermisst. Genau für diesen Zuschnitt ist der Rekorder gebaut, und dafür brauchst du keine Zeile eigenen Code.
Unangenehm wird es beim zweiten Lauf. Der Export hat diesmal mehr Zeilen als am Tag der Aufzeichnung, und das Makro arbeitet stur den Bereich ab, den es damals gesehen hat. Das Ergebnis sieht fertig aus, nur fehlen die Zeilen am Ende. Solche Fehler fallen meist erst auf, wenn die Zahlen längst weitergereicht sind.
Dazu kommt eine Eigenheit, die beim ersten Mal wehtut: Ein Makrolauf leert den Rückgängig-Stapel. Was schiefgeht, holt Strg+Z nicht zurück, und die Handgriffe davor sind auch weg. Wer den Rekorder ohne diese beiden Punkte einsetzt, spart am Montag zwanzig Minuten und sucht am Dienstag zwei Stunden.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Schritt für Schritt
- 1
Entwicklertools einblenden
Über Datei > Optionen > Menüband anpassen setzt du rechts unter Hauptregisterkarten das Häkchen bei Entwicklertools. Dort liegen der Schalter für relative Verweise und der Zugang zum VBA-Editor, die du später brauchst.
Geschafft, wenn: Im Menüband steht rechts die Registerkarte Entwicklertools.
- 2
Als xlsm speichern und eine Kopie anlegen
Eine xlsx-Datei kann keinen VBA-Code speichern, Excel verwirft ihn nach einer Warnung. Speichere die Mappe zuerst über Speichern unter als Excel-Arbeitsmappe mit Makros und lege eine Kopie zum Ausprobieren an.
Geschafft, wenn: Die Datei endet auf xlsm, und daneben liegt eine Kopie zum Üben.
- 3
Verweisart festlegen
Standardmäßig zeichnet Excel absolut auf, das Makro arbeitet danach immer in derselben Zelle. Soll es dort laufen, wo der Cursor gerade steht, schaltest du vorher Relative Verweise verwenden ein.
Geschafft, wenn: Die Schaltfläche Relative Verweise verwenden ist sichtbar gedrückt oder bewusst gelöst.
- 4
Aufzeichnung starten
Im Dialog Makro aufzeichnen vergibst du einen sprechenden Namen ohne Leerzeichen, bei Bedarf eine Tastenkombination mit gedrückter Umschalttaste und entscheidest im Feld Makro speichern in über den Ablageort.
Geschafft, wenn: In der Statusleiste unten links erscheint die Schaltfläche zum Beenden der Aufzeichnung.
- 5
Den Ablauf in einem Zug durchklicken
Arbeite den Weg so, wie du ihn jedes Mal gehen würdest, ohne Suchen und ohne Umwege. Jedes Markieren und jeder geöffnete Dialog landen vollständig im Code, auch die Einstellungen, die du gar nicht angefasst hast.
Geschafft, wenn: Das Blatt sieht am Ende genauso aus wie nach der Handarbeit.
- 6
Beenden und an der Kopie testen
Beende die Aufzeichnung und starte das Makro an der Kopie, einmal an derselben Stelle und einmal an einer anderen. So siehst du sofort, ob der Modus für Verweise zur Aufgabe passt.
Geschafft, wenn: Das Makro liefert bei beiden Durchläufen das erwartete Ergebnis.
- 7
Code aufräumen und Start verdrahten
Mit Alt+F11 öffnest du den VBA-Editor, deine Aufzeichnung liegt links unter Module. Fasse Select und Selection zusammen, ersetze feste Bereiche durch die letzte belegte Zeile und weise das Makro danach einer Schaltfläche zu.
Geschafft, wenn: Der Code kommt ohne Select aus, und das Makro startet ohne den Umweg über die Makroliste.
Sechs Stationen vom ersten Klick zum fertigen Makro
- 01 Die Registerkarte Entwicklertools einblenden und die Mappe als xlsm speichern.
- 02 Vor dem Start entscheiden, ob absolut oder mit relativen Verweisen aufgezeichnet wird.
- 03 Den Ablauf einmal ruhig durchklicken, ohne Umwege und ohne Zwischenmarkierungen.
- 04 Die Aufzeichnung beenden und das Makro an einer Kopie der Datei ausprobieren.
- 05 Im Code Select entfernen und feste Bereiche durch die letzte belegte Zeile ersetzen.
- 06 Das fertige Makro auf eine Schaltfläche oder eine Tastenkombination legen.
Vom Mitschnitt zu einem Makro, das nächsten Monat noch stimmt
Der Rekorder erzeugt Code, den du nicht schreiben musst, aber lesen können solltest. Es sind immer dieselben zwei oder drei Stellen, an denen eine Aufzeichnung nachgebessert wird. Wer die kennt, kommt sehr weit, ohne VBA von Grund auf zu lernen.
Format und Ablageort wählen
Du entscheidest vor dem Start, ob der Code an die Datei gebunden wird oder in die persönliche Makroarbeitsmappe gehört, und speicherst als xlsm, damit er das Schließen überlebt.
Absolut oder relativ
Du erkennst am Verhalten eines Makros, in welchem Modus es aufgezeichnet wurde, und legst den Schalter für relative Verweise vor dem Start passend zur Aufgabe um.
Select herausnehmen
Du fasst die typischen Zweizeiler aus Markieren und Ändern zu einer Zeile zusammen. Das Makro wird kürzer und hängt nicht mehr davon ab, welches Blatt gerade vorn liegt.
Bereiche mitwachsen lassen
Du ersetzt die fest verdrahtete Adresse durch die zur Laufzeit ermittelte letzte belegte Zeile. Danach verarbeitet dasselbe Makro eine kurze wie eine lange Liste.
Start sauber verdrahten
Du legst das Makro auf eine Tastenkombination mit Umschalttaste, auf eine Schaltfläche im Blatt oder in die Symbolleiste für den Schnellzugriff, je nachdem, wo es gebraucht wird.
Die Grenze erkennen
Du merkst früh, wann eine Aufgabe eine Bedingung oder eine Schleife braucht, und schreibst diesen Teil von Hand, statt eine Aufzeichnung immer weiter zu flicken.
KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Vorher klären: Registerkarte und Dateiformat
Die Registerkarte Entwicklertools ist ab Werk ausgeblendet. Du holst sie über Datei > Optionen > Menüband anpassen und setzt rechts unter Hauptregisterkarten das Häkchen bei Entwicklertools. Den Rekorder selbst findest du auch ohne das unter Ansicht > Makros > Makro aufzeichnen, nur fehlen dir dort die Schaltflächen für relative Verweise und für den VBA-Editor, die du gleich brauchst.
Das zweite ist das Dateiformat. Eine xlsx-Datei kann keinen VBA-Code speichern. Excel warnt beim Speichern, und wer die Warnung wegklickt, findet die Datei danach ohne Makro wieder. Der richtige Weg ist Datei > Speichern unter > Excel-Arbeitsmappe mit Makros (*.xlsm).
Im Dialog Makro aufzeichnen entscheidest du außerdem über das Feld Makro speichern in, wo der Code landet. Diese Arbeitsmappe bindet ihn an die Datei und schickt ihn mit, wenn du sie weitergibst. Persönliche Makroarbeitsmappe legt ihn in die Datei PERSONAL.XLSB, die Excel bei jedem Start unsichtbar mitlädt, damit steht dir das Makro in allen deinen Mappen zur Verfügung, aber eben nur auf deinem Rechner.
Was der Rekorder mitschreibt, und was nicht
Aufgezeichnet wird alles, was den Zustand der Mappe verändert, und zwar in voller Breite. Setzt du über den Dialog Zellen formatieren einen Rahmen, schreibt der Rekorder jede Kante einzeln in den Code, samt Linienstärke und Farbe, auch für die Kanten, die du gar nicht angefasst hast. Jedes Markieren erzeugt eine eigene Zeile mit Select. Deshalb ist eine Aufzeichnung von zwanzig Sekunden schnell hundert Zeilen lang.
Nicht aufgezeichnet werden Entscheidungen und Wiederholungen. Der Rekorder kennt kein "Wenn die Spalte D leer ist, dann ..." und kein "Für jede Zeile ...". Er kennt auch nichts außerhalb von Excel, eine Datei im Explorer verschieben oder eine Mail auslösen gehört nicht dazu. Sobald in deiner Beschreibung des Ablaufs ein "je nachdem" vorkommt, brauchst du Code statt Aufzeichnung.
Und ein Punkt, der beim ersten Mal wehtut: Nach dem Start eines Makros ist der Rückgängig-Stapel leer. Was das Makro angerichtet hat, holt Strg+Z nicht zurück, und die Schritte davor sind auch weg. Probiere jede neue Aufzeichnung deshalb an einer Kopie aus, nicht an der Datei, die du am Nachmittag abgeben musst.
Absolute und relative Verweise, der wichtigste Schalter
Standardmäßig zeichnet Excel absolut auf. Klickst du während der Aufzeichnung auf B2, steht im Code Range("B2").Select. Das Makro arbeitet danach immer in B2, egal wo dein Cursor beim Start steht. Für ein Makro, das eine feste Kopfzeile formatiert, ist das genau richtig.
Für alles, was an wechselnden Stellen laufen soll, schaltest du vor dem Start die Schaltfläche Relative Verweise verwenden in der Registerkarte Entwicklertools ein. Excel notiert dann Bewegungen relativ zur aktiven Zelle, im Code steht ActiveCell.Offset(1, 0) statt einer festen Adresse. Das Makro arbeitet dort, wo du gerade stehst.
Der Schalter bleibt gedrückt, bis du ihn wieder löst, auch über das Ende der Aufzeichnung hinaus. Du kannst ihn sogar mitten in einer Aufzeichnung umlegen, wenn ein Teil absolut und ein Teil relativ laufen soll. Wenn ein Makro beim zweiten Mal an der falschen Stelle arbeitet, ist fast immer dieser Schalter die Ursache.
Starten über Tastenkombination, Schaltfläche oder Schnellzugriff
Im Dialog Makro aufzeichnen kannst du direkt eine Tastenkombination vergeben, Strg plus ein Buchstabe. Die Falle dabei: Vergibst du Strg+S, überschreibt dein Makro das Speichern, solange die Mappe geöffnet ist. Halte im Eingabefeld die Umschalttaste gedrückt, dann entsteht Strg+Umschalt plus Buchstabe, und du kollidierst deutlich seltener mit den eingebauten Befehlen.
Eine Schaltfläche im Blatt bekommst du über Entwicklertools > Einfügen > Formularsteuerelemente > Schaltfläche. Du ziehst sie auf, und Excel fragt sofort nach dem zuzuweisenden Makro. Wer es schöner mag, fügt über Einfügen > Formen ein Rechteck ein, beschriftet es und weist ihm per Rechtsklick > Makro zuweisen dasselbe Makro zu.
Makros aus der persönlichen Makroarbeitsmappe gehören zu keiner Datei und brauchen deshalb einen Platz außerhalb des Blattes. Über Datei > Optionen > Symbolleiste für den Schnellzugriff und die Auswahl Makros im oberen Feld legst du sie neben die Speichern-Schaltfläche, wo sie in jeder Mappe erreichbar sind.
Der Punkt, an dem du den Code anfassen musst
Mit Alt+F11 öffnest du den VBA-Editor, links im Projektexplorer liegt deine Aufzeichnung unter Module. Zwei Eingriffe lohnen sich fast immer. Der erste: Select und Selection zusammenfassen. Aus zwei Zeilen, die erst B2 markieren und dann die Markierung fett setzen, wird eine Zeile, die direkt Range("B2").Font.Bold = True setzt. Das ist nicht nur kürzer, es macht das Makro auch unabhängig davon, welches Blatt gerade aktiv ist.
Der zweite und wichtigere: fest verdrahtete Bereiche ersetzen. Der Rekorder schreibt Range("A2:D250"), weil die Liste an dem Tag 250 Zeilen hatte. Nächsten Monat sind es 310, und das Makro bearbeitet die letzten 60 nicht. Mit Cells(Rows.Count, 1).End(xlUp).Row ermittelst du die letzte belegte Zeile in Spalte A und baust den Bereich daraus zusammen. Genau dieser eine Handgriff entscheidet, ob eine Aufzeichnung ein Wegwerfprodukt bleibt oder ein Werkzeug wird.
Der Rekorder taugt außerdem als Nachschlagewerk, auch wenn du längst selbst schreibst. Wenn du nicht weißt, wie eine Einstellung im Objektmodell heißt, zeichnest du sie einmal auf, liest den Namen im Code ab und wirfst die Aufzeichnung weg.
Dazu passende Kurse
Wenn du dir den Weg über Versuch und Irrtum sparen willst, kannst du Makros im Excel-Seminar von Anfang an lernen und gleich mit deinen eigenen Dateien arbeiten.
Wer nach den ersten Aufzeichnungen merkt, dass ihm Schleifen und Bedingungen fehlen, findet beim Einstieg ins Programmieren das nötige Handwerkszeug.
Wie sicher bist du beim Thema wirklich?
Lesen fühlt sich schnell nach Können an. Ein kurzer Test zeigt dir, was davon schon sitzt und wo sich ein Kurs lohnt. Kostenlos, ohne Anmeldung, mit einer Erklärung zu jeder Antwort.
Der passende Lernpfad
Wenn du nicht nur ein Thema abhaken, sondern eine Rolle ausfüllen willst, zeigt dir der Lernpfad die Kurse in der Reihenfolge, in der sie aufeinander aufbauen.
Excel Entwicklung & Programmierung
Wer Excel noch manuell bedient, verschenkt Potenzial. Wer VBA beherrscht, diktiert die Spielregeln.
Dieser Lernpfad ist der Schritt vom Power-User zum echten Problemlöser: Automatisierung statt Klickorgien, saubere Logik statt Workarounds. Warte nicht, bis jemand anders die besseren Tools baut – mach Excel jetzt zu deiner eigenen Entwicklungsumgebung und verschaff dir einen technischen Vorsprung, den andere nicht haben!
Wo du genau das übst
Sehr kompetenter Dozent mit einem intensiven Training welches anwendungsorientiert ist.
Das doch recht "langweilige" Thema Excel, wurde einem sehr gut präsentiert. Durch direktes mitarbeiten wurde es einem nie langweilig.
Sehr gut vorbereitetes Seminar mit hilfreichen Informationen und anschaulicher Vermittlung. Vielen Dank!
Häufige Fragen
Mein Makro ist nach dem Schließen weg. Woran liegt das?
Kann ich einen Makrolauf rückgängig machen?
Warum läuft mein Makro bei einer Kollegin nicht?
Reicht der Rekorder, oder muss ich VBA lernen?
Passt thematisch dazu
Bevor du den Rekorder anwirfst, hilft dir die kurze Klärung, was ein Makro technisch überhaupt ist und warum es in Word, Excel und Outlook an unterschiedlichen Stellen gespeichert wird.
Deine Ansprechpartner
Du bist dir nicht sicher, welcher Kurs oder welches Level zu dir passt? Wir beraten dich persönlich und kostenlos.
Yves Hoppe
Weiterbildung & Beratung
Hilft dir, aus dem Excel-Programm den passenden Kurs für deinen Stand zu finden.
Norbert Jansen
Beratung & Inhouse
Plant mit dir Inhouse-Trainings, die auf eure Abläufe und euren Datenbestand zugeschnitten sind.
Aufzeichnen kann jeder, den Unterschied macht das Lesen des Codes
In den Excel-Kursen bei cmt nimmst du eine eigene Aufzeichnung auseinander, bis sie auch mit der doppelten Datenmenge sauber durchläuft.