VB5-VB6
Von: Thorsten Dörfler
Auflistungen begegnen einem bei der täglichen Arbeit mit Visual Basic ständig. Sei es beim ListView, TreeView oder bei Verwendung von benutzerdefinierten Auflistungen mit Hilfe des Collection-Objekts. Einträge legt man in diesen Auflistungen nach Möglichkeit mit einem eindeutigen Schlüssel (Key) ab, um so auf einen bestimmten Eintrag jederzeit schnell zugreifen zu können.
Aber keine dieser Auflistungen bietet eine Exists-Methode an, mit der sich überprüfen ließe, ob ein bestimmter Schlüssel bereits vergeben wurde. Man kann nur sein Glück versuchen und einen eventuell auftretenden Fehler abfangen. Dieses Vorgehen ist auch Basis für folgende universelle Funktion, die angibt, ob ein Schlüssel bereits in einer beliebigen Auflistung vorhanden ist:
Public Function KeyExists(ByRef Collection As Object, _ ByRef Key As Variant) Dim lDummy As Long On Error Resume Next lDummy = VarType(Collection.Item(Key)) KeyExists = CBool(Err.Number = 0) Err.Clear End Function
Beispiel: Collection-Objekt
Dim lCol As Collection Set lCol = New Collection lCol.Add "Hallo Welt", "HW" Debug.Print KeyExists(lCol, "HW")
Beispiel: ListView ListItems-Auflistung
ListView1.ListItems.Add , "Item1", "Eintrag 1" Debug.Print KeyExists(ListView1.ListItems, "Item1")