タイトル : Re^5: Mutex使用時にExcelのプロセスが終了しない 投稿日 : 2007/11/05(Mon) 13:41 投稿者 : むなり
Sub 〜 End Subの間で、下記のようにReleaseComObjectを使用 -------- Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlWbs As Microsoft.Office.Interop.Excel.Workbooks Dim xlWb As Microsoft.Office.Interop.Excel.Workbook Dim xlWss As Microsoft.Office.Interop.Excel.Sheets Dim xlWs As Microsoft.Office.Interop.Excel.Worksheet xlApp = New Microsoft.Office.Interop.Excel.Application xlWbs = xlApp.Workbooks xlWb = xlWbs.Add xlWss = xlWb.Worksheets xlWs = xlWss.Item(1) System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWs) System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWss) xlWs = Nothing xlWss = Nothing xlWb.Close(False) System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWb) xlWb = Nothing xlWbs.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWbs) xlWbs = Nothing xlApp.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) xlApp = Nothing --------- これにより、Mutexの二重起動防止のスクリプトを含んでいても、 プロセスが終了するようになりました。 一番最初のスクリプトで、二重起動防止を使用してない場合にプロセスが終了するのは、 終了しているように見えてるだけ・・なんでしょうか。 どこか見えない部分で不都合が残ったままとなるのでしょうか・・。 二重起動防止のスクリプトを入れるまで気付かなかった部分ですので、 今まで私が作ったスクリプトも問題ないようにみえてるため、見直しが必要ですね・・。 (特にReleaseComObjectを使用してませんでしたが・・) |