Desconozco si es posible hacer esto utilizando ADO. A fin de cuentas un libro de Excel no es propiamente una base de datos cuyas tablas sean las hojas.
Prueba a ver si te sirve esto:
Código:
uses
ComObj;
...
procedure HojasExcel(Archivo: String; Lista: TStrings);
var
Excel: OleVariant;
Libro: OleVariant;
I: Integer;
begin
Excel := CreateOleObject('Excel.Application');
Libro := Excel.WorkBooks.Open(Archivo);
try
Lista.Clear;
for I := 1 to Libro.Worksheets.Count do
Lista.Add(Libro.Worksheets.Item[i].Name);
finally
Libro.Close;
end;
end;
Al procedimiento le pasas el nombre del archivo de Excel y un objeto de tipo TStrings para recibir los nombres de las hojas, por ejemplo un ListBox:
Código:
HojasExcel('archivo.xls', ListBox.Items);
Este código me funciona bien con Excel 2000.
// Saludos