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.

Userform Page 1

Userform Page 2

Um diese Userform zu erstellen, führen Sie die folgenden Schritte.

  1. Öffnen Sie den Visual Basic-Editor. Wenn das Projekt-Explorer nicht sichtbar ist, klicken Sie auf Ansicht, Projekt-Explorer.

  2. 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.

Userform Screen Setup in Excel VBA

  1. 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.

  2. 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.

  3. 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.

  1. Öffnen Sie den Visual Basic-Editor.

  2. 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.

  1. 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.

  1. Laden Sie die Bilder (rechte Seite dieser Seite) und fügen Sie sie in „C: \ test \“

  2. In dem Projekt-Explorer, klicken Sie doppelt auf UserForm1.

  3. Klicken Sie doppelt auf das Listenfeld.

  4. 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.

  1. Klicken Sie doppelt auf die Schaltfläche OK.

  2. 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.

  1. Beenden Sie den Visual Basic-Editor, geben Sie die unten in Zeile angezeigt Etiketten 1 und die Userform testen.

Ergebnis:

Test the Userform