Anleitung
zum
Aufzeichnen
einer immer wiederkehrenden Aktion mittels des Makrorecorders
Um
eine immer wiederkehrende Aktion nicht ständig mit der Hand
ausführen zu müssen, kann man diese Aktion auch als Makro
erstellen. Eine Möglichkeit ein Makro zu erstellen ist, die
Aktionen mit dem Makrorecorder aufzuzeichnen. Das geht ganz
einfach und wird nachfolgend Schritt für Schritt erklärt.
Ich möchte aber auch nicht verschweigen, dass es sich bei dem
aufgezeichneten Code um einen sehr unsauberen Code handelt, da
dort alles was mit der Maus oder Tastatur bedient oder markiert,
auch aufgezeichnet wird. Bei längeren Makros kann man damit sehr
schnell an die Leistungsgrenzen des PC stoßen, da diese ganzen
aufgezeichneten unnötigen Aktionen, wie z.B. markieren usw., die
Ressourcen quasi auffressen. Aus dem Grunde zeige ich dann in
dieser Anleitung, wie man das aufgezeichnete Beispielmakro auch
anders schreiben kann. Nun aber los.
|
Diese Anleitung wird anhand eines
Beispieles durchgeführt. Begleitend dazu
kann eine
Beispieldatei
herunter geladen werden, in der die
Makros schon eingearbeitet
wurden.
|
|
|
1. In diesem Beispiel soll der
Bereich A1:C10 aus dem
Tabellenblatt Quelle
kopiert und in das Tabellenblatt
Ziel in Zelle A1
eingefügt werden. Um die dafür
erforderlich Aktion aufzuzeichnen muss
man nacheinander die Menüleisteneinträge
Extras => Makro => Aufzeichnen...
auswählen.
2. Klicken Sie in Ihrer Exceldatei,
sofern es sich um Excel 2000 - 2003
handelt, in
der Menüleiste nacheinander auf
Extras => Makro => Visual Basic Editor.
Ab Excel 2010 müssen Sie zuerst die
Möglichkeiten schaffen, an die Makroeinstellungen heranzukommen. Dazu
Klicken Sie auf die Office-Schaltfläche
oben links.
In dem geöffneten Menü
klicken Sie am unteren Ende des Menüs
auf die Schaltfläche "Excel Optionen".
Danach klicken Sie auf der linken Seite
auf den Eintrag "Häufig verwendet" und
auf der rechten Seite aktivieren Sie
dann den Eintrag "Entwicklungskarte
in der Multifunktionsleiste anzeigen",
so dass ein Haken vor dem Eintrag
erscheint. Schließen Sie danach das
Fenster mit einem Klick auf "OK".
In der Multifunktionsleiste finden Sie
nun den Eintrag "Entwicklertools".
Wenn Sie auf den Menüeintrag "Entwicklertools"
klicken sehen Sie die Funktionen, die
zur Verfügung stehen. Durch Klicken auf
den Button "Makro aufzeichnen",
startet der Makrorekorder. |
|
|
2. Nach dieser Auswahl öffnet sich ein
Fenster, in dem man dem Makro einen
Namen geben kann. Auch hat man hier die
Möglichkeit dem Makro eine
Tastenkombination zu zu ordnen mit der
man später das Makro auch ohne eine
Schaltfläche, sondern mit dieser
Tastenkombination starten kann. In
unserem Beispiel erhält das Makro den
Namen Beispielmakro und
erhält die Tastenkombination STRG
b. |
|
|
3.
Danach
beginnt die eigentliche
Makroaufzeichnung. Es sollte eine neue
Symbolleiste in dem Tabellenblatt
eingeblendet werden, die eine
Schaltfläche zum Stoppen enthalten
sollte. Sollte das nicht der Fall sein,
keine Panik. Gehen Sie einfach mal in
der Menüleiste auf die Einträge
Ansicht => Symbolleiste => Aufzeichnung
beenden und siehe da, da ist
sie. Alternativ kann man die
Aufzeichnung aber auch über die gleiche
Auswahl wie unter dem Schritt 1
beschrieben, dann aber nicht
Aufzeichnen, sondern Aufzeichnung
beenden auswählen, beenden.
Tipp:
Vorweg möchte ich aber noch den Rat
geben, die aufzuzeichnenden Aktionen
zunächst einmal trocken ohne die
Aufzeichnung durch zu spielen. Das hat
den Grund, das wie ja auch schon weiter
oben angesprochen, wirklich jede Aktion
mit der Maus oder Tastatur aufgezeichnet
wird. So z.B. auch das Hoch- bzw.
Runterscrollen oder das Links- bzw.
Rechtsscrollen in dem Tabellenblatt. Sie
werden sich jetzt sicherlich Fragen, wie
man denn sonst weiter unten stehende
Zellen ansprechen kann ohne dabei Hin-
oder Herzuscrollen? Also müssen sie doch
scrollen. Nein, das muss man nicht, aber
wenn Sie das bei der Makroaufzeichnung
machen, wird das mit aufgezeichnet, auch
wenn man es nicht benötigt. Und das
meinte ich eben mit unsauberen VBA Code.
Aber nun genug damit, wir machen jetzt
mal weiter mit dem, um was es hier geht,
der Makroauszeichnung.
Also, die Aufzeichnung ist gestartet.
Nun markieren wir mit der Maus den
Bereich, der kopiert werden soll. In
unsrem Beispiel war das in Tabellenblatt
Quelle A1:C10 und klicken
dann mit der rechten Maustaste
in den markierten Bereich
und wählen in dem aufgeklappten Menü den
Eintrag Kopieren aus.
Alternativ kann auch die
Tastenkombination Strg C
zum Kopieren ausgeführt werden.
|
|
|
4. Danach wechseln wir in das
Tabellenblatt Ziel und
klicken dort mit der rechten
Maustaste in die Zelle A1.
In dem dann wieder aufgeklappten Menü
wird der Eintrag Einfügen
ausgewählt. Alternativ kann hier auch
die Tastenkombination Strg v
zum Einfügen ausgeführt werden. Es
sollte nun der gesamte Text, der vorher
kopiert wurde, angezeigt werden.
Um die
Aufzeichnung zu beenden klicken Sie auf
die Stoppschaltfläche in
der Symbolleiste. Alternativ kann aber
auch die Auswahl wie unter Schritt 1
beschrieben, dann aber nicht
Aufzeichnen, sondern Aufzeichnung
beenden auswählen, ausgeführt
werden um die Aufzeichnung zu stoppen.. |
|
|
5.
Um sich nun einmal den VBA Code des
Makros ansehen zu können muss man in die
VBA Umgebung wechseln. Das macht man in
dem wieder nacheinander die
Menüleisteneinträge Extras =>
Makro => Visual Basic - Editor
auswählt. Alternativ gibt es auch
hierfür eine Tastenkombination. Mit der
Kombination Alt F11
gelangt man ebenfalls in den VBA Editor.
Dort sollten man auf der linken Seite
den Eintrag Module suchen und
dort dann doppelt diesen Eintrag
anklicken. Danach doppelt auf den
Eintrag Modul1 klicken und siehe
da, dort steht Ihr erster
aufgezeichneter VBA Code. Sollten Sie
Schwierigkeiten beim Finden Ihres Makros
haben, dann schauen Sie sich bitte die
Anleitung
StandardModul
an.
Dort finden Sie ebenfalls eine
bebilderte Anleitung dazu. Die sollte
Ihnen beim Finden Ihres Makros helfen.
|
|
|
6.So,
da wir das Makro ja eventuell auch noch
über eine Schaltfläche starten möchten,
machen wir dann mal weiter. Sie können
dazu das Makro entweder über eine
Schaltfläche aus der
Symbolleiste Formular oder aus
der Symbolleiste
Steuerelement-Toolbox starten.
Zur Schaltfläche aus der Symbolleiste
Steuerlement-Toolbox besteht ja schon
eine Anleitung, die in den Anleitungen
unter
Befehlsschaltfläche
nachlesen kann. Daher erkläre ich
das hier mal an der Schaltfläche aus der
Symbolleiste Formular.
Zunächst einmal müssen wir, sofern noch
nicht angezeigt, die Symbolleiste
einblenden. Dazu wieder nacheinander die
Menüleisteneinträge Ansicht =>
Symbolleiste => Formular
auswählen. Es erscheint eine neue
Symbolleiste.
In dieser Symbolleiste wählen wir die
4.
Schaltfläche von links (rote Umrandung)
aus und ziehen in dem Tabellenblatt ein
Rechteck in der Größe, die unsere
Schaltfläche erhalten soll, auf. Nachdem
die Schaltfläche gezeichnet wurde,
öffnet sofort ein Fenster. Mit der
Auswahl in diesem Fenster weisen wird
der Schaltfläche ein Makro zu, dass beim
Betätigen der Schaltfläche ausgeführt
werden soll. In unserem Beispiel ist
dieses Fenster fast leer. Daher fällt es
auch leicht den Makronamen Beispielmakro
zu finden, diesen zu markieren und dann
diese Auswahl mit OK abzuschließen.
|
|
|
7. So, nun vergeben wir unserer
Schaltfläche noch einen aussagekräftigen
Text, der auf der Schaltfläche angezeigt
werden soll.
Klicken
Sie mit der rechten Mautaste
auf die Schaltfläche und wählen in dem
Menü den Eintrag Text bearbeiten
aus. Nun können sie der Schaltfläche
einen Text verabreichen. Ich habe mich
für den Text Kopieren
aufgezeichnetes Makro
entschieden.
Und fertig sind wir. Wenn Sie alles so
wie beschrieben durchgeführt haben,
sollte nun beim Betätigen der
Schaltfläche Ihre Daten von
Tabellenblatt Quelle in das
Tabellenblatt Ziel kopiert worden sein. |
|
Aufgezeichneter VBA Code:
Sub Beispielmakro()
'Dieser VBA Code ist, wenn er aufgezeichnet
'wird, sehr unsauber, da jede Bewegung
'oder auch jedes Anwählen einer Zelle
'in dem Tabellenblatt mit aufgezeichnet wird.
'Das kann aber sehr schnell zu Ressorcenproblemen
'kommen, wenn solch ein Makro länger wird.
'Alternativ mal weiter unten ein Makro, welches
'genau das gleiche wie das Beispielmakro macht.
Range("A1:C10").Select
Selection.Copy
Sheets("Ziel").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Quelle").Select
End Sub
|
Bearbeiteter VBA Code:
Sub Beispielmakro_bearbeitet()
'Der gleiche Code wie der des Beispielmakros,
'allerdings ohne die ganzen Select Anweisungen.
Range("A1:C10").Copy Sheets("Ziel").Range("A1")
End Sub |
|
Zu Abschluss zeige ich Ihnen noch mal,
wie das gleiche Makro, das wir
aufgezeichnet haben, ganz ohne die
ganzen Select - Anweisungen auch
aussehen könnte. Auf der linken Seite
sehen Sie beide VBA Code im Vergleich dazu.
Und das Makro macht genau das gleiche,
aber ohne viel Rechnerleistung zu
verbrauchen. |
Sie
sollten zum Abschluss noch die
Sicherheitseinstellung, die beim Öffnen
der Datei abgefragt wird, kontrollieren.
Klicken Sie dazu nacheinander in der
Menüleiste wieder auf Extras => Makro
und dann auf Sicherheit.... Gehen
Sie,
falls nicht schon angezeigt, auf die
Registerkarte Sicherheitsstufe und
schauen Sie dort nach, ob die
Einstellung Mittel aktiviert ist.
Wenn nicht, aktivieren Sie diese Einstellung,
da sonst der Code nicht ausgeführt
werden kann. Beim nächsten Öffnen Ihrer
Datei kommt eine Abfrage, ob Makros
aktiviert oder deaktiviert werden
sollen. Klicken Sie auf aktivieren und der
Code wird ausgeführt
|
A |
B |
C |
D |
E |
1 |
|
|
|
|
2 |
|
Diese Anleitung wurde bereits
x
aufgerufen. |
|
3 |
|
|
4 |
|
|
|
|
|
|
|