Es solo una sugerencia, pero sabiendo la ruta del archivo que quieres abrir creo que es mas sencillo usar esto
Código Delphi
[-]
uses ShellApi;
ShellExecute(Handle, 'open', PChar('C:\Arhivo.xls'), nil, nil, SW_SHOW);
Pero si quieres conseguir la ruta del ejecutable de excel, puedes usar algo como esto:
Código Delphi
[-]
uses ShellApi;
function Ejecutable(Archivo: string): string;
var
Buffer: array[0..MAX_PATH] of Char;
begin
if FindExecutable(PChar(Archivo), nil, @Buffer) > 32 then
Result:= String(PChar(@Buffer))
else
Result:= '';
end;
ShowMessage(Ejecutable('d:\Contabilidad.xls'));