Ya lo he solucionado
aunque realmente no espero a que cierre Excel, simplemente espero hasta que el usuario cierre todos los libros
Este sería el código definitivo:
Código Delphi
[-]
var
Excel: Variant;
miWBK, miWS : OleVariant;
...
begin
try
Excel := GetActiveOleObject('Excel.Application');
except
Excel := CreateOleObject('Excel.Application');
end;
Excel.DisplayAlerts := false;
Excel.Visible := false;
miWBK := Excel.WorkBooks.Open(rutaHojaExcel);
miWS := miWBK.Worksheets.Item[nombreHojaExcel];
...
Excel.Visible := true;
try
while Excel.Worksheets.count > 0 do Application.processMessages;
except
try
Excel.Quit;
finally
Excel := Unassigned;
end;
end;
end;
Salu2