VBA-ComboBox

ComboBoxen erlauben Benutzern, eine Option aus einer Dropdown-Menüliste auszuwählen. ComboBoxen können in VBA UserForms oder mit einem Excel-Arbeitsblatt erstellt werden. In diesem Tutorial erfahren Sie, wie Sie ComboBoxen in VBA und in Excel-Arbeitsblättern erstellen und bearbeiten.

Wenn Sie erfahren möchten, wie Sie eine Listbox erstellen, klicken Sie hier: VBA Listbox

Wenn Sie erfahren möchten, wie Sie eine Checkbox erstellen, klicken Sie hier: VBA-Checkbox

Erstellen Sie eine ComboBox im Excel-Arbeitsblatt

Um eine ComboBox in das Arbeitsblatt einzufügen, müssen Sie zum Registerkarte "Entwickler", klicken Einfügung und unter ActiveX-Steuerelemente wählen Sie Kombinationsfeld:

Bild 1. Fügen Sie eine ComboBox in das Arbeitsblatt ein

Wenn Sie die eingefügte ComboBox auswählen, können Sie auf klicken Eigenschaften unter dem Registerkarte "Entwickler":

Bild 2. ComboBox-Eigenschaften ändern

Hier können Sie verschiedene Eigenschaften der ComboBox einstellen. Zu Beginn haben wir das Attribut geändert Name zu cmbComboBox. Jetzt können wir die ComboBox mit diesem Namen im VBA-Code verwenden.

Füllen Sie eine ComboBox in VBA-Code

Zuerst müssen wir die ComboBox mit Werten füllen. In den meisten Fällen muss beim Öffnen der Arbeitsmappe eine ComboBox ausgefüllt werden. Aus diesem Grund müssen wir einen Code zum Auffüllen der ComboBox in das Objekt einfügen Arbeitsmappe, Verfahren Offen. Dieses Verfahren wird jedes Mal ausgeführt, wenn ein Benutzer die Arbeitsmappe öffnet. Hier ist der Code:

123456789 Mit Sheet1.cmbComboBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Ende mit

Wenn Sie auf das Dropdown-Menü klicken, erhalten Sie 5 Namen zur Auswahl (John, Michael, Jennifer, Lilly und Robert):

Bild 3. Füllen Sie die ComboBox in VBA

Füllen Sie eine ComboBox aus einem Zellenbereich

Eine andere Möglichkeit, eine ComboBox zu füllen, besteht darin, dies einem Benutzer zu überlassen. Eine ComboBox kann mit dem Zellenbereich verknüpft werden. Bei diesem Ansatz wird die ComboBox jedes Mal, wenn ein Benutzer einen neuen Wert in den Zellenbereich eingibt, mit diesem Wert aktualisiert.

Wenn Sie dies aktivieren möchten, müssen Sie zum Eigenschaften der ComboBox und setzen Sie das Attribut ListFillRange zum Zellenbereich (in unserem Fall E2:E5):

Bild 4. Füllen Sie die ComboBox aus dem Zellenbereich

Wir haben unsere ComboBox mit dem Bereich E2:E5 verknüpft, wo wir die gewünschten Namen eingeben (Nathan, Harry, George, Roberta). Als Ergebnis wird die ComboBox jetzt mit diesen Namen gefüllt:

Bild 5. Bestückte ComboBox aus dem Zellenbereich

Holen Sie sich ein ausgewähltes Element einer ComboBox in VBA

Der Zweck einer ComboBox besteht darin, eine Benutzerauswahl zu treffen. Um eine Benutzerauswahl abzurufen, müssen Sie diesen Code verwenden:

123 Dim strSelectedItem als VariantestrSelectedItem = Sheet1.cmbComboBox.Value

Die Benutzerauswahl befindet sich im Attribut Wert von Sheet1.cmbComboBox Objekt. Dieser Wert wird der Variablen zugewiesen strSelectedItem:

Bild 6. Holen Sie sich einen ausgewählten Wert aus der ComboBox in VBA

Wir haben ausgewählt Julia in der ComboBox und führte die Prozedur aus. Wie Sie in Bild 5 sehen können, ist der Wert von strSelectedItem ist Julia, das ist der von uns ausgewählte Wert. Nun können Sie diese Variable im Code weiterverarbeiten.

Löschen einer ComboBox

Wenn Sie eine ComboBox in VBA löschen möchten, müssen Sie verwenden Klar Methode von Sheet1.lstComboBox Objekt. Es löscht alle Elemente aus der ComboBox. Hier ist der Code:

1 Sheet1.cmbComboBox.Clear

Wenn wir den Code ausführen, erhalten wir die leere ComboBox:

Bild 7. Löschen Sie die ComboBox

Verwenden einer ComboBox in einem Benutzerformular

Wie bereits erwähnt, wird Combobox am häufigsten in Userforms verwendet. Um zu erklären, wie Sie dies tun können, fügen wir zunächst ein Benutzerformular ein. Klicken Sie im VBA-Editor mit der rechten Maustaste auf den Modulnamen, klicken Sie auf Einfügung und wähle Benutzerformular:

Abbildung 8. Ein Benutzerformular einfügen

Um Steuerelemente zum Einfügen anzuzeigen, müssen Sie die Werkzeugkasten. Klicken Sie dazu auf dasWerkzeugkasten Symbol in der Symbolleiste. Danach erhalten Sie die Fenster mit allen verfügbaren Bedienelementen. Sie können auf klicken Kombinationsfeld um es im Userform zu erstellen.

Bild 9. Fügen Sie eine ComboBox in das Benutzerformular ein

Wir benennen die ComboBox cmbComboBox. Um es mit Werten zu füllen, müssen wir den folgenden Code in die Methode einfügen Initialisieren des Objekts Benutzerformular:

12345678910111213 Private Sub UserForm_Initialize()Mit UserForm1.cmbComboBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Ende mitEnd Sub

Dieser Code wird jedes Mal ausgelöst, wenn ein Benutzer das Benutzerformular ausführt und die Combobox mit diesen 5 Namen füllt:

Bild 10. Die ComboBox mit Werten im Userform

Wenn Sie den ausgewählten Wert aus der ComboBox abrufen möchten, müssen Sie dieselbe Logik für die Combobox in einem Arbeitsblatt verwenden, die weiter oben im Artikel erläutert wurde.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave