VBA lernen - Excel 2007/2010 (6)

Eigene Dialoge (Forms): Dialog (UserForm) und Befehlsschaltflächen (Buttons)

Bisher noch keine Bewertungen für diesen Artikel.

Dialog (UserForm) und Befehlsschaltflächen (Buttons)

Dialog (UserForm)

Dialoge, so genannte UserForms, werden ähnlich wie ein neuer Modul im VBA-Editor eingefügt. "Einfügen" - "UserForm".

60697_bild09.jpg

Neue UserForm

Die Steuerelemente werden in der Werkzeugsammlung angezeigt. Notfalls machen Sie sich diese Auswahl sichtbar über "Ansicht" - "Werkzeugsammlung". Sie können die Größe der Fläche der UserForm an den seitlichen Ziehflächen verändern. Einen eigenen Namen geben Sie dem zukünftigen Dialog im Eigenschaftsfenster unter dem Feld Name ein. Alle Eigenschaften des Dialogs sehen Sie im Eigenschaftsfenster.

60698_bild10.jpg

Dialog und Eigenschaftsfenster

Im Feld (Name) geben Sie der Userform einen eigenen Namen, unter dem Sie die auf Userform zugreifen können. Der Eintrag vom Feld Caption wird im Titel angezeigt.

Dialog anzeigen

In einer Prozedur machen Sie eine Userform für die Bedienung sichtbar mit
UserFormname.show. z.B. Dialog1.Show
Die UserForm wird geladen und gezeigt (Modul1 der Lösungsdatei).

Sub Dialog1zeigen()
Dialog1.Show
End Sub

Mit Unload UserFormname z.B. Unload Dialog1 bzw. Unload Me wird die Userform aus dem Speicher entfernt und damit nicht mehr angezeigt (Modul1 der Lösungsdatei).

Sub dialog1entfernen()
Unload Dialog1
End Sub

Den Dialog können Sie beim Öffnen automatisch mit Voreinstellungen einrichten, man nennt diesen Vorgang auch "initialisieren". Damit wird festgelegt, wie aktuelle Daten für Steuerelemente angezeigt werden. Sie gelangen zum Schreiben der Initialisierungsprozedur durch Doppelklick auf die Oberfläche Ihres Entwurfs Ihrer UserForm.

60699_bild19.jpg

Im Feld Prozedur wählen Sie Initialize.

Beispielsweise kann der Titeltext Ihrer UserForm das aktuelle Datum anzeigen.

Private Sub UserForm_Initialize()
Me.Caption = "Erster Dialog " & Date
End Sub
60700_bild20.jpg

Dialog mit aktuellem Datum

Den Dialog können Sie momentan nur über das X im Dialogtitel schließen.

Befehlsschaltflächen (Buttons)

Befehlsschaltflächen des Dialogs können mit Ereignisroutinen gewünschte Aktionen ausführen. Ziehen Sie zunächst eine Befehlsschaltfläche auf Ihren Dialog.

60701_bild11.jpg

Befehlsschaltfläche auf die UserForm ziehen

Klicken Sie einfach auf die Befehlsschaltfläche und geben Sie ihr sowohl einen erkennbaren Namen für den späteren Zugriff durch Ihre Prozedur als auch ein sinnvolles "Caption" (eine sichtbare Beschriftung).

60702_bild12.jpg

Name und Caption einer Befehlsschaltfläche

Das obige Button heißt CommandButtonBeenden und trägt die sichtbare Beschriftung Beenden.

Die Größe des Steuerelements lässt sich durch Ziehen an den Ziehflächen verändern. Ebenso können Sie die Position der Befehlsschaltfläche durch Ziehen an ihrem Rand (nicht an den Ziehflächen!) bestimmen.

Über Doppelklick auf ein Steuerelement kommen Sie zu den anwendbaren Ereignisprozeduren, wie Sie auf dem folgenden Bild erkennen können.

60703_bild13.jpg

Ausgewählte Click-Ereignisprozedur

Als Reaktion tragen Sie jetzt Unload Dialog1 oder Unload Me ein. Me steht immer für den Namen des aktuellen Dialogs; das schreibt sich schneller und man darf beim Codieren sogar den Namen des Dialogs vergessen haben.

Private Sub CommandButtonBeenden_Click()
MsgBox "Tschüß!"
Unload Me
End Sub

Wenn Sie den Dialog mit der Prozedur Dialog1zeigen vom Modul1 der Lösungsdatei aufrufen, können Sie ihn durch Klick auf die Befehlsschaltfläche Beenden jetzt schließen.