In diesem Kapitel lernen Sie, wie eine Excel-VBA-Userform erstellen. Die Userform werden wir aussehen wie folgt erstellen:

Excel VBA Userform

, um die Steuerelemente hinzufügen

Um die Kontrollen zu der Userform hinzufügen, führen Sie die folgenden Schritte.

  1. Öffnen Sie die 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 Kontrollen Fügen Sie in der Tabelle unten aufgeführt. Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem Bild von der Userform gezeigt früher konsistent sein. Erstellen Sie zum Beispiel ein Textfeld-Steuerelement von der Toolbox auf TextBox klicken. Als nächstes können Sie ein Textfeld auf der Userform ziehen. Wenn Sie an der Auto-Rahmen kommen, denken Sie daran zuerst diesen Rahmen zu ziehen, bevor Sie die beiden Optionsfelder in sie setzen.

  2. Ändern Sie die Namen und Titel der Kontrollen nach der folgenden Tabelle. 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. Dadurch wird der Code besser lesbar machen. Um die Namen und Beschriftungen der Steuerelemente zu ändern, klicken Sie auf Ansicht, Eigenschaften-Fenster und klicken Sie auf jede Kontrolle.

Control

Name

Caption

Userform

DinnerPlannerUserForm

Dinner Planner

Text Box

NameTextBox

Text Box

PhoneTextBox

List Box

CityListBox

Combo Box

DinnerComboBox

Check Box

DateCheckBox1

June 13th

Check Box

DateCheckBox2

June 20th

Check Box

DateCheckBox3

June 27th

Frame

CarFrame

Car

Option Button

CarOptionButton1

Yes

Option Button

CarOptionButton2

No

Text Box

MoneyTextBox

Spin Button

MoneySpinButton

Command Button

OKButton

OK

Command Button

ClearButton

Clear

Command Button

CancelButton

Cancel

7 Labels

No need to change

Name:, Phone Number:, etc.

Hinweis: ein Kombinationsfeld ist eine Dropdown-Liste aus, wo ein Benutzer ein Element oder fill in seiner / ihrer Wahl auswählen können. Nur eine der Optionsschaltflächen können ausgewählt werden.

zeigen die Userform

Um die Userform anzuzeigen, setzen Sie einen Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgende Codezeile:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.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 die Visual Basic Editor.

  2. Wählen Sie im Projekt-Explorer direkt auf DinnerPlannerUserForm und klicken Sie dann auf Code anzeigen klicken.

Wählen Sie Userform aus der linken Dropdown-Liste 3.. Wählen Sie Initialisieren von der rechten Dropdown-Liste.

  1. 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 gefüllt sind, Kontrollkästchen deaktiviert sind, usw.

Weisen Sie die Makros

Wir haben nun den ersten Teil der Userform erstellt. Obwohl es schon ordentlich aussieht, wird noch nichts geschehen, wenn wir die Befehlsschaltflächen auf der Userform klicken.

  1. Öffnen Sie die Visual Basic Editor.

  2. Wählen Sie im Projekt-Explorer, klicken Sie doppelt auf DinnerPlannerUserForm.

  3. Klicken Sie doppelt auf das Geld Spin-Button.

  4. Folgende Codezeile hinzu:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Erläuterung: dieser Code Zeile aktualisiert das Textfeld, wenn Sie die Spin-Taste verwenden.

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

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

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. Schließlich haben wir die Informationen von der Userform auf die spezifischen Spalten von emptyRow übertragen.

  1. Klicken Sie doppelt auf die Schaltfläche Löschen.

  2. Die folgende Codezeile hinzu:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

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

  1. Doppelklicken Sie auf die Schaltfläche Abbrechen.

  2. Fügen Sie den folgenden Code-Zeile:

Private Sub CancelButton_Click()

Unload Me

End Sub

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

Testen Sie die Userform

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

Ergebnis:

Test the Userform