Excel-VBA-Userform mit mehreren Seiten
Im Folgenden werden wir ein Programm in Excel VBA, die auf eine Userform erstellt, die mehrere Seiten enthält. Diese Userform enthält auch Bilder.
Die Multipage Control enthält zwei Seiten. Auf Seite 1, kann der Benutzer in seiner / ihrer persönlichen Daten füllen. Auf Seite 2, kann der Benutzer angeben, welche Malerei er / sie die am meisten liebt.
Um diese Userform zu erstellen, führen Sie die folgenden Schritte.
-
Öffnen Sie den Visual Basic-Editor. Wenn das Projekt-Explorer nicht sichtbar ist, klicken Sie auf Ansicht, Projekt-Explorer.
-
Klicken Sie auf Einfügen, Benutzerformular. Wenn die Toolbox nicht automatisch angezeigt wird, klicken Sie auf Ansicht, Toolbox. Ihr Bildschirm sollte wie unten aufgebaut werden.
-
die Multisteuerung, Etiketten hinzufügen, Textfelder (erste an der Spitze, die zweite unter dem ersten), Rahmen, Optionsschaltflächen (zuerst auf der linken Seite, der zweite auf der rechten Seite), Listenfeld Bildsteuerung und Befehlsschaltflächen. Sobald dies abgeschlossen ist, sollte das Ergebnis mit der leeren Version der Userform gezeigt früher konsistent sein. Erstellen Sie zum Beispiel eine Multipage Kontrolle von aus der Toolbox auf Mehrseit klicken. Als nächstes können Sie ein Multiseiten-Steuerelement auf dem Benutzerformular ziehen. Wenn Sie am Geschlecht Rahmen ankommen, denken Sie daran zuerst diesen Rahmen zu ziehen, bevor Sie die beiden Optionsfelder in sie setzen.
-
Sie können die Namen ändern und die Beschriftungen der Kontrollen. Die Namen werden in dem Excel-VBA-Code verwendet. Bildunterschriften sind diejenigen, die auf dem Bildschirm angezeigt. Es empfiehlt sich, die Namen der Kontrollen zu ändern, aber es ist hier nicht notwendig, da wir nur wenige Kontrollen in diesem Beispiel haben. Um die Beschriftung der Mehrseit Registerkarten Userform zu ändern, Etiketten, Rahmen, Optionsfelder und Befehlsschaltflächen, klicken Sie auf Ansicht, Eigenschaften-Fenster und klicken Sie auf jede Kontrolle.
-
die Userform zu zeigen, eine Befehlsschaltfläche auf dem Arbeitsblatt platzieren und die folgende Codezeile hinzu:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
Wir werden jetzt die Sub UserForm_Initialize zu erstellen. Wenn Sie die Show-Methode für die Userform verwenden, wird diese Unter automatisch ausgeführt werden.
-
Öffnen Sie den Visual Basic-Editor.
-
Geben Sie in dem Projekt-Explorer direkt auf UserForm1 und klicken Sie dann auf Code anzeigen klicken.
Wählen Sie Userform aus der linken Dropdown-Liste 8.. Wählen Sie Initialisieren von der rechten Dropdown-Liste.
-
die folgenden Codezeilen hinzu:
Private Sub UserForm_Initialize() With ListBox1 .AddItem "Mountains" .AddItem "Sunset" .AddItem "Beach" .AddItem "Winter" End With End Sub
Erläuterung: das Listenfeld auf Seite 2 wird gefüllt werden.
Wir haben nun den ersten Teil der Userform erstellt. Obwohl es schon ordentlich aussieht, wird noch nichts geschehen, wenn wir ein Element aus dem Listenfeld auswählen oder, wenn wir auf der Schaltfläche OK klicken.
-
Laden Sie die Bilder (rechte Seite dieser Seite) und fügen Sie sie in „C: \ test \“
-
In dem Projekt-Explorer, klicken Sie doppelt auf UserForm1.
-
Klicken Sie doppelt auf das Listenfeld.
-
Fügen Sie die folgenden Codezeilen:
Private Sub ListBox1_Click() If ListBox1.ListIndex = 0 Then Image1.Picture = LoadPicture("C:\test\Mountains.jpg") End If If ListBox1.ListIndex = 1 Then Image1.Picture = LoadPicture("C:\test\Sunset.jpg") End If If ListBox1.ListIndex = 2 Then Image1.Picture = LoadPicture("C:\test\Beach.jpg") End If If ListBox1.ListIndex = 3 Then Image1.Picture = LoadPicture("C:\test\Winter.jpg") End If End Sub
Erläuterung: Diese Codezeilen laden ein Bild je nach dem ausgewählten Elemente in dem Listenfeld.
-
Klicken Sie doppelt auf die Schaltfläche OK.
-
Fügen Sie die folgenden Codezeilen:
Private Sub CommandButton1_Click() Dim emptyRow As Long 'Make Sheet1 active Sheet1.Activate 'Determine emptyRow emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 'Transfer information Cells(emptyRow, 1).Value = TextBox1.Value Cells(emptyRow, 2).Value = TextBox2.Value If OptionButton1.Value = True Then Cells(emptyRow, 3).Value = "Male" Else Cells(emptyRow, 3).Value = "Female" End If Cells(emptyRow, 4).Value = ListBox1.Value 'Close Userform Unload Me End Sub
Erläuterung: Erstens, aktivieren wir Sheet1. Als nächstes wir emptyRow bestimmen. Die Variable emptyRow ist die erste leere Zeile und steigt jedes Mal, wenn ein Datensatz hinzugefügt wird. Als nächstes wir die Informationen von der Userform auf die spezifischen Spalten von emptyRow übertragen. Schließlich schließen wir die Userform.
-
Beenden Sie den Visual Basic-Editor, geben Sie die unten in Zeile angezeigt Etiketten 1 und die Userform testen.
Ergebnis: