掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CreateOleObject で EXCEL を開いた後プロセスが残ってしまう (ID:48538)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
auさんありがとうございます いろいろ試してみました。プロセスを消すことはできましたが変わりにどうしてもセーブダイアログが出ます。( readOnly で開いているのに!) ・・・どうかご教示願います。 procedure TForm1.Button1Click(Sender: TObject); var excelApp, ExcelBook, workSheet: OleVariant; vrange: Variant; begin try excelApp := GetActiveOleObject('Excel.Application'); except excelApp := CreateOleObject('Excel.Application'); end; try ExcelBook := excelApp.WorkBooks.Open(Filename := 'C:\temp\test.xlsx', readOnly := True); //radonly なのになぜかセーブダイアログが出る!! workSheet := ExcelBook.WorkSheets[1]; vrange := workSheet.Range[workSheet.cells[1, 1], workSheet.cells[10, 10]].value; // ★2 sleep(500); finally // この2行必須? workSheet.cells[1, 1] := Unassigned; workSheet.cells[10, 10] := Unassigned; workSheet := Unassigned; ExcelBook := Unassigned; vrange := Unassigned; // ★1 //下記2行どちらかがあるとセーブダイアログは出ないがプロセス残る // excelApp.DisplayAlerts := False; // excelApp.ActiveWorkBook.Saved:= 1; excelApp.Quit; excelApp := Unassigned; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.