/ / Excel VBA Benutzerformular

Excel-VBA-Benutzerformular

Fügen Sie die Steuerelemente hinzu | Zeigen Sie das Benutzerformular an | Ordnen Sie die Makros zu | Testen Sie das Benutzerformular

In diesem Kapitel lernen Sie, wie Sie ein Excel-VBA-Benutzerformular. Die Benutzerform, die wir erstellen werden, sieht folgendermaßen aus:

Excel-VBA-Benutzerformular

Fügen Sie die Steuerelemente hinzu

Führen Sie die folgenden Schritte aus, um dem Benutzerformular die Steuerelemente hinzuzufügen.

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 die in der folgenden Tabelle aufgeführten Steuerelemente hinzu. Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem zuvor gezeigten Bild des Benutzerformulars übereinstimmen. Erstellen Sie beispielsweise ein Textfeldsteuerelement, indem Sie in der Toolbox auf TextBox klicken. Als Nächstes können Sie ein Textfeld auf dem Benutzerformular ziehen. Wenn Sie am Car-Frame ankommen, denken Sie daran, diesen Frame zuerst zu zeichnen, bevor Sie die beiden Optionsfelder darin platzieren.

4. Ändern Sie die Namen und Beschriftungen der Steuerelemente gemäß der folgenden Tabelle. Namen werden im Excel-VBA-Code verwendet. Untertitel sind diejenigen, die auf Ihrem Bildschirm erscheinen. Es empfiehlt sich, die Namen der Steuerelemente zu ändern. Dadurch wird Ihr Code leichter lesbar. Um die Namen und Beschriftungen der Steuerelemente zu ändern, klicken Sie auf Ansicht, Eigenschaftenfenster und klicken Sie auf jedes Steuerelement.

Steuerung Name Bildbeschriftung
Benutzerformular AbendessenPlanerUserForm Abendessen-Planer
Textfeld NameTextBox
Textfeld TelefonTextBox
Listenfeld StadtListeBox
Kombinationsfeld AbendessenComboBox
Kontrollkästchen DatumsCheckBox1 13. Juni
Kontrollkästchen DatumsCheckBox2 20. Juni
Kontrollkästchen DatumsCheckBox3 27. Juni
Rahmen AutoFrame Auto
Optionsschaltfläche CarOptionButton1 Ja
Optionsschaltfläche CarOptionButton2 Nein
Textfeld MoneyTextBox
Drehknopf MoneySpinButton
Befehlsschaltfläche OKButton OK
Befehlsschaltfläche ClearButton klar
Befehlsschaltfläche Abbrechen Stornieren
7 Etiketten Keine Notwendigkeit, sich zu ändern Name :, Telefonnummer: usw.

Hinweis: Ein Kombinationsfeld ist eine Dropdown-Liste, aus der ein Benutzer ein Element auswählen oder seine eigene Auswahl ausfüllen kann. Nur eine der Optionsschaltflächen kann ausgewählt werden.

Zeigen Sie das Benutzerformular an

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

Private Sub CommandButton1_Click()

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

1. Öffnen Sie den Visual Basic-Editor.

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

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

4. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub UserForm_Initialize()

"Empty NameTextBox
NameTextBox.Value = ""

"Empty PhoneTextBox
PhoneTextBox.Value = ""

"Empty CityListBox
CityListBox.Clear

"Fill CityListBox
With CityListBox
    .AddItem "San Francisco"
    .AddItem "Oakland"
    .AddItem "Richmond"
End With

"Empty DinnerComboBox
DinnerComboBox.Clear

"Fill DinnerComboBox
With DinnerComboBox
    .AddItem "Italian"
    .AddItem "Chinese"
    .AddItem "Frites and Meat"
End With

"Uncheck DataCheckBoxes

DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False

"Set no car as default
CarOptionButton2.Value = True

"Empty MoneyTextBox
MoneyTextBox.Value = ""

"Set Focus on NameTextBox
NameTextBox.SetFocus

End Sub

Erläuterung: Textfelder werden geleert, Listenfelder und Kombinationsfelder sind gefüllt, Kontrollkästchen sind deaktiviert, usw.

Ordnen Sie die Makros zu

Wir haben jetzt den ersten Teil des Benutzerformulars erstellt. Obwohl es bereits ordentlich aussieht, wird nichts passieren, wenn wir auf die Befehlsschaltflächen in der Benutzerform klicken.

1. Öffnen Sie den Visual Basic-Editor.

2. Doppelklicken Sie im Projektexplorer auf DinnerPlannerUserForm.

3. Doppelklicken Sie auf den Drehknopf Geld.

4. Fügen Sie die folgende Codezeile hinzu:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Erläuterung: Diese Codezeile aktualisiert das Textfeld, wenn Sie die Drehschaltfläche verwenden.

5. Doppelklicken Sie auf die Schaltfläche OK.

6. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub OKButton_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 = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption

If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption

If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

If CarOptionButton1.Value = True Then
    Cells(emptyRow, 6).Value = "Yes"
Else
    Cells(emptyRow, 6).Value = "No"
End If

Cells(emptyRow, 7).Value = MoneyTextBox.Value

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. Schließlich übertragen wir die Informationen aus der Benutzerform in die spezifischen Spalten von emptyRow.

7. Doppelklicken Sie auf die Schaltfläche Löschen.

8. Fügen Sie die folgende Codezeile hinzu:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Erläuterung: Diese Codezeile ruft Sub UserForm_Initialize auf, wenn Sie auf die Schaltfläche Löschen klicken.

9. Doppelklicken Sie auf die Schaltfläche Abbrechen.

10. Fügen Sie die folgende Codezeile hinzu:

Private Sub CancelButton_Click()

Unload Me

End Sub

Erläuterung: Diese Codezeile schließt die Benutzermaske, wenn Sie auf die Schaltfläche Abbrechen klicken.

Testen Sie das Benutzerformular

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

Ergebnis:

Testen Sie das Benutzerformular

Lesen Sie auch: