Zum Hauptinhalt springen

ListBox in VBA: Aus Excel erstellen

Eine ListBox ist ein Steuerelement, mit dem dem Benutzer eine Auswahlliste angezeigt werden kann. In Microsoft Excel ist es auch möglich, eine ListBox mit Visual Basic für Applikationen (VBA) zu erstellen und zu verwenden. Eine ListBox kann ein nützliches Werkzeug sein, wenn Sie benutzerdefinierte Formulare oder interaktive Makros entwerfen.

Das Erstellen einer ListBox in Excel mit VBA kann nützlich sein, wenn Sie dem Benutzer die Möglichkeit geben möchten, aus einer angegebenen Liste von Werten auszuwählen. Wenn Sie beispielsweise einen Monat oder ein Land aus einem vordefinierten Datensatz auswählen möchten. Eine ListBox kann auch verwendet werden, um Werte aus einer Spalte oder einem Zellbereich in Excel anzuzeigen und auszuwählen.

Das Erstellen einer ListBox in VBA beginnt mit dem Hinzufügen eines ListBox-Steuerelements zu einem benutzerdefinierten Formular oder Excel-Arbeitsblatt. Sie können dann die ListBox-Eigenschaften wie Datenquelle, Anzeigestil, Sichtbarkeit usw. konfigurieren. Nachdem Sie die ListBox konfiguriert haben, können Sie VBA-Code schreiben, um die vom Benutzer ausgewählten Werte aus der Liste zu verarbeiten. Zum Beispiel, um einen ausgewählten Wert aus einer ListBox in einer Excel-Zelle anzuzeigen oder eine bestimmte Aktion basierend auf einer Benutzerauswahl auszuführen.

Abschnitt 1: Was ist eine ListBox in VBA und wie wird sie verwendet

Mit ListBox können Sie interaktive Formulare in Excel erstellen, in denen der Benutzer Werte aus einer Liste auswählen kann, die dann später für verschiedene Aufgaben verwendet werden können.

In VBA wird eine ListBox als Teil einer UserForm erstellt, die in Excel angezeigt werden kann. Der Benutzer kann ein oder mehrere Elemente aus der Liste auswählen, und die ausgewählten Werte können mit VBA-Code verarbeitet werden.

Die ListBox hat folgende grundlegende Eigenschaften:

  • List - definiert eine Liste von Werten, die vom Benutzer ausgewählt werden können;
  • Value - bestimmt den Wert des ausgewählten Elements;
  • Selected - bestimmt, ob ein Listenelement ausgewählt wurde;
  • MultiSelect - bestimmt, ob mehrere Elemente ausgewählt werden können;
  • ListCount - bestimmt die Anzahl der Elemente in der Liste.

Für die Arbeit mit ListBox verwendet VBA verschiedene Ereignisse wie Click, Change und andere, mit denen Sie auf Benutzeraktionen reagieren können.

ListBox wird häufig in Excel-Anwendungen verwendet, um interaktive Benutzeroberflächen zu erstellen, in denen der Benutzer Werte aus einer bereitgestellten Liste auswählen kann.

In den folgenden Abschnitten erfahren Sie, wie Sie eine ListBox in VBA erstellen und konfigurieren und wie Sie sie für verschiedene Aufgaben verwenden können.

Abschnitt 2: Verbinden und Initialisieren einer ListBox in VBA

Um mit ListBox in VBA arbeiten zu können, müssen Sie zuerst die Bibliothek "Microsoft Forms 2.0 Object Library" einbinden. Öffnen Sie dazu den Code-Editor, klicken Sie im Projekt-Explorer mit der rechten Maustaste auf das Projekt und wählen Sie Links aus. Suchen Sie im geöffneten Fenster nach der Bibliothek "Microsoft Forms 2.0 Object Library" und aktivieren Sie das Kontrollkästchen.

Nachdem Sie die Bibliothek angeschlossen haben, können Sie mit der Initialisierung der ListBox beginnen. Dazu müssen Sie eine Instanz des ListBox-Objekts erstellen. Fügen Sie den folgenden Code in das Modul ein:

Dim listBox As MSForms.ListBox ' Initialisierung ListBox Set listBox = Worksheets("Sheet1").OLEObjects.Add(ClassType:="Forms.ListBox").Object ' Legt die Eigenschaften von ListBox With listBox fest .Name = "ListBox1" .Left = 10 .Top = 10 .Width = 200 .Height = 100 .AddItem "Element 1" .AddItem "Element 2" .AddItem "Element 3" End With

In diesem Code wird eine neue Instanz eines ListBox-Objekts mit dem Namen "ListBox1" erstellt und die grundlegenden Eigenschaften wie Position, Größe und Listenelemente festgelegt. In diesem Fall werden drei Listenelemente mit dem Text "Element 1", "Element 2" und "Element 3" hinzugefügt. Sie können einer Liste beliebig viele Elemente hinzufügen.

Die Platzierung der ListBox in einem Excel-Arbeitsblatt wird durch die Koordinaten angegeben, die in den Eigenschaften "Links" und "Oben" angegeben werden. Die Breite und Höhe der ListBox wird mit den Eigenschaften "Width" und "Height" festgelegt.

Nachdem Sie die ListBox initialisiert haben, können Sie damit arbeiten, z. B. benutzerdefinierte Werte abrufen oder neue Listenelemente hinzufügen. Weitere Informationen dazu finden Sie in den folgenden Abschnitten des Artikels.

Abschnitt 3: Hinzufügen von Daten aus Excel zur ListBox

In diesem Abschnitt erfahren Sie, wie Sie Daten aus Excel zu einer ListBox in VBA hinzufügen.

Zunächst müssen Sie die ListBox definieren, zu der die Daten hinzugefügt werden sollen. Dazu verwenden Sie ein ListBox-Objekt und seine AddItem() -Methode. Hier ist ein Beispiel:

Dim myListBox As MSForms.ListBox
Set myListBox = Worksheets("Sheet1").ListBoxes.Add(Left:=100, Top:=100, Width:=200, Height:=100)

Im obigen Beispiel erstellen wir eine neue ListBox auf dem Arbeitsblatt "Sheet1" und legen deren Abmessungen und Koordinaten fest.

Lassen Sie uns nun die Daten aus einer Excel-Zelle zur ListBox hinzufügen. Dazu verwenden wir die AddItem() -Methode mit dem Zellenwert. Hier ist ein Beispiel:

myListBox.AddItem Worksheets("Sheet1").Range("A1").Value

Im obigen Beispiel fügen wir einen Wert aus Zelle A1 im Arbeitsblatt "Sheet1" zur ListBox hinzu.

Wir können auch mehrere Werte aus einem Zellbereich hinzufügen. Dazu können Sie eine Schleife verwenden, um jeden Wert aus einem Bereich hinzuzufügen. Hier ist ein Beispiel:

Dim rng As RangeDim cell As RangeSet rng = Worksheets("Sheet1").Range("A1:A5")For Each cell In rngmyListBox.AddItem cell.ValueNext cell

Im obigen Beispiel erstellen wir ein Range-Objekt, das einen Zellbereich von A1 bis A5 auf dem Arbeitsblatt "Sheet1" darstellt. Dann verwenden wir eine For Each-Schleife, um jeden Wert aus dem Bereich zur ListBox hinzuzufügen.

Jetzt haben wir eine ListBox, die mit Daten aus Excel gefüllt ist. Im nächsten Abschnitt werden wir uns ansehen, wie man mit der Auswahl eines Elements in einer ListBox umgeht.

Abschnitt 4: Arbeiten mit ausgewählten ListBox-Elementen in VBA

Sobald der Benutzer ein oder mehrere Elemente in der ListBox auswählt, können Sie bestimmte Aktionen mit den ausgewählten Werten ausführen. In VBA können Sie ganz einfach auf ausgewählte Elemente in einer ListBox zugreifen und verschiedene Vorgänge mit ihnen ausführen.

Zuerst müssen Sie eine Variable definieren, die die Liste der ausgewählten Elemente speichert:

Dim selectedItems As Variant

Die Variable SelectedItems ist ein Array ausgewählter Werte. Nachdem Sie eine Variable definiert haben, können Sie den folgenden Code schreiben, um die ausgewählten Elemente abzurufen:

' Получение выбранных элементовWith Me.ListBox1 ' Заменить ListBox1 на имя своего ListBoxselectedItems = .List(.ListIndex)End With

Hier verwenden wir die List- Eigenschaft, die alle Werte in der ListBox zurückgibt, und die ListIndex-Eigenschaft, die den Index des ausgewählten Werts zurückgibt. Daher weisen wir der Variablen SelectedItems den Wert des ausgewählten Elements zu.

Wenn Sie mit mehreren ausgewählten Elementen arbeiten möchten, können Sie mithilfe einer Schleife jeden ausgewählten Wert abrufen:

' Получение всех выбранных элементовWith Me.ListBox1 ' Заменить ListBox1 на имя своего ListBoxDim i As IntegerFor i = 0 To .ListCount - 1If .Selected(i) ThenselectedItems = selectedItems & ", " & .List(i)End IfNext iEnd With

In diesem Code verwenden wir die Selected-Eigenschaft, um zu überprüfen, ob ein Element ausgewählt ist. Wenn ein Element ausgewählt ist, fügen wir es der Variablen SelectedItems hinzu.

Nachdem Sie die ausgewählten Elemente abgerufen haben, können Sie verschiedene Operationen mit ihnen ausführen, z. B. sie auf dem Bildschirm anzeigen oder mit ihnen Berechnungen durchführen:

' Вывод выбранных элементовMsgBox "Выбранные элементы: " & selectedItems' Вычисление с выбранными элементамиDim total As Doubletotal = 0For Each item In selectedItemstotal = total + CDbl(item)Next itemMsgBox "Сумма выбранных элементов: " & total

In diesem Beispiel verwenden wir die MsgBox-Funktion, um die ausgewählten Elemente auszugeben und die Summe der ausgewählten Elemente zu berechnen.

Die Arbeit mit ausgewählten ListBox-Elementen in VBA ist also ziemlich einfach. Sie können die ausgewählten Elemente mithilfe der List- oder Selected-Eigenschaft abrufen und dann je nach den Anforderungen Ihres Programms verschiedene Vorgänge mit ihnen ausführen.