VBA ermöglicht die Aufzeichnung von Tätigkeiten in Excel und deren Weiterverwendung. Das Aufzeichnen erzeugt syntaktisch korrekten VBA-Code und diese Aufzeichnungen kann man sehr gut zum Lernen verwenden. Das Aufzeichnen von Makros beginnt mit dem Befehl Extras | Makros | Makro aufzeichnen. Dann erscheint ein Dialogfenster, in das man einige Angaben eintragen kann:
Bis zum Stop der Aufzeichnung wird nun alles "mitgeschrieben", was Sie in Excel tun. In der folgenden Aufzeichnung finden Sie einige neue Excel-Befehle in VBA.
Beispiel 4-1. Aufzeichnen von Excel-Befehlen
Sub Aufzeichnung_von_Funktionen() ' ' [hier stehen normalerweise einige Kommentare zum Makro] ' ' ' (1) Markiere die Zelle J20 ' (2) Bilde in der Zelle J20 die Summe von B20 bis H20 ' ' (Die Auswahl beginnt acht Spalten vor der ' aktuellen Spalte und endet zwei Spalten vor ' der aktuellen Spalte). C bedeutet Spalten (columns) ' und R bedeutet Zeilen (rows). Wie man sieht, bleibt ' die Zeile in dieser Formel konstant. Range("J20").Select ActiveCell.FormulaR1C1 = "=SUM(RC[-8]:RC[-2])" ' (3) Markiere die Zelle J22 ' (4) Bilde in der Zelle J22 den MIttelwert von B20 bis H20 Range("J22").Select ActiveCell.FormulaR1C1 = "=AVERAGE(R[-2]C[-8]:R[-2]C[-2])" ' (5/6) Markiere die Zelle K20 und trage das Wort "(Summe)" ein. ' (7/8) Markiere die Zelle K22 und trage das Wort "(Mittelwert)" ein. Range("K20").Select ActiveCell.FormulaR1C1 = "(Summe)" Range("K22").Select ActiveCell.FormulaR1C1 = "(Mittelwert)" ' (9/10) Markiere den Bereich J20:J22 und setze es fettgedruckt. Range("J20:J22").Select Selection.Font.Bold = True End Sub
Die Vorgehensweise bei der Nutzung unbekannter Funktionen kann also folgendermaßen beschrieben werden:
Aufzeichnen der Excel-Arbeitsschritte
Speichern des Makros
Aufruf des VBA-Editors
Öffnen des letzten angefügten Moduls
Bereinigen und Auswerten des Quelltextes
Kopieren der wichtigen Teile des Quelltextes in eigene Programme
Damit lernt man relativ schnell, Funktionen für die eigene Anwendung zu nutzen. Der Recorder zeichnet allerdings auch bestimmte Befehle auf, die man nicht benötigt. So wird zum Beispiel jede Bewegung in der Tabelle mit aufgezeichnet. Meist ist die erste Arbeit deshalb das "Bereinigen" des Makros. Man stellt aber relativ schnell fest, welche Teile der Aufzeichnung relevant sind.