/ / Excel VBA-Benutzerformular mit mehreren Seiten

Excel VBA-Benutzerformular mit mehreren Seiten

Unten sehen wir uns ein Programm in Excel VBA an, das ein Benutzerformular erstellt, das mehrere Seiten enthält. Dieses Benutzerformular enthält auch Bilder.

Das Multipage Control enthält zwei Seiten. Auf Seite 1 kann der Benutzer seine persönlichen Daten eingeben. Auf Seite 2 kann der Benutzer angeben, welches Gemälde er am meisten mag.

Benutzerformular Seite 1
Benutzerformular Seite 2

Führen Sie die folgenden Schritte aus, um dieses Benutzerformular zu erstellen.

1. Öffnen Sie den Visual Basic-Editor. Wenn der 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 folgt eingerichtet sein.

Benutzerbildschirm Setup in Excel VBA

3. Fügen Sie das Multipage-Steuerelement, Beschriftungen, Textfelder (zuerst oben, das zweite unter dem ersten), Rahmen, Optionsfelder (erstes links, zweites rechts), Listenfeld, Bildsteuerung und Befehlsschaltfläche hinzu. Sobald dies abgeschlossen ist, sollte das Ergebnis mit der leeren Version des zuvor gezeigten Benutzerformulars übereinstimmen. Erstellen Sie beispielsweise ein Multipage-Steuerelement, indem Sie in der Toolbox auf Multipage klicken. Als Nächstes können Sie ein Multipage-Steuerelement auf die Benutzerform ziehen. Wenn Sie am Gender-Rahmen ankommen, denken Sie daran, diesen Rahmen zuerst zu zeichnen, bevor Sie die beiden Optionsfelder darin platzieren.

4. Sie können die Namen und die Beschriftungen der Steuerelemente ändern. Namen werden im Excel-VBA-Code verwendet. Untertitel sind diejenigen, die auf Ihrem Bildschirm erscheinen. Es empfiehlt sich, die Namen der Steuerelemente zu ändern. Dies ist jedoch nicht erforderlich, da in diesem Beispiel nur wenige Steuerelemente vorhanden sind. Um die Beschriftung der Benutzerform, der mehrseitigen Registerkarten, der Beschriftungen, des Rahmens, der Optionsfelder und der Befehlsschaltfläche zu ändern, klicken Sie auf Ansicht, Eigenschaftenfenster, und klicken Sie auf jedes Steuerelement.

5. Um das Benutzerformular anzuzeigen, platzieren Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt und fügen Sie die folgende Codezeile hinzu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Wir werden jetzt die Sub UserForm_Initialize erstellen. Wenn Sie die Show-Methode für das Benutzerformular verwenden, wird dieses Sub-Objekt automatisch ausgeführt.

6. Öffnen Sie den Visual Basic-Editor.

7. Klicken Sie im Projektexplorer mit der rechten Maustaste auf UserForm1, und klicken Sie dann auf Code anzeigen.

8. Wählen Sie Benutzerform in der linken Dropdown-Liste. Wählen Sie Initialisieren aus der rechten Dropdown-Liste.

9. Fügen Sie 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 ausgefüllt.

Wir haben jetzt den ersten Teil des Benutzerformulars erstellt. Obwohl es bereits ordentlich aussieht, wird nichts passieren, wenn wir ein Element aus der Liste auswählen oder auf die Schaltfläche OK klicken.

10. Laden Sie die Bilder (rechte Seite dieser Seite) herunter und fügen Sie sie zu "C: test" hinzu

11. Doppelklicken Sie im Projektexplorer auf UserForm1.

12. Doppelklicken Sie auf das Listenfeld.

13. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then
    Image1.Picture = LoadPicture("C:testMountains.jpg")
End If

If ListBox1.ListIndex = 1 Then
    Image1.Picture = LoadPicture("C:testSunset.jpg")
End If

If ListBox1.ListIndex = 2 Then
    Image1.Picture = LoadPicture("C:testBeach.jpg")
End If

If ListBox1.ListIndex = 3 Then
    Image1.Picture = LoadPicture("C:testWinter.jpg")
End If

End Sub

Erläuterung: Diese Codezeilen laden ein Bild abhängig vom ausgewählten Element in der Listbox.

14. Doppelklicken Sie auf die Schaltfläche OK.

15. Fügen Sie die folgenden Codezeilen hinzu:

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

Erklärung: Zuerst aktivieren wir Sheet1. Als nächstes bestimmen wir emptyRow. Die Variable emptyRow ist die erste leere Zeile und erhöht sich jedes Mal, wenn ein Datensatz hinzugefügt wird. Als Nächstes übertragen wir die Informationen aus der Benutzermaske in die spezifischen Spalten von emptyRow. Schließlich schließen wir die Benutzerform.

16. Beenden Sie den Visual Basic-Editor, geben Sie die folgenden Beschriftungen in Zeile 1 ein, und testen Sie das Benutzerformular.

Ergebnis:

Testen Sie das Benutzerformular

Lesen Sie auch: