Excel & Ole -> программа выполнила недопустимую ..
2053
3
var
Excel:Variant;
begin

Excel:=Unassigned;
Excel:=CreateOleObject('Excel.Application');
Excel.DisplayAlerts:=false
WBook:=Excel.WorkBooks.Add
//...и.т.д.
//потом завершаем работу

Excel:=Unassigned

{вот тут на win98 вылетает стандартное виндовая ошибка "программа выполнила недопустимую операцию и будет закрыта...". Причём ругается именно на Excel, что он выполнил недопустимую операцию.}

end;

P.S. Дельфи5. Воспроизводится только на машинах с windows98 от версии MS Office не зависит.
CoolUser
я по такой схеме работаю, глюков нет

uses OleServer, Excel2000, OleCtnrs, ComObj....
var
MSExcel: TExcelApplication;
ExcelWSh: ExcelWorksheet;
ExcelWB: ExcelWorkbook;
.....
begin
MSExcel:=TExcelApplication.Create(self);
MSExcel.ConnectKind:=ckNewInstance;
MSExcel.AutoQuit:=true;
MsExcel.WindowState[LOCALE_USER_DEFAULT]:=xlNormal;
MsExcel.Left[LOCALE_USER_DEFAULT]:=Form1.Left+140;
MsExcel.Top[LOCALE_USER_DEFAULT]:=Form1.Top+65;
MSExcel.Width[LOCALE_USER_DEFAULT]:=Form1.Width-410;
MSExcel.Height[LOCALE_USER_DEFAULT]:=Form1.Height-320;
MSExcel.Visible[LOCALE_USER_DEFAULT]:=true;
MSExcel.Workbooks.Open(filename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,1);
ExcelWB:=MSExcel.Workbooks:1: ;
ExcelWB.Activate(LOCALE_USER_DEFAULT);
......
end;

Закрываю

MSExcel.Destroy;
CoolUser
Excel:=Unassigned;
А какой смысл в этой строчке? По моему она вообще не нужна.
craxx
Нужна, проблема была в том, что я не "освобождал" переменные WBook, WSheet и.т.д.