掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CreateOleObject で EXCEL を開いた後プロセスが残ってしまう (ID:48530)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして EXCELをCreateOleObject で開いた後開放してもダミープロセス?が残ってしまう現象に悩んでいます。 下記に再現コードを載せます。 このままだとプロセスは残りません(タスクマネージャを開いて観察しています) しかし、★1,2のコメントをはずすとプロセスが残ったままになります。(プログラムを終了すると消えます) ★のコードは高速にアクセスする常套手段のようです。■のコードでアクセスするより2桁ほど早いです。 想像しますに、variantの開放がうまくできていないのではないかとおもいますが回避手段がわかりません。 どうか宜しくお願いします。 procedure TForm1.Button1Click(Sender: TObject); var Excel: OleVariant; excelApp, ExcelBook, workSheet: OleVariant; vrange: Variant; MaxRow: Integer; Ctmp: Variant; begin Excel := CreateOleObject('EXCEL.Application'); try excelApp := Excel.application; ExcelBook := excelApp.WorkBooks.Open('C:\temp\test.xlsx', False); workSheet := ExcelBook.WorkSheets[1]; // vrange := workSheet.Range[workSheet.cells[1, 1], workSheet.cells[10, 10]].value; //★2 Ctmp := workSheet.Cells[1, 1].value; //■ Memo1.Lines.Add(vartoStr(Ctmp)); sleep(500); finally excelApp.Quit; Excel := Unassigned; excelApp := Unassigned; ExcelBook := Unassigned; workSheet := Unassigned; // vrange := Unassigned; //★1 end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.