Un saludo a todos de nuevo,
después de leer la información he probado el código y me salta un 'OLE error 800A03EC' al leer el valor de la casilla. Según he leído la automatización funciona a partir de excel 2007 con formato .xlsx, pero mi programa debe funcionar con archivos .xls, que son los que yo uso para las pruebas. Dejo aquí el código por si no fuese problema de la extensión del archivo:
Código Delphi
[-]procedure TMuestraArchivoForm.procesarArchivo;
var
p: integer;
x: String;
listaContenidoExcell: TStringList;
Excel, WrkS, WrkB: OLEVariant;
Row, Col: Integer;
Rows, Cols: Integer;
begin
p := 0;
Excel := CreateOleObject('Excel.Application');
Excel.Workbooks.Open(FRutaArchivo);
WrkS := Excel.Worksheets[1];
Cols := WrkS.UsedRange.Columns.Count;
Rows := WrkS.UsedRange.Rows.Count;
repeat
listaContenidoExcell := TStringList.Create;
for Row := 1 to Rows + 1 do
begin
x := Excel.ActiveSheet.Cells[Row, Col].Value;
if x <> EmptyStr then
listaContenidoExcell.Add(x);
end;
inc(p);
FreeAndNil(listaContenidoExcell);
until p = Cols + 1;
Excel.Quit;
end;
El fallo me da en la línea 'x := Excel.ActiveSheet.Cells[Row, Col].Value;'
Muchas gracias de nuevo por todo, seguiré haciendo pruebas.