タイトル : Re^3: Excelの終了時にプロセスが残ったままになります。 投稿日 : 2003/12/12(Fri) 16:42 投稿者 : しんじ
すみません。 コードだけ見て記載してので間違えていました。汗 EXCELはワークシート、ワークブック、アプリケーションオブジェクトがありますので 起動する順番とは逆の手順で終了させなければいけません。 EXCELを起動する時は Dim ExcelAp AS Excel.Application Dim ExcelWb AS Excel.Workbook Dim ExcelWs AS Excel.WorkSheets と宣言されCreateオブジェクトからWorkBookをオープンにし、ワークシートの インスタンスを設定して、EXCEL処理を行い、クローズという流れになるのが一般的です。 エクセルをクローズする時は、ワークシート、ワークブック、エクセル の順序で終了していってガベージコレクションしてあげると終了します。 サンプルを作って試してみたところ私のPCでは正常に終了しました。 もっといい方法があるかもしれないのですが、私のスキルでは下記の 用になりました。 〜省略 〜ファイルを先に保存する。 ExcelAp.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelWs) System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelWb) System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelAp) ExcelWs = Nothing ExcelWb = Nothing ExcelAp = Nothing GC.Collect() |