Makros in Excel programmieren: Die vollständige Schritt-für-Schritt-Anleitung

Letzte Aktualisierung: August 29 2025
  • Makros automatisieren sich wiederholende Aktionen in Excel, reduzieren Fehler und sparen Zeit.
  • Sie können sie mit dem Recorder erstellen und für zusätzliche Flexibilität mit VBA erweitern.
  • Verwenden Sie relative Referenzen, um unterschiedliche Bereiche zu berücksichtigen und redundante Schritte zu vermeiden.
  • Speichern Sie als .xlsm und verwalten Sie die Sicherheit, um Makros sicher auszuführen.

Makros in Excel und wie man sie programmiert

Wenn Sie in Excel immer wieder dieselben Aufgaben erledigen, sind Makros Ihr bester Freund, um Zeit zu sparen. Mit ihnen können Sie ganze Aktionsabläufe automatisieren (mehr dazu in der VBA-Programmierung ), von der Formatierung über den Datenimport bis hin zu Berechnungen, und diese jederzeit per Klick oder Tastenkombination auslösen.

Wenn Sie ein Makro erstellen, zeichnet Excel Ihre Klicks und Tastatureingaben auf und führt sie präzise aus. Anschließend können Sie den Code anpassen, um die Ausführung zu optimieren, und weitere Informationen zu Excel nutzen . Üblicherweise beginnt man mit dem Makrorekorder und verfeinert ihn dann mit VBA, um mehr Kontrolle, Flexibilität und die Vermeidung von Fehlern durch Unachtsamkeit zu erreichen.

Was genau ist ein Makro in Excel?

Ein Makro ist eine Liste von Anweisungen, die Excel in einer festgelegten Reihenfolge ausführt . Es kann so einfach sein wie das Anwenden eines Prozentformats oder so komplex wie das Erstellen eines Berichts mit Pivot-Tabellen , dessen Formatierung, das Erstellen von Arbeitsblättern und das Versenden einer E-Mail in Outlook. Makros werden in Ihrer Arbeitsmappe gespeichert und können bei Bedarf ausgeführt werden.

Sie benötigen keine Programmierkenntnisse, um loszulegen: Der Rekorder übersetzt Ihre Aktionen in VBA-Code. Mit VBA-Kenntnissen können Sie jedoch benutzerdefinierte Funktionen, Formulare und sogar kleine Anwendungen in Excel erstellen.

Warum Makros verwenden? Echte Vorteile

Der Hauptzweck eines Makros besteht darin, wiederkehrende Aufgaben zu vermeiden und Fehler zu minimieren . Wenn Sie jeden Monat denselben Bericht erstellen, erspart Ihnen ein Makro die routinemäßigen Schritte und ermöglicht es Ihnen, sich auf das Wesentliche zu konzentrieren.

Zu den Vorteilen zählen Zeitersparnis, konsistente Arbeitsabläufe (ohne Auslassungen) und die Möglichkeit, Tastenkombinationen und Schaltflächen zu erstellen, um Prozesse zu beschleunigen . Wenn Sie Excel nur gelegentlich nutzen, lohnt es sich möglicherweise nicht; wenn Sie es jedoch täglich verwenden, werden Sie den Unterschied vom ersten Tag an bemerken.

Aktivieren Sie die Registerkarte „Entwickler“ (Windows und Mac).

Die Registerkarte „Entwicklertools“ ist standardmäßig ausgeblendet. Klicken Sie in Windows mit der rechten Maustaste auf das Menüband und wählen Sie „Menüband anpassen“. Aktivieren Sie „Entwicklertools“ und klicken Sie auf „OK“. Anschließend wird die Registerkarte „Entwicklertools“ neben „Ansicht“ angezeigt.

Gehen Sie auf einem Mac in Excel zu „Einstellungen“ > „Symbolleisten & Menüband“. Wählen Sie unter „Hauptregisterkarten“ die Option „Entwicklertools“ und speichern Sie die Einstellungen. Dadurch erhalten Sie Zugriff auf den Recorder, VBA und die Steuerelemente . Wenn Sie Excel noch nicht kennen, lesen Sie die Excel-Grundlagen, um sich mit dem Menüband und seinen Optionen vertraut zu machen.

So erstellen Sie Makros mit dem Recorder

Der Rekorder eignet sich perfekt für den Einstieg. Gehen Sie zu Entwicklertools > Makro aufzeichnen (oder drücken Sie unter Windows Alt+T+M+R) und geben Sie einen aussagekräftigen Namen ein. Wichtig: Der Name muss mit einem Buchstaben beginnen und darf keine Leerzeichen oder Sonderzeichen enthalten.

Wählen Sie den Speicherort: „Diese Arbeitsmappe“ ist in den meisten Fällen ausreichend. Wenn Sie die Arbeitsmappe dauerhaft verfügbar halten möchten, wählen Sie „Persönliche Makro-Arbeitsmappe“. Excel erstellt und speichert die Datei dann unter „ Personal.xlsb “, die standardmäßig im Hintergrund geöffnet wird.

Optional können Sie eine Tastenkombination hinzufügen. Um Konflikte zu vermeiden (z. B. den Verlust von Strg+Z), empfiehlt es sich, Tastenkombinationen mit Strg+Umschalt zu verwenden. Sie können auch eine kurze, prägnante Beschreibung hinzufügen (sehr hilfreich bei vielen Makros).

Klicken Sie auf OK und führen Sie die aufzuzeichnenden Aktionen aus. Wählen Sie beispielsweise A1 aus und wenden Sie das Format „Prozent“ an. Vermeiden Sie unnötige Klicks oder Auswahländerungen, die nicht zum gewünschten Prozess gehören, da das Aufzeichnungsgerät nahezu alles aufzeichnet.

  Gemini Code Assist: KI-Assistent für Programmierer jetzt kostenlos verfügbar

Wenn Sie fertig sind, beenden Sie die Aufzeichnung. Um das Makro auszuführen, gehen Sie zu Entwicklertools > Makros (oder drücken Sie Alt+F8), wählen Sie Ihr Makro aus und klicken Sie auf Ausführen. Excel wiederholt die Schritte dann in genau derselben Reihenfolge.

Ausführen, Bearbeiten und Verwalten Ihrer Makros

Über Entwicklertools > Makros (Alt+F8) können Sie Makros ausführen, bearbeiten oder löschen. Wenn Sie „Bearbeiten“ wählen, öffnet sich der Visual Basic Editor mit dem aufgezeichneten Code, den Sie bereinigen und optimieren können (er enthält oft redundante Schritte).

Das Zuweisen eines Makros zu einer Schaltfläche oder Form ist sehr einfach: Form einfügen, Rechtsklick > Makro zuweisen, Makro auswählen, fertig. Beim Klicken auf die Form wird es sofort ausgeführt.

Um die Funktion in der Schnellzugriffsleiste dauerhaft verfügbar zu halten, öffnen Sie das Menü der Symbolleiste (Pfeil nach unten) > Weitere Befehle > wählen Sie unter „Verfügbare Befehle in“ die Option „Makros“, fügen Sie Ihr Makro hinzu und ändern Sie bei Bedarf das Symbol. Nun steht Ihnen die Schaltfläche auch außerhalb des Entwicklermodus dauerhaft zur Verfügung.

Wenn Sie das Makro in einer anderen Arbeitsmappe wiederverwenden möchten, können Sie das Modul aus dem Visual Basic Editor kopieren. Öffnen Sie den VBE (Alt+F11), ziehen Sie das Modul in die andere geöffnete Arbeitsmappe oder verwenden Sie die Funktion „.bas-Datei exportieren/importieren“.

Makros in Excel mit dem Visual Basic (VBA) Editor programmieren

Um über den Recorder hinauszugehen, öffnen Sie den Editor mit Alt+F11. Fügen Sie ein Modul ein (Einfügen > Modul) und erstellen Sie Ihre erste Subroutine. Das Grundmuster ist: Sub Name() … End Sub.

Um beispielsweise eine Nachricht anzuzeigen und einen Wert in Zelle A1 zu schreiben, könnten Sie mit etwas Einfachem beginnen. Auf diese Weise verstehen Sie die Struktur und wie Sie das Makro aus Excel aufrufen (Alt+F8) oder es einer Schaltfläche zuweisen, und zwar mit sehr wenigen Codezeilen :

Sub Primera_Macro()
    Range("A1").Value = "Esto de las macros mola."
    MsgBox "Hola, querido amigo."
End Sub

Ein weiteres kurzes Beispiel für die Anwendung des Prozentformats auf die aktuelle Auswahl. Dieses Makro wiederholt die Vorgehensweise des Rekorders , jedoch direkt per Texteingabe:

Sub FormatoPorcentaje()
    Selection.Style = "Percent"
End Sub

Die ideale Kombination ist: Zuerst aufzeichnen, um die Arbeit zu beschleunigen, dann den VBA-Editor öffnen, um unnötige Schritte zu entfernen und Variablen, Bedingungen oder Schleifen hinzuzufügen. So verwandeln Sie eine einfache Aufzeichnung in ein robustes und wiederverwendbares Makro.

Absolute vs. relative Referenzen

Standardmäßig erstellt der Rekorder Makros im absoluten Modus: Er bearbeitet immer dieselben Zellen (z. B. B3), unabhängig davon, wo Sie sich beim Ausführen befinden. Wenn sich die Datenposition in Ihrem Prozess ändert, ist dies möglicherweise nicht das, was Sie benötigen.

Mit der Option „Relative Bezüge verwenden“ arbeitet das Makro relativ zur aktiven Zelle beim Start der Ausführung. Wenn Sie beispielsweise die Aufzeichnung in Zelle B3 begonnen und „Vorname“, „Nachname“ usw. eingegeben haben, werden beim Ausführen ab Zelle C4 dieselben Informationen relativ zu den Zellen C4, D4, E4 usw. eingegeben.

Ein typisches Beispiel: Das Hinzufügen von Tabellentiteln, die mal in Zelle B3, mal in Zelle C5 beginnen. Im absoluten Modus würde der Titel immer in Zelle B3 stehen. Im relativen Modus passt er sich der ausgewählten Startzelle an.

Häufige Fehler bei der Prozessaufzeichnung

Ein häufiger Fehler besteht darin, eine Formel über drei Zeilen aufzuzeichnen und anzunehmen, dass dies auch für längere Tabellen funktioniert. Das Aufzeichnungsprogramm registriert dann etwas wie „ drei Zellen nach unten füllen “, nicht „bis zum Ende der Tabelle“.

Die Lösung besteht darin, Ihre Vorgehensweise zu ändern: Verwenden Sie dynamische Bereiche (z. B. durch Erkennen der letzten Zeile), Schleifen oder die CurrentRegion-Methode, oder passen Sie das Makro in VBA nach der Aufzeichnung so an, dass es auf jede beliebige Größe skaliert werden kann.

  Was ist SPSS und seine Funktionen

Gute Praktiken bei der Aufnahme

Vor der Aufnahme sollten Sie den Vorgang ein paar Mal manuell durchspielen, um ihn zu optimieren. Erstellen Sie lieber kurze, prägnante Aufnahmen anstatt einer einzigen langen; so lassen sie sich leichter verwalten und zusammenfügen.

Vermeiden Sie unnötige Klicks, langes Scrollen im Menüband und Auswahlen, die keinen Nutzen bringen. Formulieren Sie Namen und Beschreibung des Makros so, dass Sie und Ihre Kollegen dessen Zweck sofort erkennen können.

Makros auf viele Arten ausführen

Neben dem Dialogfeld „Makros“ (Alt+F8) können Sie Makros auch über eine Form, eine Schaltfläche in der Symbolleiste für den Schnellzugriff oder durch Öffnen der Arbeitsmappe starten. Excel kann Makros sogar aus anderen Office-Anwendungen ausführen, sodass Sie anwendungsübergreifende Aufgaben automatisieren können (z. B. eine Tabelle aktualisieren und eine E-Mail über Outlook versenden).

Überlegen Sie sich die Tastenkombinationen gut: Wenn Sie Strg+Z einem Makro zuweisen, können Sie Aktionen nicht mehr rückgängig machen, solange die Arbeitsmappe geöffnet ist. Daher empfiehlt es sich, Strg+Umschalt- Kombinationen zu verwenden , um Konflikte zu vermeiden.

Speichern von Arbeitsmappen mit Makros

Wenn eine Datei VBA-Code enthält, speichern Sie sie als .xlsm-Datei, damit der Code erhalten bleibt und ausgeführt werden kann. Das Speichern als .xlsx-Datei zerstört das VBA-Projekt . Für globale Makros verwenden Sie die persönliche Makro-Arbeitsmappe (Personal.xlsb).

Sicherheit und Aktivieren von Makros

Je nach Ihren Sicherheitseinstellungen können Makros blockiert sein. Im Trust Center können Sie Makros gezielt aktivieren. Aktivieren Sie niemals Makros aus unbekannten Quellen. Wenn Sie Ihre Sicherheitseinstellungen kennen, können Sie ein ausgewogenes Verhältnis zwischen Schutz und Produktivität herstellen.

Zuweisen von Makros zu Schaltflächen, Formen und Steuerelementen

Um Benutzern die automatische Ausführung von Makros zu ermöglichen, weisen Sie einem Button, einer Form oder einem Steuerelement ein Makro zu. Klicken Sie mit der rechten Maustaste auf das Objekt > Makro zuweisen > auswählen. Alternativ können Sie ein Symbol im Menüband oder in der Symbolleiste für den Schnellzugriff platzieren und es mit dem Makro verknüpfen.

Wenn Sie Formulare oder ActiveX-Steuerelemente verwenden, können Sie ihnen Makros oder Ereignisprozeduren (z. B. beim Klicken) zuweisen. Dies ermöglicht benutzerfreundlichere Oberflächen und geführte Prozesse.

Nützliche Makrobeispiele (VBA)

Diese Beispiele veranschaulichen gängige Aufgaben. Sie können sie in ein Modul einfügen (Alt+F11 > Einfügen > Modul) und anpassen. Denken Sie daran, die Arbeitsmappen zu signieren oder die Sicherheitseinstellungen anzupassen, falls dies von Ihrer Organisation gefordert wird, damit Sie sie ohne Warnungen ausführen können.

Den ausgewählten Inhalt an eine andere Stelle auf demselben Tabellenblatt kopieren: Auswahl.Ziel kopieren

Sub CopiarSeleccion()
    If TypeName(Selection) = "Range" Then
        Selection.Copy Destination:=Selection.Offset(0, 2)
    Else
        MsgBox "Selecciona un rango de celdas primero."
    End If
End Sub

Drucken Sie das aktive Tabellenblatt: ActiveSheet.PrintOut

Sub ImprimirHojaActual()
    ActiveSheet.PrintOut
End Sub

Speichern Sie die Datei als Arbeitsmappe mit Makros (.xlsm): ActiveWorkbook.SaveAs

Sub GuardarComoXlsm()
    Dim ruta As String
    ruta = ThisWorkbook.Path & Application.PathSeparator & "LibroConMacros.xlsm"
    ActiveWorkbook.SaveAs Filename:=ruta, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

Formatierung auf einen Bereich anwenden (Bereich an Ihre Bedürfnisse anpassen): Mit Bereich(…)

Sub FormatoRango()
    With Range("A1:D10")
        .Font.Bold = True
        .Interior.Color = RGB(230, 230, 250)
        .Borders.LineStyle = xlContinuous
    End With
End Sub

Einen Wert in einem Bereich finden und den ersten Treffer anzeigen: Range(…).Find

Sub BuscarValor()
    Dim celda As Range
    Dim valor As String
    valor = InputBox("¿Qué valor quieres buscar?")
    If valor = "" Then Exit Sub
    Set celda = Range("A1:D1000").Find(What:=valor, LookIn:=xlValues, LookAt:=xlPart)
    If Not celda Is Nothing Then
        MsgBox "Encontrado en: " & celda.Address
        celda.Select
    Else
        MsgBox "No se encontró el valor especificado."
    End If
End Sub

Praxisfall: Formatierung als Prozentwert

Aufzeichnung: Starten Sie die Aufzeichnung, benennen Sie sie, wählen Sie den Speicherort und weisen Sie optional eine Tastenkombination und eine Beschreibung zu. Markieren Sie die Zellen und wenden Sie auf der Registerkarte „Start“ die Option „Prozent“ an. Beenden Sie die Aufzeichnung und starten Sie sie anschließend mit Alt+F8. Um die Aufzeichnung mit minimalem Code wiederzugeben, verwenden Sie in VBA ` Selection.Style = "Prozent"`.

  Komplettlösung für Apps, die nicht in Android Auto angezeigt werden

Tipp: Vermeiden Sie während der Aufnahme unnötige Zellwechsel. Diese Hin- und Herbewegungen werden aufgezeichnet und können das Makro verlangsamen und beschädigen.

Automatisieren Sie lange Aufgaben: Kleine Makros sind besser

Bei Prozessen mit vielen Schritten empfiehlt es sich, diese in mehrere kleinere Makros aufzuteilen und diese nacheinander aufzurufen. Dies erleichtert die Wartung, ermöglicht die Wiederverwendung von Codeblöcken und vereinfacht das Debuggen.

Beispielsweise ein Makro zur Datenaufbereitung, ein weiteres zur Formatierung, ein drittes zum Erstellen eines Ausdrucks und ein viertes zum Exportieren als PDF oder zum Versenden per E-Mail . Sie können diese Makros einzeln oder alle gleichzeitig aufrufen.

Aufgezeichneten Code bearbeiten und bereinigen

Der Recorder zeichnet alles auf: Auswahlen, Klicks und Tabulatorwechsel. Beim Öffnen des VBA-Editors werden unnötige Auswahlen (Select/Selection) entfernt, indem sie durch direkte Verweise ersetzt werden (z. B. Range("A1").Value = ... ). Formate werden in With/End With-Blöcke gruppiert.

Darüber hinaus werden Variablen und eine grundlegende Fehlerbehandlung hinzugefügt. Einige if-Anweisungen und einfache Prüfungen verhindern Fehler, wenn der Bereich leer ist oder die Auswahl nicht den Erwartungen entspricht.

Häufig gestellte Fragen

Wie erstelle ich ein Benutzerformular in Excel? Öffnen Sie den Visual Basic Editor (Alt+F11), gehen Sie zu Einfügen > Benutzerformular und fügen Sie Steuerelemente (Textfelder, Schaltflächen usw.) hinzu. Sie können es mithilfe eines Makros anzeigen.

Sub MostrarFormulario()
    UserForm1.Show
End Sub

Weisen Sie anschließend den Ereignissen der Steuerelemente (z. B. einem Klick auf eine Schaltfläche) Prozeduren zu, um die benötigte Logik auszuführen.

Wie kann ich ein Tabellenblatt mithilfe von Makros schützen/entsperren? Verwenden Sie diese Routinen, indem Sie das Passwort nach Bedarf ändern. Sie ermöglichen es Ihnen , den Schutz mit einem einzigen Klick zu aktivieren oder zu deaktivieren.

Sub ProtegerHoja()
    ActiveSheet.Protect Password:="segura", AllowFiltering:=True
End Sub

Sub DesprotegerHoja()
    ActiveSheet.Unprotect Password:="segura"
End Sub

Wie lösche ich ein Makro? Gehen Sie zu Entwicklertools > Makros, wählen Sie das Makro aus und drücken Sie die Entf-Taste. Um den gesamten Code eines Moduls zu löschen, öffnen Sie den VBA-Editor (Alt+F11), suchen Sie das Modul im Projekt, klicken Sie mit der rechten Maustaste darauf und wählen Sie „ Modul entfernen“ (Sie können es vorher exportieren, um es zu speichern).

Ein letzter praktischer Tipp: Wenn Sie einen Monatsbericht formatieren, in dem Kunden mit offenen Salden rot und fett hervorgehoben werden sollen, zeichnen Sie die Sequenz einmal auf, passen Sie den VBA-Code an den richtigen Bereich an (z. B. mithilfe der Zeilenerkennung oder Filtern) und speichern Sie das Makro in Ihrer persönlichen Makro-Arbeitsmappe. Beim nächsten Mal genügt dann eine einfache Tastenkombination oder ein Button, um die Formatierung sofort und fehlerfrei in Sekundenschnelle anzuwenden.

Makros in Excel
In Verbindung stehender Artikel:
Makros in Excel: So automatisieren Sie Aufgaben und steigern Ihre Produktivität