LXLogicExcel
🔥
0
0

Excel-VBA-Makros: Dein erstes Makro aufzeichnen, schreiben und ausführen

Vom LogicExcel-RedaktionsteamAktualisiert Juni 20266 Min. Lesezeit1,192 Wörter

Ein Makro ist eine aufgezeichnete Abfolge von Excel-Aktionen, die du mit einem Klick wieder abspielst. VBA (Visual Basic for Applications) ist die Sprache, in der diese Aktionen geschrieben sind. Für den Anfang musst du VBA nicht können: Excel schreibt den Code für dich, während du aufzeichnest. Diese Anleitung bringt dich von null zu einem funktionierenden Makro, das du verstehst, und zeigt dir dann, wie du den Code selbst bearbeitest.

Was ist ein Makro, und was ist VBA?

Ein Makro automatisiert eine wiederkehrende Aufgabe. Wenn du jeden Montag denselben Bericht formatierst, erledigt ein Makro die ganze Abfolge in Sekundenbruchteilen.

VBA ist die Programmiersprache hinter den Makros. Wenn du ein Makro aufzeichnest, übersetzt Excel deine Klicks und Tastenanschläge in VBA und speichert sie in einem Modul. Diesen Code kannst du unverändert ausführen oder öffnen und ändern. Zeichne auf, wenn die Aufgabe eine feste Klickabfolge ist, die du einmal ausführen kannst. Schreibe VBA, wenn du Logik brauchst, die Excel nicht aufzeichnen kann: Schleifen, Bedingungen (If) oder Arbeit über viele Tabellenblätter hinweg.

Registerkarte Entwicklertools einblenden

Alles rund um Makros liegt auf der Registerkarte Entwicklertools, die standardmäßig ausgeblendet ist.

Windows: Datei → Optionen → Menüband anpassen. Setze in der rechten Liste unter Hauptregisterkarten das Häkchen bei Entwicklertools und klicke auf OK. Mac: Excel → Einstellungen → Menüband und Symbolleiste. Setze in der rechten Liste das Häkchen bei Entwicklertools und klicke auf Speichern.

Die Registerkarte Entwicklertools erscheint jetzt im Menüband, mit einer Gruppe Code, die Makro aufzeichnen, Makros und Visual Basic enthält.


Dein erstes Makro aufzeichnen (ohne Code)

  • Klicke auf der Registerkarte Entwicklertools auf Makro aufzeichnen.
  • Gib ihm einen Namen ohne Leerzeichen, zum Beispiel KopfzeileFormatieren. Optional kannst du eine Tastenkombination zuweisen.
  • Wähle den Speicherort: Diese Arbeitsmappe für ein Makro, das an diese Datei gebunden ist.
  • Klicke auf OK. Die Aufzeichnung läuft, jede Aktion wird jetzt erfasst.
  • Führe die Aufgabe einmal langsam aus. Zum Beispiel: Zeile 1 markieren, fett formatieren, grau füllen.
  • Klicke auf der Registerkarte Entwicklertools auf Aufzeichnung beenden.
Das ist ein funktionierendes Makro. Excel hat den VBA-Code für dich geschrieben.

Ein Makro ausführen

Entwicklertools → Makros (oder Alt+F8) öffnet die Makroliste. Wähle dein Makro und klicke auf Ausführen. Wenn du beim Aufzeichnen eine Tastenkombination zugewiesen hast, startet auch die das Makro.

Für ein Makro, das du ständig nutzt, füge eine Schaltfläche ein: Entwicklertools → Einfügen → Schaltfläche (Formularsteuerelement), zeichne sie auf das Blatt und weise das Makro zu, wenn du danach gefragt wirst.


Den aufgezeichneten Code lesen

Klicke auf Entwicklertools → Visual Basic (oder drücke Alt+F11), um den Visual Basic-Editor (VBE) zu öffnen. Klappe im Projektbereich links Module auf und doppelklicke auf Modul1. Du siehst etwas wie:

Sub KopfzeileFormatieren()
    Rows("1:1").Select
    Selection.Font.Bold = True
    Selection.Interior.Color = RGB(217, 217, 217)
End Sub

Den Code Zeile für Zeile zu lesen bringt dir VBA schneller bei als jede Anleitung: Jede Zeile ist eine Aktion, die du gerade ausgeführt hast. Sub startet das Makro, End Sub beendet es, und die Zeilen dazwischen sind die Schritte.


Ein Makro von Grund auf schreiben

Aufgezeichneter Code wirkt immer auf das, was gerade markiert ist, und ist dadurch anfällig. Selbst geschriebener Code benennt sein Ziel direkt und ist zuverlässiger. Wähle im VBE Einfügen → Modul und tippe:

Sub BerichtFormatieren()
    Range("A1:D1").Font.Bold = True
    Range("A1:D1").Interior.Color = RGB(217, 217, 217)
    Columns("A:D").AutoFit
End Sub

Das formatiert die Kopfzeile fett, füllt sie grau und passt die Spaltenbreite an, ohne vorher etwas zu markieren. Drücke F5 im Editor, um es auszuführen, oder starte es über die Makroliste auf dem Blatt.

Um Logik hinzuzufügen, die der Rekorder nicht erfassen kann, nutze eine Bedingung:

Sub NiedrigenBestandMarkieren()
    Dim r As Long
    For r = 2 To 100
        If Cells(r, 2).Value < 10 Then
            Cells(r, 3).Value = "Nachbestellen"
        End If
    Next r
End Sub

Das durchläuft die Zeilen 2 bis 100 und schreibt "Nachbestellen" in Spalte C, wo immer Spalte B unter 10 liegt. Eine Schleife und ein If sind die beiden Dinge, die sich zuerst zu lernen lohnen, denn sie machen aus einem Rekorder echte Automatisierung.


Eine Arbeitsmappe mit Makros speichern

Eine normale .xlsx-Datei kann keine Makros speichern. Wenn du speicherst, ohne das Format zu ändern, wird dein Code stillschweigend verworfen.

Nutze Datei → Speichern unter und wähle Excel-Arbeitsmappe mit Makros (\*.xlsm). Die Endung .xlsm sagt Excel und jedem, dem du die Datei schickst, dass sie Code enthält.


Makrosicherheit

Weil Makros Code ausführen können, blockiert Excel sie standardmäßig in Dateien, die nicht von deinem Rechner stammen. Wenn du eine heruntergeladene .xlsm öffnest, erscheint eine gelbe Leiste Sicherheitswarnung mit der Schaltfläche Inhalt aktivieren.

Aktiviere Makros nur in Dateien, denen du vertraust. Ein bösartiges Makro kann echten Schaden anrichten. Bei Dateien, die du selbst erstellst, warnt Excel nicht. Um die Voreinstellung zu ändern, gehe zu Datei → Optionen → Trust Center → Einstellungen für das Trust Center → Makroeinstellungen. Die sichere Voreinstellung "Alle Makros mit Benachrichtigung deaktivieren" ist für die meisten die richtige Wahl.


Häufige Fehler

  • Als .xlsx speichern. Das Makro verschwindet. Nutze immer .xlsm.
  • Sich auf .Select verlassen. Aufgezeichneter Code markiert Dinge und wirkt auf die Markierung. Schreibe ihn so um, dass er den Bereich direkt benennt (Range("A1")), damit er unabhängig von der Markierung funktioniert.
  • Kein Option Explicit. Schreibe Option Explicit an den Anfang eines Moduls, und Excel zwingt dich, Variablen zu deklarieren. Das fängt Tippfehler ab, bevor sie stille Fehler verursachen.
  • Ein Makro aufzeichnen, das das Öffnen der Datei enthält. Der aufgezeichnete Pfad ist fest verdrahtet und bricht auf einem anderen Rechner.

Häufig gestellte Fragen

Muss ich programmieren können, um Makros zu nutzen?

Nein. Der Makrorekorder schreibt den VBA-Code für dich. Du kannst Makros aufzeichnen, ausführen und wiederverwenden, ohne eine einzige Zeile zu schreiben. Den aufgezeichneten Code zu lesen ist der einfachste Einstieg in VBA, sobald du bereit bist.

Funktioniert VBA in Excel für Mac?

Ja. Excel für Mac (Microsoft 365 und 2019 oder neuer) enthält den vollständigen VBA-Editor und den Makrorekorder. Öffne den Editor mit Fn+Wahltaste+F11, falls das einfache Alt+F11 von macOS abgefangen wird. Ein paar Windows-spezifische Objekte fehlen, aber die alltägliche Automatisierung funktioniert gleich.

Warum ist mein Makro nach dem erneuten Öffnen der Datei verschwunden?

Du hast als .xlsx gespeichert, und das kann keinen Code halten. Erstelle das Makro neu und speichere als Excel-Arbeitsmappe mit Makros (.xlsm).

Was ist der Unterschied zwischen einem Makro und VBA?

Ein Makro ist die automatisierte Aufgabe. VBA ist die Sprache, in der sie geschrieben ist. Jedes Makro ist VBA-Code; das Aufzeichnen ist nur eine Art, diesen Code zu erzeugen, ohne ihn zu tippen.

Ist es sicher, Makros zu aktivieren?

Makros, die du selbst schreibst, sind sicher. Makros in Dateien von anderen Leuten können schädlichen Code enthalten, deshalb deaktiviert Excel sie, bis du auf Inhalt aktivieren klickst. Aktiviere Makros nur in Dateien aus einer Quelle, der du vertraust.

Kann ein Makro automatisch beim Öffnen der Arbeitsmappe laufen?

Ja. Ein Sub mit dem Namen Workbook_Open im Objekt DieseArbeitsmappe läuft jedes Mal, wenn die Datei geöffnet wird. Nutze das sparsam und nie in einer Datei, die andere öffnen, ohne zu wissen, dass sie Code enthält.

Ähnliche Tutorials