VBA lernen - Excel 2007/2010 (6)
Eigene Dialoge (Forms): Dialog (UserForm) und Befehlsschaltflächen (Buttons)
Dialog (UserForm) und Befehlsschaltflächen (Buttons)
Auf dieser Seite
Mit Bild
Dialog (UserForm)
Dialoge, so genannte UserForms, werden ähnlich wie ein neuer Modul im VBA-Editor eingefügt. "Einfügen" - "UserForm".
Mit Bild
Neue UserForm
Mit Bild
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.
Mit Bild
Dialog und Eigenschaftsfenster
Mit Bild
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.
Mit Bild
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).
Mit Bild
Sub Dialog1zeigen() Dialog1.Show End Sub
Mit Bild
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).
Mit Bild
Sub dialog1entfernen() Unload Dialog1 End Sub
Mit Bild
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.
Mit Bild
Im Feld Prozedur wählen Sie Initialize.
Mit Bild
Beispielsweise kann der Titeltext Ihrer UserForm das aktuelle Datum anzeigen.
Mit Bild
Private Sub UserForm_Initialize() Me.Caption = "Erster Dialog " & Date End Sub
Mit Bild
Dialog mit aktuellem Datum
Mit Bild
Den Dialog können Sie momentan nur über das X im Dialogtitel schließen.
Mit Bild
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.
Mit Bild
Befehlsschaltfläche auf die UserForm ziehen
Mit Bild
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).
Mit Bild
Name und Caption einer Befehlsschaltfläche
Mit Bild
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.
Mit Bild
Ausgewählte Click-Ereignisprozedur
Mit Bild
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.
Mit Bild
Private Sub CommandButtonBeenden_Click() MsgBox "Tschüß!" Unload Me End Sub
Mit Bild
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.