Beim Chef glänzen - wir zeigen, wie es geht! Entdecken Sie, wie schnell und einfach Sie in Excel kleine Programme selbst schreiben können und wie Sie damit Arbeitszeit sparen.
Tipp: Keine Lust zu lesen? Dann lernen Sie doch einfach online. Wählen Sie hier einfach einen oder mehrere Online-Kurse und starten Sie kostenlos.

VBA lernen leicht gemacht


Excel ist sehr leistungsfähig, wenn es um das Bearbeiten und die Analyse numerischer Daten geht. Dank Makros und VBA-Programmierung zeigt sich Excel auch beim Wiederholen gleichartiger Aufgaben flexibel. VBA steht für Visual Basic for Applications. Hierbei handelt es sich um eine Programmiersprache, die für jede Office-Anwendung von Microsoft wirksam gemacht werden kann. Makros sind dann geeignet, wenn eine bestimmte Abfolge von Bearbeitungsschritten und Befehlsaufrufen immer wieder in der gleichen Weise verwenden werden soll. VBA geht darüber hinaus, weil variabel abänderbare Eingabemöglichkeiten und flexibel darauf aufbauende Ablaufschritte möglich werden. Allerdings kann man Makros auch als VBA-Code sichtbar machen und durch Eingriffe in den Programmcode so die ersten Schritte in der VBA-Programmierung machen.

Registerkarte Entwicklertools anzeigen

VBA kann man nur dann anwenden, wenn die Entwicklertools im Menü angezeigt werden. Dies geht über die Excel-Optionen und die Aktivierung der Option >Entwicklerregisterkarte in der Multifunktionsleiste anzeigen.

Registerkarte Entwicklertools einschalten

Basisaufbau des Programms erzeugen

Im Folgenden soll erläutert werden, wie man mittels eines einfachen Beispiels in die VBA-Programmierung einsteigen kann. Excel soll auf „Zuruf“ durch den Nutzer die Tabellenbezeichnungen (der Text auf den Registern für die Tabellen unten links) abändern. Wenn ein Text in der Zelle A1 oben links steht, dann soll dies die neue Tabellenbezeichnung werden. Ist die Zelle hingegen leer, dann soll nichts passieren. Die Programmierlogik, die im Folgenden umgesetzt werden soll, sieht wie folgt aus:

Struktur der If-Anweisung in Schleife

Struktur der If-Anweisung in Schleife

Die Programmlogik enthält zwei typische Konzepte, wie sie fast in jedem Programm vorkommen: Schleife und Verzweigung. Irrelevant, wie viele Tabellen vorhanden sind, für jede Tabelle muss eine Prüfung durchlaufen werden. Die Prüfung führt zu einer Verzweigung, die auf dem DANN-Weg eine Veränderung auslöst, während im Falle des SONST-Wegs nichts passieren soll.

Um den grundlegenden Programmaufbau kennenzulernen, genügt es, ein Makro zu erzeugen und anschließend den Programmeditor aufzurufen. Beides ist möglich mit Schaltflächen, die links in der Entwicklerregisterkarte der Multifunktionsleiste angezeigt werden.

BILD 3

Makro aufzeichen

Ein Makro wird über den Menübutton „Makro aufzeichnen“ erzeugt. Nach Bestätigung des Forumulars führt das Makro eine gewünschte Aktion aus. Für das folgende Beispiel wurde „Hallo Welt“ in A1 eingetippt und dann mit „Makro Aufzeichnung beenden“ die Makro-Erstellung beendet. Anschließend kann mit „Visual Basic“ der Programmeditor aufgerufen werden.

Quellcode des Makros im Editor ansehen

Die Programme sind in Modulen abgelegt, die links unter den Tabellen sichtbar gemacht werden können. Rechts sieht man bei angeklicktem Modul den Programmaufbau des ersten Programms. Man erkennt: Das entstandene Programm ist in Zeilen aufgebaut. Jedes VBA-Programm beginnt mit Sub Name_des_Programms() und endet mit End Sub. Falls man Kommentare in Programme aufnehmen will, sind diese durch ein einfaches Hochkomma (‚) einzuleiten. Was hinter dem Hochkomma steht, hat keine Auswirkung auf das Programm. Veränderungen im Programmtext kann man mit den üblichen Methoden der Textbearbeitung vornehmen. Falls man den Programmnamen abändern möchte, dann sollte man die üblichen Buchstaben verwenden und keine Sonderzeichen oder Umlaute. Den Unterstrich kann man hingegen verwenden, um den Namen des Programms besser lesbar zu machen.

Programm ändern und Programmaufruf ermöglichen

Zu Testzwecken soll nun das Programm leicht modifiziert werden. Geändert wird der Text, wie folgt:

Sub Tabellen_Umbennen()

‚ Hier kann beliebiger Text stehen

ActiveCell.FormulaR1C1 = „Heute ist schönes Wetter“
End Sub

Damit man das Programm in der Tabelle direkt aufrufen kann, wird jetzt eine Schaltfläche benötigt, die das Programm aktiviert.

BILD 5

Button für das Makro erstellen

Das Einfügen der Schaltfläche geht einfach über das Excel-Register Einfügen. Dort wählt man eine passende Form (hier ein Rechteck mit abgerundeten Ecken) aus. Nach der Erstellung kann man sofort einen Schaltflächentext eintippen und der Schaltfläche eine neue Farbe zuordnen.

Zu guter Letzt muss das Programm der Schaltfläche zugewiesen werden. Dies erfolgt mit der rechten Maustaste auf dem angeklickten Button; anschließend wählt man den Befehl „Makro zuweisen“ und wählt dann das vorher erstellte Programm aus.

BILD 6

Makro einen Button zuweisen

Das Programm sollte zunächst getestet werden. Dazu wird einfach die Schaltfläche angeklickt. Falls ein Fehler im Programm (beispielsweise ein Tippfehler) vorliegt, wird automatisch von Excel der Debugger angeboten, der dann zum Programmeditor führt, wo die Fehlerstelle angezeigt wird. Wenn das Programm funktioniert, wird in der aktiven Zelle der Tabelle der Text „Heute ist schönes Wetter“ angezeigt.

Programmlogik im Programmeditor umsetzen

Wenden wir uns nun der Programmlogik aus Bild 2 (Struktur der if-Anweisung) zu. Um diese im Programmeditor wirksam zu machen, ist der Code wie im Folgenden abzuändern. Auf die Einrückungen kann selbstverständlich verzichtet werden, sie verdeutlichen an dieser Stelle lediglich, wie die Schleife aufgebaut ist und welche einzelnen Schritte innerhalb der Schleife ausgeführt werden.

Sub Tabellen_Umbennen()
Dim myWorksheet As Worksheet
For Each myWorksheet In Worksheets
If myWorksheet.Range(„a1“).Value <> „“ Then
myWorksheet.Name = myWorksheet.Range(„a1“).Value
End If
Next
End Sub

Die erste und die letzte Zeile klammern das Programm ein. Hinter dem Sub (Abkürzung für „subroutine“ oder Unterprogramm) der ersten Programmzeile steht der Name des Programms. Die abschließenden Klammern müssen verwendet werden, weil jedes Programm Übergabewerte enthalten kann. Klammern ohne Inhalt zeigen dem Programm an, dass keine Übergabewerte vorliegen.

Die zweite Zeile wird genutzt, um eine Programmvariable zu deklarieren. Dim steht für Dimension. VBA wird mitgeteilt, dass mit dem Objekt myWorksheet Veränderungen umgesetzt werden sollen. Dieses Objekt wird mit den Worksheets der Arbeitsmappe identifiziert, welche die Tabellen der aktuellen Arbeitsmappe umfasst.

Die dritte und die vorletzte Zeile stellen eine Klammer für die Schleife dar. Das, was innerhalb von For und Next passiert, soll solange wiederholt werden, bis alle Worksheets bearbeitet sind. Für jede Tabelle wird weiterhin in der Verzweigung (Einklammerung von If bis End If) geprüft, ob die Zelle A1 des Worksheets einen Inhalt hat. Dazu wird der Inhalt von A1 mit dem leeren Text „“ verglichen. Die Zeile hinter Then wird also nur erreicht, wenn die Zelle A1 der jeweiligen Tabelle nicht leer ist. Ist das der Fall, dann wird der Inhalt des Objektes myWorksheet.Name mit dem Wert der Variablen myWorksheet.Range(„a1“).Value ersetzt. Liegt also ein Inhalt in A1 vor, dann wird dieser Inhalt zum Namen der Tabelle.

Um das Programm zu testen, verlässt man nach der Texteingabe den Programmeditor und tippt in zwei der drei aktuellen Tabellen in A1 einen beliebigen Text ein. Der Klick auf die Schaltfläche muss dazu führen, dass nur für diese zwei Tabellen der Name abgeändert wird.

Sie haben einen Bildungsgutschein?
Erfolgreiche Online-Weiterbildung inkl. Prüfung & Zertifikat

Themen: Projektmanagement (PRINCE2®, Six Sigma), Bilanzbuchhalter, Online Marketing Manager uvm.
Jetzt mehr erfahren & Beratung anfordern!
Nein, danke!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *