Hola,
Tal parece que esto es
una falla de FPC. En este mismo enlace mencionan que el problema se ha resuelto con versiones posteriores, pero parece que no es tan sencillo hacer que la última versión estable de Lázarus trabaje con otra versión de FPC que no sea la 2.4.x. Sin embargo, ahí mismo menciona
una versión "snapshot" de Lázarus que utiliza la versión 2.5.1 de FPC.
Instalando esa, he podido ejecutar correctamente un código similar:
Código Delphi
[-]
const
xlCellTypeLastCell = $0000000B;
var
Excel, Hoja, Rango: OleVariant;
NumFilas, NumColumnas: Integer;
begin
Excel := CreateOleObject('Excel.Application');
try
Excel.Workbooks.Open('c:\ruta\al\archivo.xlsx');
Hoja := Excel.Workbooks[1].Worksheets[1];
Hoja.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
NumFilas := Excel.ActiveCell.Row;
NumColumnas := Excel.ActiveCell.Column;
Rango := Excel.Range['A1', Excel.Cells.Item[NumFilas, NumColumnas]].Value;
Showmessage(Rango[1, 1]);
finally
Excel.Quit;
end;
end;
// Saludos