Makros werden programmiert, um insbesondere wiederkehrende Tätigkeiten automatisch auszuführen. Beispielsweise können Daten direkt von Excel – oder eben durch ein Makro – zu einem Diagramm verarbeitet werden. Auch Formatierungen können so automatisiert werden. Es gibt natürlich noch viele weitere Möglichkeiten mit Makros, aber wir wollen uns hier erstmal auf die Basics fokussieren.
Um zu einem Makro zu gelangen, werden nicht zwingend Programmierkenntnisse in VBA (Visual Basic for Applications) benötigt – man kann die vorzunehmenden Tätigkeiten nämlich mit dem “Makro Recorder“ aufzeichnen. Jeder Schritt, den man in Excel vornimmt, wird direkt aufgenommen und in Code geschrieben.
Eine solche Aufzeichnung kannst Du starten, indem Du im Menüband auf “Ansicht“ und dann ganz rechts auf “Makros“ → “Makro aufzeichnen“ klickst. Eine weitere Möglichkeit besteht, indem Du einen Rechtsklick auf beispielsweise “Ansicht“ im Menüband machst und auf “Menüband anpassen“ klickst. Auf der rechten Seite kannst Du bei “Entwicklertools“ einen Haken setzen, um einen weiteren Menüpunkt anzuzeigen – darin findest Du ebenfalls den Button “Makro aufzeichnen“.
Bevor die Aufzeichnung startet, kann dem Makro noch ein Name gegeben werden. Wichtig zu beachten ist, dass keine Leerzeichen erlaubt sind. Während die Aufzeichnung läuft, kannst Du Formatierungen vornehmen, in Zellen etwas reinschreiben etc. – den Code dazu kannst Du Dir gleich anschauen: Nach der Aufzeichnung (nun heisst der Menüpunkt nicht “Makro aufzeichnen“ sondern “Aufzeichnung beenden“) können die aufgezeichneten Schritte via ALT+F11 eingesehen werden. Mit einem Doppelklick auf “Modul1“ wird der Code ersichtlich:
Es gilt ferner zu beachten, dass in VBA die Sprache Englisch ist. Formeln, Befehle und so weiter sind also nicht auf Deutsch. Bei der Aufzeichnung wird dies jedoch automatisch übersetzt.
Öffnet man nun eine zu bearbeitende Excel-Tabelle (oder löscht man die bei der Aufzeichnung getätigten Änderungen in der Tabelle), kann man aus dem Modul1 via dem Button oberhalb des Codes (oder mit F5 auf der Tastatur) das Makro ausführen. Voilà – Du hast soeben Dein eigenes Programm erstellt!
Wie geht es nun weiter?
Das Aufzeichnen eines Makros ist eine sehr gute Möglichkeit, um Dir die Programmiersprache anzueignen. Du kannst einfache Befehle, die Du kennst, aufzeichnen und dann im Modul den Code interpretieren. Um Dein Programm zu analysieren, eignet sich die Taste F8 – damit führst Du Dein Makro Schritt für Schritt aus und Du kannst genau sehen, was bei jeder Zeile von Code tatsächlich gemacht wird. Die beim Drücken von F8 gelb markierte Codezeile wird als nächstes ausgeführt werden. Es eignet sich hierzu, Deine Exceltabelle auf die eine Bildschirmhälfte (oder auf den einen Bildschirm, falls Du mehrere hast) und VBA auf die andere zu nehmen, denn so kannst Du die Vorgänge gleich live mitverfolgen.
Du hast sicherlich bemerkt, dass vereinzelte Zeilen in Deinem Makro grün sind und mit einem Apostroph (‘) beginnen. Das sind Kommentare und sie werden nicht ausgeführt. Als Entwickler kannst Du so sämtliche Prozeduren umschreiben und erklären, damit sowohl Du als auch andere mögliche Personen die Vorgänge besser verstehen. Programmierer kommentieren häufig vorübergehend einzelne Codeblöcke aus, um diese nicht auszuführen oder daran zu arbeiten. Wenn Du also eine Codezeile vorläufig nicht ausführen möchtest, füge einfach ein Apostroph vorne dran. In der Symbolleiste “Bearbeiten“ gibt es übrigens einen Button, womit Du gleich ganze (zuerst markierte) Codeblöcke auskommentieren kannst. Du findest diese via “Ansicht“ → “Symbolleisten“.
Du hast nun gelernt, wie Du Deinen Code analysieren kannst. Doch was, wenn Du Dein Makro noch um weitere Befehle erweitern möchtest? Gerade am Anfang kennt man sich in der Programmiersprache noch nicht aus. Deshalb empfehle ich, einfach ein neues Makro über die zusätzlichen Schritte aufzuzeichnen. Du wirst den Code wiederum in Deinem VBA-Fenster in dem erstellten Modul finden. Du kannst nun einfach den Code markieren, entweder kopieren oder ausschneiden, und in Deinem Haupt-Makro an der entsprechenden Stelle einfügen. Das “Hilfsmakro“ für den neuen Code kannst Du komplett entfernen, indem Du alles markierst und mit “Delete“ auf Deiner Tastatur löschst. So gelangst Du sehr schnell an Dein Ziel!
Der wohl einfachste Weg, um Dein Makro später wieder auf andere Excel-Tabellen anwenden zu können, ist, das Modul zu exportieren. Mache hierzu einen Rechtsklick auf “Modul1“ und gehe auf “Datei exportieren…“. Speichere das Modul an der gewünschten Stelle ab. Um das Makro zu einem späteren Zeitpunkt wiederzuholen steigst Du via ALT+F11 in das VBA-Fenster und klickst nach einem Rechtsklick auf den Bereich (oder über “Datei“ in der Menüleiste), wo das Modul1 vorhin war, auf “Datei importieren…“. Danach kannst Du Dein Makro ausführen und Deine Datei wird von selbst bearbeitet – toll, oder?!
Was gilt es zusätzlich zu beachten?
Dein Programm macht selbstverständlich nur das, was Du ihm sagst. Code ist sehr präzise, Dein Programm wird also nicht einfach ohne weiteres ein mögliches Szenario interpretieren… So kann es auch zu Fehlern in Deinem Makro kommen und Du musst “Debugging“ betreiben – also einen Fehler beheben. VBA zeigt Dir jeweils an, in welcher Codezeile das Programm beim Ausführen einen “Bug“ hatte. Analysiere diesen Code genau. Wenn Du nicht weiter weisst, kannst Du auf Google nach diesem Problem oder nach dem Schritt suchen, den Du eigentlich hättest ausgeführt haben wollen. Ich empfehle Dir, bei Google stets mit den Begriffen “VBA“ oder “Makro“ zu beginnen – damit grenzt Du Deine Suche gleich ein. Selbstverständlich kannst Du auch auf Excelblog.ch nachfragen! Generell lernst Du durch “Debuggen“ wohl am meisten. Es kann jedoch mühselig sein, aber einen Fehler erfolgreich zu beheben und danach ein sauber laufendes Programm zu haben ist echt ein erfüllendes Gefühl!