Excel-VBA-Userform
In diesem Kapitel lernen Sie, wie eine Excel-VBA-Userform erstellen. Die Userform werden wir aussehen wie folgt erstellen:
, um die Steuerelemente hinzufügen
Um die Kontrollen zu der Userform hinzufügen, führen Sie die folgenden Schritte.
-
Öffnen Sie die 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 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.
-
Ä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.
-
Öffnen Sie die Visual Basic Editor.
-
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.
-
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.
-
Öffnen Sie die Visual Basic Editor.
-
Wählen Sie im Projekt-Explorer, klicken Sie doppelt auf DinnerPlannerUserForm.
-
Klicken Sie doppelt auf das Geld Spin-Button.
-
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.
-
Klicken Sie doppelt auf die Schaltfläche OK.
-
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.
-
Klicken Sie doppelt auf die Schaltfläche Löschen.
-
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.
-
Doppelklicken Sie auf die Schaltfläche Abbrechen.
-
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: