So zeichnen Sie ein Makro in Excel auf - Eine Schritt-für-Schritt-Anleitung

Auch wenn Sie ein kompletter Neuling in der Welt von Excel VBA sind, können Sie ganz einfach ein Makro aufzeichnen und einen Teil Ihrer Arbeit automatisieren.

In dieser ausführlichen Anleitung beschreibe ich alles, was Sie wissen müssen, um mit der Aufzeichnung und Verwendung von Makros in Excel zu beginnen.

Wenn Sie daran interessiert sind, VBA auf einfache Weise zu lernen, besuchen Sie mein Online Excel VBA-Schulung.

Was ist ein Makro?

Wenn Sie ein VBA-Neuling sind, möchte ich Ihnen zunächst sagen, was ein Makro ist - schließlich werde ich diesen Begriff im gesamten Tutorial weiterhin verwenden.

Ein Makro ist ein in VBA (Visual Basic for Applications) geschriebener Code, mit dem Sie bei jeder Ausführung einen Teil des Codes ausführen können.

Oft werden Sie feststellen, dass Leute (einschließlich mir) einen VBA-Code als Makro bezeichnen – egal, ob er mit einem Makrorekorder generiert oder manuell geschrieben wurde.

Wenn Sie ein Makro aufzeichnen, beobachtet Excel genau die Schritte, die Sie ausführen, und notiert sie in einer Sprache, die es versteht – VBA.

Und da Excel ein wirklich guter Notizenmacher ist, erstellt es einen sehr detaillierten Code (wie wir später in diesem Tutorial sehen werden).

Wenn Sie nun die Aufzeichnung stoppen, das Makro speichern und ausführen, kehrt Excel einfach zum generierten VBA-Code zurück und führt genau die gleichen Schritte aus.

Das bedeutet, dass Sie, auch wenn Sie nichts über VBA wissen, einige Aufgaben automatisieren können, indem Sie Excel Ihre Schritte einmal aufzeichnen und diese später wiederverwenden.

Lassen Sie uns nun eintauchen und sehen, wie Sie ein Makro in Excel aufzeichnen.

Abrufen der Registerkarte "Entwickler" in der Multifunktionsleiste

Der erste Schritt zum Aufzeichnen eines Makros besteht darin, die Registerkarte Entwickler im Menüband aufzurufen.

Wenn Sie die Registerkarte Entwickler im Menüband bereits sehen können, gehen Sie zum nächsten Abschnitt, andernfalls führen Sie die folgenden Schritte aus:

  • Klicken Sie mit der rechten Maustaste auf eine der vorhandenen Registerkarten im Menüband und klicken Sie auf die Option "Menüband anpassen". Es öffnet das Dialogfeld Excel-Optionen.
  • Im Dialogfeld Excel-Optionen haben Sie die Optionen Menüband anpassen. Aktivieren Sie rechts im Bereich Hauptregisterkarten die Option Entwickler.
  • OK klicken.

Die obigen Schritte würden die Registerkarte Entwickler im Menübandbereich verfügbar machen.

Aufzeichnen eines Makros in Excel

Nachdem wir nun alles eingerichtet haben, lernen wir, wie Sie ein Makro in Excel aufzeichnen.

Lassen Sie uns ein sehr einfaches Makro aufzeichnen - eines, das eine Zelle auswählt und den Text "Excel" eingibt. Ich verwende den Text "Excel" während der Aufnahme dieses Makros, aber Sie können gerne Ihren Namen oder einen anderen Text eingeben, der Ihnen gefällt.

Hier sind die Schritte zum Aufzeichnen dieses Makros:

  1. Klicken Sie auf die Registerkarte Entwickler.
  2. Klicken Sie in der Gruppe Code auf die Schaltfläche Makro. Dadurch wird das Dialogfeld „Makro aufnehmen“ geöffnet.
  3. Geben Sie im Dialogfeld Makro aufzeichnen einen Namen für Ihr Makro ein. Ich verwende den Namen Text eingeben. Es gibt einige Benennungsbedingungen, die Sie beim Benennen eines Makros beachten müssen. Sie können beispielsweise keine Leerzeichen dazwischen verwenden. Normalerweise ziehe ich es vor, meine Makronamen als einzelnes Wort mit verschiedenen Teilen mit einem großgeschriebenen ersten Alphabet beizubehalten. Sie können auch einen Unterstrich verwenden, um zwei Wörter zu trennen, z. B. Enter_Text.
  4. (Optionaler Schritt) Sie können bei Bedarf eine Tastenkombination zuweisen. In diesem Fall verwenden wir die Tastenkombination Strg + Umschalt + N. Denken Sie daran, dass die hier zugewiesene Tastenkombination alle vorhandenen Tastenkombinationen in Ihrer Arbeitsmappe überschreiben würde. Wenn Sie beispielsweise die Tastenkombination Strg + S zuweisen, können Sie diese nicht zum Speichern der Arbeitsmappe verwenden (stattdessen wird bei jeder Verwendung das Makro ausgeführt).
  5. Stellen Sie bei der Option "Makro speichern in" sicher, dass "Diese Arbeitsmappe" ausgewählt ist. Dieser Schritt stellt sicher, dass das Makro ein Teil der Arbeitsmappe ist. Es ist vorhanden, wenn Sie es speichern und erneut öffnen oder auch wenn Sie es mit jemandem teilen.
  6. (Optionaler Schritt) Geben Sie eine Beschreibung ein. Normalerweise mache ich das nicht, aber wenn Sie sehr gut organisiert sind, möchten Sie vielleicht hinzufügen, worum es in dem Makro geht.
  7. OK klicken. Sobald Sie auf OK klicken, werden Ihre Aktionen in Excel aufgezeichnet. Sie können die Schaltfläche "Aufzeichnung stoppen" auf der Registerkarte "Entwickler" sehen, die anzeigt, dass die Makroaufzeichnung im Gange ist.
  8. Wählen Sie Zelle A2 aus.
  9. Geben Sie den Text ein Excel (oder Sie können Ihren Namen verwenden).
  10. Drücken Sie die Eingabetaste. Dadurch wird Zelle A3 ausgewählt.
  11. Klicken Sie auf die Schaltfläche Aufzeichnung beenden auf der Registerkarte Entwickler.

Glückwünsche!

Sie haben gerade Ihr erstes Makro in Excel aufgezeichnet. Du bist keine Makro-Jungfrau mehr.

Während das Makro nichts Nützliches tut, erfüllt es seinen Zweck, indem es erklärt, wie ein Makrorekorder in Excel funktioniert.

Lassen Sie uns nun dieses Makro testen.

Führen Sie die folgenden Schritte aus, um das Makro zu testen:

  1. Löschen Sie den Text in Zelle A2. Dies ist, um zu testen, ob das Makro den Text in Zelle A2 einfügt oder nicht.
  2. Wählen Sie eine beliebige Zelle aus - außer A2. Dies dient zum Testen, ob das Makro Zelle A2 auswählt oder nicht.
  3. Klicken Sie auf die Registerkarte Entwickler.
  4. Klicken Sie in der Gruppe Code auf die Schaltfläche Makros.
  5. Klicken Sie im Dialogfeld Makro auf den Makronamen - EnterText.
  6. Klicken Sie auf die Schaltfläche Ausführen.

Sie werden feststellen, dass, sobald Sie auf die Schaltfläche Ausführen klicken, der Text "Excel" in Zelle A2 eingefügt und Zelle A3 ausgewählt wird.

Nun, dies kann alles in Sekundenbruchteilen passieren, aber in Wirklichkeit hat das Makro - genau wie ein gehorsamer Elf - genau die Schritte befolgt, die Sie ihm beim Aufzeichnen des Makros gezeigt haben.

Das Makro wählt also zuerst die Zelle A2 aus und gibt dann den Text ein Excel darin und wählt dann die Zelle A3 aus.

Hinweis: Sie können das Makro auch mit der Tastenkombination ausführen Strg + Umschalt + N (Halten Sie die Strg- und die Umschalttaste gedrückt und drücken Sie dann die N-Taste). Dies ist die gleiche Tastenkombination, die wir dem Makro bei der Aufnahme zugewiesen haben.

Was das Aufzeichnen eines Makros im Backend bewirkt

Gehen wir nun zum Excel-Backend - dem VB-Editor - und sehen wir, was das Aufzeichnen eines Makros wirklich bewirkt.

Hier sind die Schritte zum Öffnen des VB-Editors in Excel:

  1. Klicken Sie auf die Registerkarte Entwickler.
  2. Klicken Sie in der Gruppe Code auf die Schaltfläche Visual Basic.

Oder Sie verwenden die Tastenkombination - ALT + F11 (halten Sie die ALT-Taste gedrückt und drücken Sie F11) anstelle der beiden obigen Schritte. Diese Verknüpfung öffnet auch den gleichen VB-Editor.

Wenn Sie den VB-Editor jetzt zum ersten Mal sehen, seien Sie nicht überwältigt.

Lassen Sie mich Sie schnell mit der Anatomie des VB Editors vertraut machen.

  • Menüleiste: Hier haben Sie alle Optionen des VB Editors. Betrachten Sie dies als das Menüband von VBA. Es enthält Befehle, die Sie beim Arbeiten mit dem VB-Editor verwenden können.
  • Symbolleiste - Dies ist wie die Symbolleiste für den Schnellzugriff des VB-Editors. Es enthält einige nützliche Optionen, und Sie können weitere Optionen hinzufügen. Sein Vorteil ist, dass eine Option in der Symbolleiste nur einen Klick entfernt ist.
  • Projekt-Explorer-Fenster - Hier listet Excel alle Arbeitsmappen und alle Objekte in jeder Arbeitsmappe auf. Wenn wir beispielsweise eine Arbeitsmappe mit 3 Arbeitsblättern haben, wird sie im Projekt-Explorer angezeigt. Hier gibt es einige zusätzliche Objekte wie Module, Benutzerformulare und Klassenmodule.
  • Codefenster - Hier wird der VBA-Code aufgezeichnet oder geschrieben. Für jedes im Projektexplorer aufgelistete Objekt gibt es ein Codefenster - wie Arbeitsblätter, Arbeitsmappen, Module usw. Wir werden später in diesem Tutorial sehen, dass das aufgezeichnete Makro in das Codefenster eines Moduls geht.
  • Eigenschaftenfenster - Sie können die Eigenschaften jedes Objekts in diesem Fenster sehen. Ich benutze dieses Fenster oft, um Objekte zu benennen oder die versteckten Eigenschaften zu ändern. Dieses Fenster wird möglicherweise nicht angezeigt, wenn Sie den VB-Editor öffnen. Um dies anzuzeigen, klicken Sie auf die Registerkarte Ansicht und wählen Sie Eigenschaftenfenster.
  • Sofortiges Fenster - Ich verwende beim Schreiben von Code oft das Sofortfenster. Dies ist nützlich, wenn Sie einige Anweisungen testen möchten oder beim Debuggen. Es ist möglicherweise nicht standardmäßig sichtbar und Sie können es anzeigen, indem Sie auf die Registerkarte Ansicht klicken und die Option Direktes Fenster auswählen.

Als wir das Makro aufgenommen haben - Text eingeben, sind die folgenden Dinge im VB-Editor passiert:

  • Ein neues Modul wurde eingefügt.
  • Ein Makro wurde mit dem von uns angegebenen Namen aufgezeichnet - Text eingeben
  • Der Code wurde in das Codefenster des Moduls geschrieben.

Wenn Sie also auf das Modul doppelklicken (in diesem Fall Modul 1), erscheint ein Codefenster wie unten gezeigt.

Hier ist der Code, den der Makrorekorder und uns gegeben hat:

Sub EnterText() ' ' EnterText Macro ' ' Tastaturkürzel: Strg+Shift+N ' Range("A2").Select ActiveCell.FormulaR1C1 = "Excel" Range("A3").Select End Sub

In VBA ist jede Zeile, die auf das folgt (Apostrophzeichen) wird nicht ausgeführt. Es ist ein Kommentar, der nur zu Informationszwecken platziert wird. Wenn Sie die ersten fünf Zeilen dieses Codes entfernen, funktioniert das Makro weiterhin wie erwartet.

Lassen Sie mich nun kurz behandeln, was jede Codezeile tut:

Der Code beginnt mit Sub, gefolgt vom Namen des Makros und einer leeren Klammer. Sub ist die Abkürzung für Subroutine. Jede Unterroutine (auch Prozedur genannt) in VBA beginnt mit Sub und endet mit End Sub.

  • Bereich(“A2”).Wählen - Diese Zeile wählt die Zelle A2 aus.
  • ActiveCell.FormulaR1C1 = „Excel“ - Diese Zeile gibt den Text Excel in die aktive Zelle ein. Da wir als ersten Schritt A2 ausgewählt haben, wird es unsere aktive Zelle.
  • Bereich(“A3”).Wählen - Dadurch wird Zelle A3 ausgewählt. Dies geschieht, wenn wir nach der Eingabe des Textes die Eingabetaste drücken, wodurch Zelle A3 ausgewählt wurde.

Ich hoffe, Sie haben jetzt ein grundlegendes Verständnis dafür, wie Sie ein Makro in Excel aufzeichnen.

Denken Sie daran, dass der von einem Makrorekorder geschriebene Code keineswegs ein effizienter Code ist.

Macro Recorder fügt dem Code manchmal eine Menge Flaum hinzu, was manchmal nicht notwendig ist. Aber das bedeutet nicht, dass es nicht nützlich ist. Für jemanden, der VBA lernt, kann ein Makrorekorder eine großartige Möglichkeit sein, zu analysieren, wie die Dinge in VBA funktionieren.

Absolute vs. relative Makroaufnahme

Sie kennen bereits absolute und relative Bezüge in Excel… oder?

Wenn Sie dies nicht tun, lesen Sie zuerst dieses Tutorial zu Referenzen.

Lies es? Lass uns weitermachen.

Wir werden später in diesem Abschnitt sehen, wie Makros in absoluten und relativen Referenzen aufgezeichnet werden. Aber vorher möchte ich kurz den Unterschied zwischen absoluter und relativer Referenz in VBA zusammenfassen (falls Sie faul werden und den Link, den ich vor ein paar Zeilen gegeben habe, nicht gelesen haben):

Wenn Sie zum Aufzeichnen eines Makros eine absolute Referenzoption verwenden, verweist der VBA-Code immer auf dieselben Zellen, die Sie verwendet haben. Wenn Sie beispielsweise Zelle A2 auswählen, geben Sie den Text Excel ein und drücken Sie jedes Mal die Eingabetaste - egal wo Sie sich im Arbeitsblatt befinden und egal welche Zelle ausgewählt ist, Ihr Code würde zuerst Zelle A2 auswählen, den Text Excel eingeben und Gehen Sie dann zu Zelle A3.

Wenn Sie eine relative Referenzoption verwenden, um ein Makro aufzuzeichnen, würde VBA die Zellreferenzen nicht hartcodieren. Vielmehr würde sie sich auf die Bewegung konzentrieren, wenn sie mit der aktiven Zelle verglichen wird. Angenommen, Sie haben Zelle A1 bereits ausgewählt und beginnen mit der Aufzeichnung des Makros im relativen Referenzmodus.

Wählen Sie nun Zelle A2 aus, geben Sie den Text Excel ein und drücken Sie die Eingabetaste. Wenn Sie dieses Makro jetzt ausführen, kehrt es nicht zu Zelle A2 zurück, sondern bewegt sich relativ zur aktiven Zelle. Wenn beispielsweise Zelle K3 ausgewählt ist, wird sie zu K4 verschoben, geben den Text Excel ein und wählen schließlich Zelle K5 aus.

Lassen Sie mich Ihnen nun erklären, wie Sie ein Makro im relativen Referenzmodus aufzeichnen:

  1. Wählen Sie Zelle A1 aus.
  2. Klicken Sie auf die Registerkarte Entwickler.
  3. Klicken Sie in der Gruppe Code auf die Schaltfläche „Use Relative References“. Es wird grün und zeigt damit an, dass es eingeschaltet ist.
  4. Klicken Sie auf die Schaltfläche Makro aufzeichnen.
  5. Geben Sie im Dialogfeld Makro aufzeichnen einen Namen für Ihr Makro ein. Ich verwende den Namen EingabeTextRelRef.
  6. Stellen Sie in der Option Makro speichern in sicher, dass "Diese Arbeitsmappe" ausgewählt ist.
  7. OK klicken.
  8. Wählen Sie Zelle A2 aus.
  9. Geben Sie den Text ein Excel (oder Sie können Ihren Namen eingeben).
  10. Drücken Sie die Eingabetaste. Dadurch wird der Cursor in die Zelle A3 gebracht.
  11. Klicken Sie auf die Schaltfläche Aufzeichnung beenden auf der Registerkarte Entwickler.

Dies würde das Makro im relativen Referenzmodus aufzeichnen.

Mach das jetzt.

  1. Wählen Sie eine beliebige Zelle (außer A1) aus.
  2. Klicken Sie auf die Registerkarte Entwickler.
  3. Klicken Sie in der Gruppe Code auf die Schaltfläche Makros.
  4. Klicken Sie im Dialogfeld Makro auf den Makronamen - EingabeTextRelRef.
  5. Klicken Sie auf die Schaltfläche Ausführen.

Was geschieht? Ist der Cursor zu Zelle A3 zurückgekehrt?

Es würde nicht - weil Sie das Makro im relativen Referenzmodus aufgezeichnet haben. Der Cursor würde sich also relativ zur aktiven Zelle bewegen. Wenn Sie dies beispielsweise tun, wenn Zelle K3 ausgewählt ist, wird der Text Excel ist Zelle K4 eingegeben und am Ende Zelle K5 ausgewählt.

Hier ist der Code, der im Backend aufgezeichnet wird (Codefenster des VB-Editor-Moduls):

Sub EnterTextRelRef() ' ' EnterTextRelRef Macro ' ' ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "Excel" ActiveCell.Offset(1, 0).Range("A1"). Wählen Sie End Sub

Beachten Sie, dass sich dieser gesamte Code nirgendwo auf die Zellen K3 oder K4 bezieht. Stattdessen verwendet es Activecell, um auf die ausgewählte Zelle zu verweisen, und Offset, um sich relativ zur aktiven Zelle zu bewegen.

Machen Sie sich keine Sorgen um den Bereich Range ("A1"), den der Code hat. Es ist einer dieser unnötigen Codes, die der Makrorekorder hinzufügt, der keinen Zweck erfüllt und entfernt werden kann. Der Code würde auch ohne funktionieren.

Die Schaltfläche „Use Relative Reference“ auf der Registerkarte „Entwickler“ ist eine Umschaltfläche. Sie können es deaktivieren (und zurück zur absoluten Referenz wechseln), indem Sie darauf klicken.

Was ein Makrorekorder nicht kann

Der Makrorekorder ist großartig, um Ihnen in Excel zu folgen und Ihre genauen Schritte aufzuzeichnen, aber er kann fehlschlagen, wenn Sie mehr tun müssen.

  • Sie können keinen Code ausführen, ohne das Objekt auszuwählen. Wenn Sie möchten, dass der Makrorekorder zum nächsten Arbeitsblatt wechselt und alle gefüllten Zellen in Spalte A hervorhebt, ohne das aktuelle Arbeitsblatt zu verlassen, ist dies nicht möglich. Das liegt daran, dass selbst Sie das nicht tun können, wenn ich Sie darum bitte (ohne das aktuelle Blatt zu verlassen). Und wenn Sie es nicht selbst tun können, wie wird der Makrorekorder Ihre Aktionen aufzeichnen? In solchen Fällen müssen Sie den Code manuell erstellen/bearbeiten.
  • Sie können mit einem Makrorekorder keine benutzerdefinierte Funktion erstellen. Mit VBA können Sie benutzerdefinierte Funktionen erstellen, die Sie im Arbeitsblatt als reguläre Funktionen verwenden können. Sie können dies erstellen, indem Sie den Code manuell schreiben.
  • Sie können keine Codes basierend auf Ereignissen ausführen: In VBA können Sie viele Ereignisse verwenden - z. B. das Öffnen einer Arbeitsmappe, das Hinzufügen eines Arbeitsblatts, das Doppelklicken auf eine Zelle usw., um einen mit diesem Ereignis verknüpften Code auszuführen. Dazu können Sie einen Makrorekorder verwenden.
  • Sie können mit einem Makrorekorder keine Loops erstellen. Wenn Sie den Code manuell eingeben, können Sie die Leistungsfähigkeit von Schleifen in VBA nutzen (z. B. For Next, For Each Next, Do While, Do until). Dies ist jedoch nicht möglich, wenn Sie ein Makro aufzeichnen.
  • Sie können Bedingungen nicht analysieren: Sie können mit dem Makro-Recorder nach Bedingungen im Code suchen. Wenn Sie einen VBA-Code manuell schreiben, können Sie die IF Then Else-Anweisungen verwenden, um eine Bedingung zu analysieren und einen Code auszuführen, wenn er wahr ist (oder einen anderen Code, wenn er falsch ist).
  • Sie können keine Argumente in einer Makroprozedur übergeben: Wenn Sie ein Makro aufzeichnen, enthält es keine Argumente. Eine Subroutine kann Eingabeargumente annehmen, die innerhalb des Makros verwendet werden können, um eine Aufgabe auszuführen. Während der Aufzeichnung eines Makros ist dies nicht möglich, da die aufgezeichneten Makros unabhängig sind und nicht mit anderen bestehenden Makros verbunden sind.

Makrofähige Dateierweiterungen

Wenn Sie ein Makro aufzeichnen oder manuell VBA-Code in Excel schreiben, müssen Sie die Datei mit einer makroaktivierten Dateierweiterung (.xlsm) speichern.

Vor Excel 2007 gab es ein einziges Dateiformat, das ausreichte - .xls.

Aber ab 2007 wurde .xlsx als Standard-Dateierweiterung eingeführt. Die Dateien, die als .xlsx gespeichert werden, können kein Makro enthalten. Wenn Sie also eine Datei mit der Erweiterung .xlsx haben und ein Makro aufzeichnen/schreiben und speichern, werden Sie gewarnt, es im makroaktivierten Format zu speichern, und zeigt Ihnen einen Dialog an (wie unten gezeigt):

Wenn Sie Nein auswählen, ermöglicht Excel das Speichern in einem makroaktivierten Format. Wenn Sie jedoch auf Ja klicken, entfernt Excel automatisch den gesamten Code aus Ihrer Arbeitsmappe und speichert ihn als XLSX-Arbeitsmappe.

Wenn Sie also ein Makro in Ihrer Arbeitsmappe haben, müssen Sie es im XLSM-Format speichern, um dieses Makro beizubehalten.

Verschiedene Möglichkeiten zum Ausführen eines Makros in Excel

Bisher haben wir nur eine Möglichkeit gesehen, ein Makro in Excel auszuführen - die Verwendung des Dialogfelds Makro.

Es gibt jedoch eine Reihe von Möglichkeiten, Makros auszuführen.

  1. Ausführen eines Makros über das Menüband (Registerkarte Entwickler)
  2. Verwenden einer Tastenkombination (die Sie zuweisen müssen)
  3. Weisen Sie das Makro einer Form zu
  4. Weisen Sie das Makro einer Schaltfläche zu
  5. Führen Sie ein Makro aus dem VB-Editor aus

Fazit - Ein Makro aufzeichnen, wenn es feststeckt

Ich habe bereits erwähnt, dass ein Makrorekorder ein nützliches Werkzeug für alle ist, die mit VBA in Excel arbeiten.

Wenn Sie den Makrorekorder einige Male verwenden, werden Sie feststellen, dass er viel unnötigen Code ausspuckt. Es ist jedoch immer noch nützlich und gibt Ihnen einige Ideen, wo Sie anfangen sollen. Wenn ich Sie beispielsweise bitte, eine Zellenspalte mit VBA zu filtern, und Sie keine Ahnung haben, wie die Syntax lautet, können Sie schnell ein Makro aufzeichnen und den Code auschecken.

Ein Makro-Recorder ist ein unverzichtbares Werkzeug und selbst nach jahrelanger Erfahrung in der VBA-Codierung greife ich oft zum Makro-Recorder, um Hilfe zu erhalten.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave