Excel Daten kann man mit ADO auslesen, und zwar auf 2 Arten: einerseits mit dem ODBC Treiber für Excel, oder dem OLE DB Provider für Jet, der direkt auf Excel Dateien durchgreifen kann.
Hier ein Beispiel zum Ausprobieren:
Dim cn, rs, cmd
' Öffnen einer Verbindung zur Excel Datei
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=MyFile.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
' Ein Command Objekt erzeugen und die aktive Verbindung zuweisen
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = cn
' Variante 1: definierter Zellenbereich in dem Worksheet
' cmd.CommandText = "SELECT * from 'Tabelle1$A2:C4'"
' Variante 2: benannter Bereich
cmd.CommandText = "SELECT * from 'Bereichsname'"
' mit dem vorbereiteten Command Objekt das Recordset öffnen
Set rs = cmd.Execute
Weiter Informationen finden sich im Platform SDK und der ADO Dokumentation (und einiges unter dem Bereich OLE DB).