I can't say for sure how it would work for a huge list but maybe something like this will work for you.
VB Code:
  1. Private Sub Form_Load()
  2.     List1.AddItem "Peaches"
  3.     List1.AddItem "Nectarines"
  4.     List1.AddItem "Pears"
  5.     List1.AddItem "Quinces"
  6.     List1.AddItem "Cherries"
  7.     List1.AddItem "Apricots"
  8.     List1.AddItem "Apples"
  9.     List1.AddItem "Plums"
  10.     List1.AddItem "Figs"
  11.     List1.AddItem "Kiwis"
  12.     List1.AddItem "Olives"
  13.     List1.AddItem "Clementine"
  14.     List1.AddItem "Kumquat"
  15.     List1.AddItem "Minneola"
  16.     List1.AddItem "Mandarin"
  17.     List1.AddItem "Orange"
  18.     List1.AddItem "Satsuma"
  19.     List1.AddItem "Tangarine"
  20.     List1.AddItem "Tangelo"
  21.     List1.AddItem "Lemon"
  22.     List1.AddItem "Rough Lemon"
  23.     List1.AddItem "Lime"
  24.     List1.AddItem "Leech Lime"
  25.     List1.AddItem "Grapefruit"
  26.     List1.AddItem "Pummelo"
  27.     List1.AddItem "Sweety"
  28.     List1.AddItem "Ugli"
  29. End Sub
  30.  
  31. Private Sub Text1_Change()
  32. Dim i As Integer
  33.  
  34.     For i = List1.ListCount - 1 To 0 Step -1
  35.         If UCase(Left(List1.List(i), Len(Text1.Text))) <> UCase(Text1.Text) Then
  36.             List1.RemoveItem i
  37.         End If
  38.     Next i
  39. End Sub