VBA-Programm Schritt 2

Ein VBA-Programm erstellen: Schritt 2

Schritt 2: Das Design implementieren

Wenn man eine klare Vorstellung hat von dem, was man tun will, kann man ernsthaft anfangen zu programmieren.

Eine neue UserForm hinzufügen

Nachdem der Visual Basic-Editor aufgerufen wurde, wählt man Einfügen – UserForm aus der Menüleiste des Visual Basic-Editors, um ein neues Formular auf dem Bildschirm zu platzieren.

Wie man in der Abbildung sehen kann, ist die neue UserForm eine funktionslose graue Ebene. Hier ist zu beachten, dass man die Größe der UserForm durch Ziehen an den kleinen weißen Vierecken an der rechten und der unteren Seite beeinflussen kann (das sind die Ziehpunkte).

Das Fenster für dieses Programm sollte ein wenig breiter sein (damit der gesamte Text der Nachricht in eine Zeile passt) und ein wenig kürzer (eine Zeile Text und eine Schaltfläche nehmen nicht soviel Platz weg).

Noch interessanter ist die Werkzeugsammlung – die Palette mit den vielen Icons, die erscheinen, wenn man mit einem Formular arbeitet. Man benutzt diese Werkzeugsammlung, um Steuerelemente auf den Formularen zu platzieren.

Der UserForm ein Bezeichnungsfeld hinzufügen

Nun sind wir soweit, dass dem Formular Leben eingehaucht werden kann, idem Steuerelemente hinzugefügt werden. Beginnen wir mit einem Bezeichnungsfeld, welches einfach nur Text anzeigt, die Überschrift also. Wenn das Programm läuft, ist das Bezeichnungsfeld etwas, das man sich lediglich ansehen kann. Die Nutzer können den Text lesen, aber nicht verändern.

Das Programm kann das aber. Unser Beispielprogramm braucht diese Fähigkeit, da es bei jedem Programmaufruf jeweils das aktuelle Datum und die Uhrzeit anzeigen soll.

Um in die neue UserForm ein Bezeichnungsfeld einzufügen, sind folgende Schritte zu durchzuführen:

  1. Das Formularfenster muss aktiv sein; dies lässt sich sicherstellen, in dem man darauf klickt.

Die Werkzeugsammlung ist nur sichtbar, wenn das Formular aktiv ist.

  • Klicke in der Werkzeugsammlung auf das Icon mit dem großen A.
  • Bewege den Cursor nun zur UserForm und ziehe, beginnend auf der linken Seite oben, ein Rechteck, das groß genug ist, dass die Nachricht darin Platz hat.

VBA vergibt jedem neuen Bezeichnungsfeld automatisch eine Überschrift, so dass man an diesem Punkt die viel sagende Überschrift Label1 innerhalb des rechteckigen Bezeichnungsfeldes sehen sollte. Das ist noch nicht so ganz das Wahre. Um die automatische Überschrift zu löschen, braucht man das Eigenschaften-Fenster.

Das Eigenschaften-Fenster benutzen

Jedes Steuerelement auf einem Formular hat eine lange Liste von Eigenschaften. Sie legen fest, wie das Steuerelement aussieht und wie es sich verhalten soll, wenn das Programm läuft.

Eines der großen Stärken von VBA ist, dass man diese Eigenschaften kontrollieren kann, ohne auch nur eine einzige Zeile Code schreiben zu müssen.

Das Steuerfeld für Eigenschaften ist das Eigenschaften-Fenster. Wie man in der nachfolgenden Abbildung sieht, enthält es eine Liste aller Eigenschaften des Steuerelements, das gerade ausgewählt ist. Um eine Eigenschaft zu ändern, muss man lediglich die Eigenschaft aus der linken Spalte heraussuchen und die dazugehörige Einstellung in der rechten Spalte ändern.

Im Falle des Bezeichnungsfeldes in unserem Beispielprogramm, müssen genau zwei Eigenschaften geändert werden: Name und Caption. Ändere den Namen des Steuerelements von Label1 zum Beispiel in lblNow (anhand der ersten drei Buchstaben kann man feststellen, dass es sich hier um ein Bezeichnungsfeld handelt: lbl = Label = Bezeichnungsfeld). Klicke dazu auf das Bezeichnungsfeld, um es auszuwählen. Die Eigenschaft Name findet man ganz oben auf der Eigenschaften-Liste, dort erscheint sie so: (Name). Es ist die einzige Eigenschaft in Klammern. Doppelklicke in der rechten Spalte dieser Reihe, so dass der bereits vorhandene Name markiert wird, und gib dann den neuen Namen ein.

Die Namen der Steuerelemente benutzt man, um sich auf das Steuerelement zu beziehen, wenn man Code schreibt. Aus dem Grund sollte man versuchen, Namen zu wählen, die eine Beziehung zum Namen des Steuerelements haben.

Weiter unten in der Eigenschaften-Liste wird man das Feld Caption finden. Hier ist einfach der aktuelle Eintrag zu löschen. Warum? Weil das Programm für den entsprechenden Überschriften-Text sorgen wird, wenn es erst einmal läuft.

Solange man dabei ist, die Eigenschaften zu ändern, kann man auch das Formular selbst umbenennen. Das Formular wird ausgewählt, indem man auf die Titelleiste des UserForm-Fensters klickt. Nun kann man im Eigenschaften-Fenster die Eigenschaft Caption heraussuchen und einen entsprechenden Text eingeben (z.B.: „Mein erstes Programm“). Die neue Überschrift erscheint nun in der Titelleiste des Formulars.

Eine Befehlsschaltfläche hinzufügen

Im Gegensatz zu einem Bezeichnungsfeld kann eine Befehlsschaltfläche (oder auch Schaltfläche) mit dem Nutzer interagieren. Wenn jemand auf die Schaltfläche klickt, sieht sie eingedrückt aus und das Programm tut etwas.

Unser Beispielprogramm braucht nur eine Schaltfläche, und zwar die, die das Programm beendet, wenn der Nutzer darauf klickt. Gehe folgendermaßen vor, um die Schaltfläche auf dem Formular zu platzieren:

  • Klicke auf das Formularfenster, um es noch einmal zu aktivieren.
  • Klicke in der Werkzeugsammlung auf das Icon Befehlsschaltfläche.
  • Ziehe ein Rechteck. Fange dabei in der linken oberen Ecke der zu zeichnenden Schaltfläche an und ziehe diagonal nach rechts unten.

Jetzt können wir die Eigenschaften für die Schaltfläche festlegen.

  1. Ändere die Eigenschaft (Name) in OKButton
  2. Ändere den Wert im Feld Caption in OK

Das Formular für das Beispielprogramm ist fertig. Auch ohne weitere Arbeit haben wir bereits ein funktionierendes VBA-Programm, und zwar eines, welches das unwahrscheinlich faszinierende Formular anzeigt, dass wir gerade entworfen haben. Benutze die Taste F5, um es auszuführen.

Wenn wir das kleine, halbfertige Programm ausführen, erscheint das Formular in der Office-Anwendung (nicht im Visual Basic-Editor). Das Bezeichnungsfeld ist leer und die Schaltfläche OK noch ohne Funktion.

Um das Programm zu schließen, müssen wir die Standardschaltfläche betätigen, die Windows dafür vorgesehen hat, nämlich das kleine X am rechten Ende der Titelleiste.