Wer Microsoft Office nutzt kann sich viele routinemäßige Aufgaben vereinfachen, indem man VBA einsetzt.
Mit VBA kann man auch umfangreiche Formulare und Dialoge erstellen, mit denen man Benutzerabfragen vollziehen kann. Das folgende Bild zeigt ein solches Formular in der Entwurfsansicht im VBA-Editor.
Hier soll kurz erklärt werden, wie man beim Klick auf einen Button VBA-Code hinzufügen und ausführen kann. Typische Anwendungsbeispiele können das Schließen des Formulars, Speichern von Daten oder Erstellen eines Ordners sein.
Aus anderen Programmierumgebungen ist vielleicht ein Event-Explorer geläufig, in welchem man sich einfach das passende Ereignis aussucht und dort die Methode einträgt oder automatisch generieren lässt. Einen solchen Event-Explorer gibt es bei VBA nicht. Vielmehr scheint man sich nur auf ein Ereignis, das OnClick()-Event zu beschränken.
Button-Click Event in VBA erzeugen
Dieses ist dann auch relativ simpel zu erzeugen. In der Entwurfsansicht macht man einfach einen Doppelklick auf den gewünschten Button. Man gelangt dann automatisch in die Code-Ansicht zum Formular. Dort wurde automatisch eine noch leere Sub-Methode erzeugt, in welcher man weiteren Code hinzufügen kann, der beim Klick auf den Button ausgeführt werden soll.
(Die Code-Ansicht kann man übrigens auch mit der Taste F7 aufrufen oder über das Menü „Ansicht => Code„)
In unserem Beispiel wurde der Okay-Button gewählt zum Erzeugen des Codes. Dieser hat im Eigenschaften-Explorer den Namen „btnOkay“ vergeben bekommen. Für das OnClick-Ereignis setzt die Entwicklungsumgebung also nur „_Click()“ als Suffix hinten ran. So erkennt man auch immer zu welchem Button das jeweilige Ereignis gehört.
Solche Events können für jedes beliebige Element eines Formulars erzeugt werden durch einen einfachen Doppelklick auf das Element. In den meisten Fällen wird dann das Click-Event generiert. Aber der Editor entscheidet selbst, was für eine Ereignisroutine erzeugt wird. So wird zum Beispiel bei Doppelklick auf eine TextBox das Ereignis „TextBox_Change()“ eingerichtet. Dieses reagiert also auf jede Änderung der TextBox oder anders gesagt, reagiert auf jede Texteingabe.