Estoy haciendo una aplicación que me genera un informe en Excel manejandolo a pelo

Todo vá perfecto, imprimir sin mostrar excel, acceder a los datos, etc... el problema viene cuando formateo el informe y lo abro para que el usuario tenga vista previa, ahi se me descojona la apliación, ya que no se como hacer para que el programa espera hasta que el usuario cierre la hoja excel y así poder liberar correctamente la referencia a excel.
Utilizo el siguiente código para abrir Excel y mostralo:
Código Delphi
[-]var
Excel: Variant;
miWBK, miWS : OleVariant;
...
begin
try
Excel := GetActiveOleObject('Excel.Application');
except
Excel := CreateOleObject('Excel.Application');
end;
Excel.Visible := false;
miWBK := Excel.WorkBooks.Open(rutaHojaExcel);
miWS := miWBK.Worksheets.Item[nombreHojaExcel];
...
Excel.Visible := true;
¡ Aquí debería esperar hasta que el usuario cierre la aplicación Excel !
try
Excel.DisplayAlerts := false;
Excel.Quit;
finally
Excel := Unassigned;
end;
end;
salu2