Hola,
Pero, lo mismo que para comprobar la existencia del archivo usas una ruta absoluta, no sólo el nombre del archivo, en "ShellExecute()" debes también hacer lo propio. En realidad debes usar la misma ruta en ambos casos, de modo que, para empezar, podrías escribir algo así:
Código Delphi
[-]
procedure TfrmReportes.LbSpeedButton3Click(Sender: TObject);
var
filePath: String;
begin
filePath := 'D:\Giros\'+edtBusqueda.text+'.xls';
If FileExists(filePath) then begin
shellexecute(Handle, 'open', PChar(filePath), '', '', SW_show);
end;
end;