Wie zeichne ich ein makro in excel auf?
WICHTIGSTE PUNKTE
- Beim Aufzeichnen eines Makros werden die Aktionen aufgezeichnet, die Sie in Excel ausführen.
- Zum Aufzeichnen eines Makros müssen Sie den Makrorekorder verwenden.
- Der Makrorecorder generiert den Code im Hintergrund, während Sie die Aktivität ausführen.
- In Excel können Sie die Aufzeichnung eines Makros nicht anhalten.
- Der Makrorecorder erstellt keinen perfekten Code. Bereinigen Sie Ihren Code daher unbedingt nach der Aufzeichnung.
Dieser Leitfaden hilft Ihnen dabei, alle Aspekte der Aufzeichnung eines Makros zu erlernen. Außerdem erfahren Sie, wie Sie den Code nach dem Speichern bereinigen.
Also lasst uns anfangen.
Was ist ein Makrorecorder?
Excel Macro Recorder ist ein Tool, das (nicht alle) von Ihnen in Excel ausgeführten Aktionen aufzeichnen und Code dafür generieren kann. Wenn Sie eine bestimmte Aufgabe einmal ausführen, wird ein Makro dafür generiert. Beim nächsten Mal müssen Sie diesen Code ausführen, anstatt diese Aufgabe manuell auszuführen.
Stellen Sie sich eine Videokamera vor, sie funktioniert genauso und generiert Code für die Aktivität, die Sie ausführen.
Sie sollten sich darüber im Klaren sein, dass es Zeiten geben kann, in denen ein Makrorecorder keinen Code bereitstellen kann. Es ist jedoch immer noch eine gute Möglichkeit, den Code zu lernen, wenn Sie ihn nicht kennen.
Sie finden die Schaltfläche „Makrorekorder“ auf der Registerkarte „Entwickler“ .
Die Verwendung von VBA zum Programmieren in Excel gehört zu den fortgeschrittenen Fähigkeiten in Excel. Um mit VBA beginnen zu können, müssen Sie sich mit der Aufzeichnung von Makros auskennen.
Planen Sie vor der Aufnahme eines Makros
Wenn Sie ein Video aufnehmen möchten, müssen Sie vorher ein wenig planen, z. B. ein Skript erstellen, die richtige Beleuchtung einrichten usw.
Ebenso erfordert die Aufzeichnung eines Makros etwas Planung.
Der Punkt ist, dass Sie keinen Code für die Aktivität erhalten möchten, die Sie nicht ausführen möchten, während Sie das aufgezeichnete Makro erneut verwenden.
Der beste Weg, dies zu tun, besteht darin, die Schritte aufzuschreiben, die Sie ausführen müssen, und sich dann bei der Aufzeichnung daran zu halten.
Hier zeichnen wir ein Makro auf, das die folgende Formatierung auf die ausgewählte Zelle anwenden kann:
- Schriftfarbe: rot
- Schriftgröße: 12
- Schriftstil: Verdena
- Schrifttext: Fett
Wie gesagt, Planung ist unerlässlich, und bevor wir dieses Makro aufzeichnen, müssen wir uns um eines kümmern, nämlich die Zielzelle auszuwählen, bevor wir mit der Aufzeichnung beginnen.
Wie gesagt, Planung ist unerlässlich, und bevor wir dieses Makro aufzeichnen, müssen wir uns um eines kümmern, nämlich die Zielzelle auszuwählen, bevor wir mit der Aufzeichnung beginnen.
Der Grund dafür ist, dass, wenn wir beim Aufzeichnen des Makros eine Zelle auswählen, diese Auswahl auch gespeichert wird.
Wenn Sie dieses Makro also erneut ausführen, wird diese bestimmte Zelle ausgewählt, um die gesamte Formatierung darauf anzuwenden. Was wir aber wollen, ist, die Formatierung auf die aktive (ausgewählte) Zelle anzuwenden.
Schritte zum Aufzeichnen eines Makros mit dem Makrorekorder
Um ein MAKRO in Excel zu SPEICHERN, können Sie die folgenden Schritte ausführen:
- Wählen Sie zunächst Zelle A4 aus (dies ist die Zelle, in der wir die Formatierung anwenden und unser Makro aufzeichnen).
- Gehen Sie danach zur Registerkarte „Entwickler“ und aktivieren Sie die relative Referenz, bevor Sie auf die Schaltfläche „SPEICHERN“ klicken (wir werden in ein paar Minuten mehr darüber erfahren).
- Drücken Sie die Aufnahmetaste.
- Und sobald Sie darauf klicken, wird ein Dialogfeld angezeigt, in dem Sie einige Details zu dem Makro eingeben können, das Sie aufzeichnen möchten (ja, wir müssen es ausfüllen).
- Makroname: „HighlightCell“.
- Hotkey: Drücken Sie Umschalt+H, um die Tastenkombination Strg+Umschalt+H festzulegen.
- Makro speichern in: Wählen Sie „Persönlicher Makroordner“.
- Beschreibung: Dieses Makro wendet eine rote Farbe, Schriftgröße 12, Verdana-Schriftstil an und macht die Schriftart fett.
- Klicken Sie abschließend auf OK.
- An diesem Punkt startet Excel, um alles zu speichern (Sie können das Symbol in der Statusleiste sehen, das besagt: „Ein Makro wird aufgezeichnet, klicken Sie, um die Aufzeichnung zu stoppen“).
- Wenden Sie nun die vier Formatierungen an, für die wir uns entschieden haben.
- Schriftfarbe: rot
- Schriftgröße: 12
- Schriftstil: Verdena
- Schrifttext: Fett
- Sobald Sie das getan haben, gehen Sie zurück zur Registerkarte „Entwickler“ und klicken Sie auf „Aufnahme beenden“. Sie können die Aufnahme auch über die Statusleiste stoppen, in der „Klicken Sie hier, um die Aufnahme zu beenden“ steht. Anmeldung“.
Glückwunsch! Sie haben es geschafft und an diesem Punkt haben Sie ein Makro in Ihrer Arbeitsmappe gespeichert, aber jetzt müssen Sie es verstehen.
Wie Macro Recorder Code generiert
Der Makrorecorder generiert im Hintergrund einen Code für Sie, während Sie die Aktivitäten ausführen.
Um dies zu verstehen, müssen Sie zunächst den Code sehen. Öffnen Sie dazu den Visual Basic-Editor und gehen Sie zur Registerkarte „Entwickler“ ➜ Visual Basic-Editor.
Und öffnen Sie dann Modul1, in dem Sie Ihren Code gespeichert haben.
Im Codefenster sehen Sie den gesamten vom Makrorecorder generierten Code sowie alle von Ihnen eingegebenen Details.
Wie Sie sehen, stehen der Makroname, die Tastenkombination und die Beschreibung vor dem Code.
Lassen Sie uns nun den Code verstehen (wie ich bereits sagte, erstellt der Makrorecorder keinen perfekten Code, Sie müssen ihn also jedes Mal bereinigen, und das erfahren wir im nächsten Teil).
Sie haben alle vier Aktivitäten abgeschlossen und der Makrorecorder hat den vierteiligen Code generiert.
- Im ersten Teil sagt der Code, dass die Schriftfarbe der ausgewählten Zelle rot sein soll, und verwendet dafür einen numerischen Wert.
- Der zweite Teil des Codes gibt an, dass die Schriftgröße der ausgewählten Zellen „12“ sein sollte.
- Und im dritten Teil heißt es, dass der Schriftstil „Verdana“ sein soll.
- Im vierten Teil heißt es schließlich, dass die Schriftart der ausgewählten Zelle fett sein soll.
Sauber aufgezeichnetes Makro
Zu diesem Zeitpunkt haben Sie Ihr erstes Makro aufgezeichnet und wissen, wie dieser Code generiert wird. Sie müssen jedoch den Code im Modul bereinigen.
Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 .TintAndShade = 0 End With With Selection.Font .Name = "Calibri" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNo .Color = -16776961 .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With With Selection.Font .Name = "Verdana" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .Color = -16776961 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With Selection.Font.Bold = True End Sub
Wenn man genau hinschaut, ist das viel länger als die Aktivitäten, die er ausführen kann. In diesem Code sind viele Eigenschaften enthalten, die nicht erforderlich sind.
Nicht nur bei diesem Code müssen Sie jedes Mal, wenn Sie ein Makro aufzeichnen, es jedes Mal bereinigen.
Bevor Sie jedoch mit der Bereinigung dieses Codes beginnen, müssen Sie sich an die vier durchgeführten Aktivitäten erinnern, für die Sie Code in Ihrem Modul benötigen:
- Schriftfarbe: rot
- Schriftgröße: 12
- Schriftstil: Verdena
- Schrifttext: Fett
Lassen Sie uns die Codezeilen identifizieren, die diese vier Aktivitäten ausführen.
Jetzt haben Sie die Codezeilen identifiziert, die die von Ihnen tatsächlich durchgeführten Aktivitäten ausführen, und wir haben auch diesen vierteiligen Code.
Es ist Zeit, den Code zu bereinigen und alle unerwünschten Zeilen zu entfernen. Folgen Sie den unteren Schritten.
- Im ERSTEN Teil benötigen Sie den Zeilencode, der die Schriftfarbe ROT anwendet, sodass die Eigenschaft „TintAndShade“ ihn nicht benötigt.
- Jetzt benötigen wir im ZWEITEN Teil die Schriftgröße, nicht alle anderen Eigenschaften, also entfernen Sie sie.
- Danach benötigen wir im DRITTEN Teil die Eigenschaft „Schriftartname“, also entfernen Sie alle anderen Eigenschaften.
- In Teil VIER haben Sie nur eine Codezeile, um die Schriftart fett zu machen.
Zu diesem Zeitpunkt sieht der Code so aus, was viel niedriger ist als der vom Makrorecorder generierte Code.
Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 End With With Selection.Font .Size = 12 End With With Selection.Font .Name = "Verdana" End With Selection.Font.Bold = True End Sub
Aber Sie können noch mehr tun.
Wenn Sie sich den Code genau ansehen, wird „With Selection.Font“ viermal verwendet. Da Sie sich jedoch für alle vier Eigenschaften auf dasselbe Objekt beziehen, können Sie es nur einmal verwenden.
Der endgültige Code lautet also:
Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 .Name = "Verdana" .Size = 12 .Bold = True End With End Sub
Wenn Sie diesen Code ausführen, werden dieselben Aktivitäten ausgeführt, die Sie aufgezeichnet haben.
Was haben Sie getan?
Im neuen Code verfügen Sie nur über Codezeilen, die die von Ihnen benötigten Aktivitäten ausführen.
Hier gilt es zu verstehen, dass es zu jedem Objekt immer Eigenschaften gibt, und wenn der Makrorecorder aufzeichnet, fügt er alle diese Eigenschaften zu diesem Objekt hinzu, auch wenn Sie sie nicht verwenden.
Aus diesem Grund müssen Sie alle diese Eigenschaften aus dem Code entfernen.
Und die andere Sache ist, dass selbst wenn Sie nur ein Objekt in Ihrem Code verwenden, der Makrorecorder immer wieder darauf verweist, wenn Sie verschiedene Aktivitäten ausführen. Aus diesem Grund haben Sie einmal „Mit Auswahl. Schriftart“ verwendet und alle Eigenschaften darunter hinzugefügt .
In allen Situationen müssen Sie zum Bereinigen des vom Makrorecorder generierten Codes die tatsächlichen Codezeilen identifizieren, die die von Ihnen benötigten Aktivitäten ausführen, und den Rest entfernen.
Wenn Sie gespeicherten Makrocode bereinigen, ist es am besten, den Code Schritt für Schritt zu debuggen.
Lies es
- Öffnen Sie den VBA-Editor und das Excel-Fenster nebeneinander und drücken Sie dann F8, um den Code Schritt für Schritt auszuführen.
- Da Sie das Excel-Fenster seitlich geöffnet haben, können Sie sehen, welche Codezeile die Aktivität ausführt.
- Und sobald Sie den benötigten Code identifiziert haben, können Sie den Code löschen, was nicht notwendig ist.
Benennen Sie ein Makro
Jedes Mal, wenn Sie ein Makro aufzeichnen, ist es notwendig, diesem Makro einen Namen zu geben, aber es gibt ein paar Regeln, denen ein Name entsprechen muss:
- Der Name eines Makros kann bis zu 80 Zeichen lang sein.
- Sie können keine Leerzeichen, Satzzeichen oder Sonderzeichen verwenden.
- Es muss mit einem Buchstaben beginnen.
Abgesehen von diesen Regeln gibt es einige Wörter, deren Verwendung als Namen laut VBA verboten ist.
Andererseits ist es wichtig, einen aussagekräftigen Namen zu verwenden, anstatt Standardnamen wie Makro1 oder Test1 zu verwenden.
Da Sie in einem Makronamen keine Leerzeichen verwenden können, können Sie zur Verbesserung der Lesbarkeit einen Unterstrich verwenden oder den ersten Buchstaben jedes Worts groß schreiben.
Speichern des aufgezeichneten Makros
Bevor Sie ein Makro aufzeichnen, müssen Sie angeben, wo Sie es speichern möchten. Dazu haben Sie drei Möglichkeiten:
- Neue Arbeitsmappe : Sie können diese Option auswählen, wenn Sie Ihr Makro in einer neuen Arbeitsmappe speichern möchten.
- Diese Arbeitsmappe : Durch Auswahl dieser Option können Sie das Makro in der aktuellen Arbeitsmappe speichern.
- Persönliche Makro-Arbeitsmappe : Mit dieser Option können Sie auf Makros aus allen Arbeitsmappen zugreifen.
Relativer Bezug
Beim Aufzeichnen des Makros oben habe ich Ihnen gesagt, dass Sie „Relative Referenzen verwenden“ auswählen sollen, bevor Sie auf die Schaltfläche „Aufzeichnung starten“ klicken.
Wenn Sie in Excel ein Makro aufzeichnen, verwendet Excel standardmäßig „Absolute Referenz“. Sie können es jedoch ändern, bevor Sie ein Makro aufzeichnen.
Der Punkt ist, dass die Verwendung relativer Referenzen von entscheidender Bedeutung ist, wenn Sie möchten, dass ein Makro die aufgezeichnete Aktivität an einer beliebigen Stelle im Arbeitsblatt ausführt.
Damit Sie den Unterschied zwischen den beiden Referenzmodi verstehen, möchte ich, dass Sie die Aktivität auf zwei verschiedene Arten aufzeichnen.
- Wählen Sie zunächst Zelle A1 aus und beginnen Sie mit der Aufzeichnung eines Makros (ohne „Relative Referenz verwenden“ zu aktivieren). Wählen Sie dann Zelle E5 aus .
- Sie erhalten den folgenden Code per Makro-Recorder:
Sub AbsoluteReferenceMacro() Range("E5").Select End Sub
- Wählen Sie erneut Zelle A1 aus, aktivieren Sie „Relative Referenz verwenden“ und zeichnen Sie dieselbe Aktivität auf (wählen Sie Zelle E5 aus).
- Aber im Moment ist der Code, den Sie erhalten haben, ein anderer:
Sub RelativeReferenceMacro() ActiveCell.Offset(4, 4).Range(“A1”).Select End Sub
Sie haben diese beiden Codes aufgezeichnet, indem Sie dieselbe Aktivität ausgeführt haben, aber unterschiedliche Referenzmodi verwendet haben. RECHTS?
Der erste Makrocode ist recht einfach zu verstehen; Es heißt, Zelle E5 auszuwählen.
Und wenn Sie dieses Makro ausführen, bewirkt es dasselbe, nämlich die Auswahl der Zelle E5, unabhängig davon, welche Zelle Sie an dieser Stelle ausgewählt haben.
Andererseits sagt der zweite Makrocode etwas anderes aus, und wenn Sie eine andere Zelle auswählen, bevor Sie diesen Code ausführen, wird eine andere Zelle ausgewählt.
Wofür?
Als Sie dieses Makro aufgezeichnet haben, war die aktive Zelle A1, dann haben Sie E5 ausgewählt, was vier Zellen tiefer und vier Zellen rechts von Zelle A1 liegt.
Da Sie dieses Makro nun mit einem relativen Verweis gespeichert haben, wird dadurch immer die Zelle ausgewählt, die sich vier Zellen tiefer und vier Zellen rechts von der aktiven Zelle befindet.
Nehmen wir an, wenn die aktive Zelle D4 ist, wird Zelle H8 ausgewählt, die vier Zellen weiter unten und vier Zellen rechts liegt.
Sie können die Referenz jederzeit ändern, auch während der Aufnahme.
Makropause
Leider ist es in Excel nicht möglich, ein Makro während der Aufzeichnung anzuhalten. Dies ist in Microsoft Word möglich, in Excel jedoch nicht.
Wenn Sie ein Makro aufzeichnen, bei dem Sie viele Aktivitäten ausführen müssen, ist es am besten, es in Teilen aufzuzeichnen, damit die Fehlerwahrscheinlichkeit geringer ist.
Einschränkungen des Makrorekorders
Ja, der Makrorecorder bringt einige Einschränkungen mit sich. Mit VBA-Code können Sie viele Dinge tun, der Makrorecorder kann jedoch nicht alle Aktivitäten aufzeichnen.
- Es kann keine benutzerdefinierte Funktion erstellt werden : Mit VBA können Sie eine benutzerdefinierte Funktion erstellen, die Sie im Arbeitsblatt verwenden können. Dies ist jedoch beim Aufzeichnen eines Makros nicht möglich.
- Integrierte Funktionen können nicht verwendet werden : VBA hat seine Funktionen ( VBA-Funktionen ), aber Sie können sie nicht mit dem Makrorecorder verwenden.
- Bedingungen können nicht getestet werden : Beim Aufzeichnen eines Makros können Sie die VBA-Anweisung IF Then Else nicht zum Überprüfen von Bedingungen verwenden.
- Schleife nicht möglich : In VBA können Sie beim Schreiben von Code Schleifenanweisungen verwenden, mit dem Makrorecorder ist dies jedoch nicht möglich.
- Aktivität mit Objekt kann nicht ausgeführt werden : Beim Aufzeichnen eines Makros können Sie keine Aktion ausführen, ohne tatsächlich ein Objekt auszuwählen. Wenn Sie beispielsweise Text aus einer bestimmten Zelle fett formatieren möchten, müssen Sie zuerst diese Zelle auswählen.
Lohnt es sich, einen Makrorecorder zu verwenden?
Ich wette, Sie haben diese Frage im Kopf, und sie ist berechtigt. Lassen Sie mich eine persönliche Geschichte mit Ihnen teilen, um diese Frage zu beantworten.
Vor ein paar Jahren habe ich an einem VBA-Code gearbeitet, um eine Pivot-Tabelle einzufügen , und zu diesem Zeitpunkt wusste ich nicht alle Objekte, die ich zum Schreiben dieses Codes verwenden musste. Also habe ich ein Makro aufgezeichnet, während ich manuell eine Pivot-Tabelle erstellt habe.
Als nächstes habe ich mir diesen Code angesehen, um den gesamten Prozess beim Einfügen einer Pivot-Tabelle zu verstehen. Ja, dieser Code war nicht perfekt, aber er brachte mich auf die Idee, ihn zu schreiben.
Damit meine ich, dass es Situationen geben kann, in denen Sie den Code schreiben müssen, und der Makrorecorder kann Ihnen dabei helfen. Der Makrorecorder hat mir auch beim Schreiben von Codes für diese Inventarvorlage geholfen.
Wickeln
Um ein Makro erfolgreich aufzuzeichnen, sollten Sie sich auf folgende Punkte konzentrieren:
- Definieren Sie die Arbeitsmappe, in der Sie das Makro speichern und alle anderen Arbeitsmappen schließen.
- Stellen Sie sicher, dass Sie das richtige Objekt zum Aufzeichnen des Makros auswählen.
- Entscheiden Sie unbedingt, ob Sie absolute oder relative Referenzen verwenden möchten, bevor Sie das Makro speichern.
- Planen Sie die Maßnahmen, die Sie ergreifen möchten.
Verwandte Tutorials
Häufig gestellte Fragen
Es befindet sich in der Codegruppe auf der Registerkarte „Entwickler“.
Sie können es im Visual Basic-Editor sehen.
Nicht wirklich, Sie müssen diesen Code nach dem Speichern bereinigen.