Die Listbox enthält eine Liste von Elementen, von denen eins (oder auch mehrere, s. Abbildung 194) ausgewählt wird. Listboxen können mehrspaltig sein.
Die wichtigsten Eigenschaften:
· Name
Mit diesem Namen kann das Element per Programm
angesprochen werden.
· ControlSource
In diese Zelle der Excel-Tabelle wird das
ausgewählte Element (bzw. der Index des gewählten
Elements) ausgegeben. (s.a. BoundColumn)
· Value
Der Wert des ausgewählten Elements bzw. der
Index des Werts (beginnend mit Null)
· Text
Die Spalte, die der Benutzer sieht. Kann von
Value abweichen, abhängig von TextColumn und BoundColumn
· ListIndex
Index des
markierten Elements
· BoundColumn
Kennzeichnet die Spalte (beginnend mit 1
für die linke Spalte), aus der das Element ausgewählt werden soll.
Ist
BoundColumn =0, wird nur ein Index ausgegeben, der die Stellung des gewählten
Elements in der Liste wiedergibt.
· ColumnCount
Gibt die Anzahl der Spalten an, die
angezeigt werden soll.
Wenn ColumnCount =0, werden keine Spalten angezeigt,
bei -1 werden alle verfügbaren Spalten angezeigt. (max. 10)
· RowSource
Gibt die Quelle an, die eine Liste für ein
Kombinationsfeld-Steuerelement (ComboBox) oder Listenfeld-Steuerelement
(ListBox) zur Verfügung stellt.
Hier wird der Bereich der
Excel-Tabelle ausgewählt, der die Elemente enthält, die in die Listbox geladen
werden sollen.(z.B. A1:C6)
· TextColumn
gibt die Nummer der Spalte an, die der
Benutzer sehen soll
· ListCount
Die Anzahl der Elemente in der Liste
· TopIndex
Index des Elements, das im sichtbaren Bereich
des Listenfeldes an oberster Stelle steht
· List
Mit List(i,j) kann auf die Elemente der Liste
zugegriffen werden
· AddItem
Fügt ein Element zu einer Listbox hinzu
· Selected
Mehrere Elemente einer Listbox können
gleichzeitig ausgewählt werden, wenn die Multiselect-Eigenschaft auf True
gesetzt wird.
· RemoveItem
Das ausgewählte Element wird gelöscht.
Soll
der gesamte Inhalt der Liste gelöscht werden, so benutzt man die Methode
Clear.
Beispiele für Listboxen:
Abbildung 191, Listbox mit Werten aus der Tabelle laden
Set Bereich = Worksheets("Tabelle2").Range("G1:M1")
For Each C In Bereich
ListBox1.AddItem C
Next C
Das Codebeispiel zeigt, wie Elemente mit der AddItem –Eigenschaft geladen werden können.
Beispiel: Mehrspaltige Tabellen in einer Listbox dargestellen:
Abbildung 192, Mehrspaltige Listbox mit RowSource Eigenschaft füllen
ListBox1.ColumnCount = 3’ Listbox mit drei Spalten
ListBox1.RowSource = "B5:D10"’ Datenquelle
Abbildung 193, BoundColumn kennzeichnet die Spalte
Cells(6, 1).ClearContents
ListBox1.ControlSource = "a6"
'In diese Zelle wird ausgewähltes Element ausgegeben
ListBox1.BoundColumn = 1
Die Eigenschaft, die eine Excel-Zelle mit der Listbox verbindet, heißt nicht LinkedCell, sondern ControlSource.
Mit BoundColumn =1 wird das Element Donnerstag (Spalte 1) in die Tabelle2 eingefügt, BoundColumn =0 fügt den Index ein (im Beispiel: 3)
Abbildung 194, Mehrspaltige Listboxen, z.T. mit Multiselekt-Eigenschaft
Die beiden Listboxen werden mit einem Array gefüllt, Listbox1 ist horizontal, Listbox2 vertikal ausgerichtet.
ListBox1.List() = MyArray
ListBox2.Column() = MyArray
Vorstehende Codezeilen zeigen die Methode.
Wenn die Listbox zulassen soll, dass mehrere Elemente ausgewählt werden können, muss die Multiselekt-Eigenschaft gesetzt werden.
Abbildung 195, Elemente im Sichtfeld positionieren
ListBox1.TopIndex = 2
Die Eigenschaft TopIndex legt fest, welches Element einer größeren Liste zuoberst im sichtbaren Fenster erscheinen soll.
Abbildung 196, Kalender der nächsten Woche in der Listbox
For i = i To 7 + i - 1 'eine Woche, beginnend mit Sonntag
MeinArray(y, 0) = Format(Date + i, "dd.mm.yy")
MeinArray(y, 1) = Format(Date + i, "dddd")
y = y + 1
Next i
With ListBox1 ' Array in Listbox laden und den Sonntag markieren
.ColumnWidths = 60 'Spaltenbreite
.List() = MeinArray
.ListIndex = 0
End With
Ein Array wird aufgebaut und in die Listbox geladen.
Abbildung 197, Reihenfolge der Listenelemente verändern
Private Sub spSchieben_SpinUp()
'Ausgewähltes Element wird nach oben verschoben
Dim A, B
A = lstFrei.ListIndex
If A = -1 Or A = 0 Then
Exit Sub
End If
B = lstFrei.List(A)
lstFrei.List(A) = lstFrei.List(A - 1)
lstFrei.List(A - 1) = B
lstFrei.ListIndex = lstFrei.ListIndex - 1
End Sub
Mit der Eigenschaft ListIndex kann die Stellung der Elemente in der Liste manipuliert werden.
Die ListIndex-Eigenschaft enthält einen Index der ausgewählten Zeile in einer Liste. Die Werte von ListIndex liegen im Bereich von -1 bis zur Gesamtanzahl der Zeilen in einer Liste - 1 (d.h. ListCount - 1). Wenn keine Zeilen ausgewählt sind, gibt ListIndex den Wert -1 zurück. Wenn der Benutzer eine Zeile in einem Listenfeld-Steuerelement oder Kombinationsfeld-Steuerelement auswählt, legt das System den Wert für ListIndex fest. Der Wert für ListIndex der ersten Zeile in einer Liste ist 0, der Wert der zweiten Zeile ist 1 usw.
Nicht gefunden, was Sie suchen? Dann geben Sie hier Ihren Suchbegriff ein!