Word/Excel-VBA: Listenfeld und Kombinationsfeld

Von: Lorenz Hölscher
Stand: 12. April 2011
Beitrag bewerten
Anmelden um Kommentare zu schreiben

Mehrspaltige Listen

Oftmals soll zu dem eigentlichen Wert noch eine Zusatzinformation angezeigt werden, bei Dateinamen zum Beispiel die Dateigröße oder das letzte Speicherdatum.

Weitere Werte in Column-Eigenschaft

Dafür wird im Entwurf die ColumnCount-Eigenschaft auf die entsprechende Anzahl erhöht, hier also auf 3. Dann kann nach je einer AddItem-Methode anhand der Column-Eigenschaft mit Angabe der Spalte zur Laufzeit der passende Inhalt zugewiesen werden, wie es im folgenden Listing zu sehen ist.

Private Sub UserForm_Initialize()
	Dim strDatei As String
	Dim i As Integer
	
	Const cstrPfad = "C:\"
	
	strDatei = Dir(cstrPfad & "*.*")
		
	With Me.Listbox1
		Do Until strDatei = vbNullString
			.AddItem strDatei
			.Column(1, .ListCount - 1) = FileLen(cstrPfad & strDatei)
			.Column(2, .ListCount - 1) = FileDateTime(cstrPfad & strDatei)
			strDatei = Dir()
		Loop
	End With
End Sub

Mehrspaltige Datei-Auswahl in Listenfeld

Da die FileLen- und die FileDateTime-Funktion den kompletten Dateinamen mit Pfad benötigen, die Dir-Funktion aber nur den Dateinamen alleine liefert, wurde der Pfad hier in eine Konstante cstrPfad ausgelagert und mehrfach aufgerufen.

Die Column-Eigenschaft benötigt als ersten Parameter die Nummer der Spalte, wobei diese mit 0 beginnen. Der zweite, optionale Parameter gibt die Zeilennummer an, wenn es nicht diejenige der markierten Zeile ist.

Am einfachsten ist der Zugriff über die Zeilen-Anzahl mit ListCount - 1, da nach AddItem die neue Zeile an letzter Position steht und auch hier die Nummerierung bei 0 beginnt.

Etwas gewöhnungsbedürftig ist sicherlich die Tatsache, dass AddItem eine Methode ist und den Parameter daher mit Leerzeichen folgen lässt, während Column als Eigenschaft einen neuen Inhalt mit Gleichheitszeichen zuweist. Es ist aber konsequent, da mit AddItem ja eine neue Zeile erzeugt wird, deren Eigenschaften dann mit Column geändert werden.

Dies ist eine Leseprobe

Möchten Sie den Beitrag komplett lesen? Dann werden Sie Probemitglied und testen Sie akademie.de 14 Tage kostenlos!

Auf Word/Excel-VBA: Listenfeld und Kombinationsfeld erfahren Sie mehr über diesen Beitrag und die weiteren Leseproben.

Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.

Ich bin bereits Mitglied
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein