OLEでの例外処理について


残暑ですね  2009-06-24 06:56:37  No: 34890

OLEにてExcelを起動し、セルに値を代入してる時に
例外エラーが発生した場合、起動したExcelを終了したいのですが、
タスクマネージャーのプロセスにEXCEL.EXEが残ったままになってしまい
ます。どうにかこのEXCEL.EXEを終了させることはできないでしょうか?
EXCEL.EXEが残ったままだと他のEXCELが起動しませんので、非常に困って
います。
環境
Delphi7
Xp
Excel2002

procedure TForm1.Button1Click(Sender: TObject);
var Excel,WorkBook,WorkSheet :Variant;
begin
  try
    Excel := CreateOleObject('Excel.Application');
    WorkBook := Excel.Workbooks.Add;
    WorkSheet := WorkBook.WorkSheets[1];
    Excel.Visible:=False;

    WorkSheet.Range['A1']:='あああああ';
    WorkSheet.Range['B1']:='いいいいい';

    Excel.Visible:=True;
 except
    Showmessage('エラー');

    if not VarIsEmpty(Excel) then begin
      WorkBook  :=unAssigned;
      WorkSheet :=unAssigned;
      Excel  :=unAssigned;
      Excel.Quit;
    end;
 end;

end;


HOta  2009-06-24 15:29:16  No: 34891

これだと例外が発生しないと終わりません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加