VBA-Listenfeld

In VBA können Sie a Listenfeld wo ein Benutzer eine der aufgelisteten Optionen auswählen kann. Listbox wird häufig in Userforms verwendet, kann aber auch in einem Arbeitsblatt verwendet werden. In diesem Tutorial erfahren Sie, wie Sie eine Listbox erstellen, füllen und löschen. Sie werden auch sehen, wie Sie in VBA eine Benutzerauswahl erhalten und im Code verwenden.

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

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

Erstellen Sie eine Listbox

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

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

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

Bild 2. Listenfeldeigenschaften ändern

Hier können Sie verschiedene Eigenschaften der Listbox einstellen. Für den Anfang haben wir das Attribut geändert Name zu lstListBox. Jetzt können wir die Listbox mit diesem Namen im VBA-Code verwenden.

Füllen Sie eine Listbox in VBA-Code

Zuerst müssen wir die Listbox mit Werten füllen. In den meisten Fällen muss beim Öffnen der Arbeitsmappe eine Listbox ausgefüllt werden. Aus diesem Grund müssen wir einen Code zum Auffüllen der Listbox 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.lstListBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Ende mit

Wie Sie in Bild 3 sehen können, haben wir unsere Listbox mit 5 Namen gefüllt (John, Michael, Jennifer, Lilly und Robert):

Bild 3. Füllen Sie die Listbox in VBA

Füllen einer Listbox aus einem Zellenbereich

Eine andere Möglichkeit, eine Listbox zu füllen, besteht darin, dies einem Benutzer zu überlassen. Eine Listbox kann mit dem Zellbereich verknüpft werden. Daher wird die Listbox 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 ListBox und setzen Sie das Attribut ListFillRange:

Bild 4. Füllen Sie die Listbox aus dem Zellbereich

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

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

Der Zweck einer Listbox besteht darin, eine Benutzerauswahl zu erhalten. Um einen von einem Benutzer ausgewählten Wert abzurufen, müssen Sie diesen Code verwenden:

123 Dim strSelectedItem als VariantestrSelectedItem = Sheet1.lstListBox.Value

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

Bild 5. Holen Sie sich einen ausgewählten Wert aus der Listbox in VBA

Wir haben ausgewählt Harry in der Listbox und führte die Prozedur aus. Wie Sie in Bild 5 sehen können, ist der Wert von strSelectedItem ist Harry, das ist der von uns ausgewählte Wert. Außerdem können Sie diese Variable im Code verarbeiten.

Löschen einer Listbox

Um eine Listbox in VBA zu löschen, müssen Sie verwenden Klar Methode von Sheet1.lstListBox Objekt. Es löscht alle Elemente aus der Listbox. Hier ist der Code:

1 Sheet1.lstListBox.Clear

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

Bild 6. Löschen Sie die Listbox

Verwenden einer Listbox in einem Benutzerformular

Wie bereits erwähnt, wird Listbox 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 7. 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 ListBox um es im Userform zu erstellen.

Abbildung 8. Fügen Sie eine Listbox 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.lstListBox.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 Listbox mit diesen 5 Namen auffüllt:

Bild 9. Die Listbox 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