Formelfalke

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

Schritt 1 von 4
0Punkte
Deine Aufgabe

Starte den Makrorekorder.

Die Entwicklertools sind schon eingeblendet. Dort sitzt Makro aufzeichnen.

Zwischenablage
Schriftart
Ausrichtung
Zahl
Formatvorlagen
Zellen
Bearbeiten
A1fx
Tour
ABCD
1TourFahrerZielStatus
2T-104NowakGöttingenunterwegs
3T-105YılmazFuldageladen
4T-106SchröderPaderbornerledigt
5T-107KayaEisenachgeladen
6T-108BeckerMarburgunterwegs
7
8
Klick wie im echten Excel: Reiter oben, dann der Befehl. Markieren mit gedrückter Maustaste.

VBA: Schritt für Schritt

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Makro einem Button zuweisen

Damit auch Kollegen das Makro ohne Alt + F8 starten, legst du einen Knopf an: Entwicklertools › Einfügen › Formularsteuerelemente › Schaltfläche. Zieh den Button mit der Maus auf dem Blatt auf. Excel öffnet sofort das Fenster Makro zuweisen, dort wählst du dein Makro und klickst OK. Den Text änderst du per Rechtsklick › Text bearbeiten.

Es geht auch ohne Entwicklertools: Füge über Einfügen › Formen ein Rechteck ein, Rechtsklick darauf › Makro zuweisen. Das sieht oft schöner aus und funktioniert genauso. Alternativ vergibst du beim Aufzeichnen eine Tastenkombination wie Strg + Umschalt + T.

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.

ABCD
1TourFahrerZielStopps
2T-104NowakKassel6
3T-105YılmazFulda4
Drei Handgriffe, jetzt ein Klick auf Alt + F8 › Ausführen.

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.

ABCD
1TourFahrerZielErledigt am
2T-104NowakKassel04.11.2026
3T-105YılmazFulda
Date liefert das heutige Datum, Excel zeigt es im deutschen Format.

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.

ZeileCode
11Sub StoppsPruefen()
22For i = 2 To 8
33If Cells(i, 4).Value > 10 Then Cells(i, 5).Value = "prüfen"
44Next i
55End Sub
Cells(i, 4) ist Zeile i, Spalte 4, also Spalte D.

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)

Weiter üben

Im Excel-Kurs kommen die Übungen in der richtigen Reihenfolge, mit Fortschritt und Zertifikat.

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.

Excel richtig lernen, nicht nur nachschlagen.

Der Excel-Kurs online führt dich mit Übungen von SUMME bis Pivot, mit Zertifikat am Ende.

Kostenlos weiterüben