|  | 分類:[.NET 全般]
 
 
 いつもお世話になっております。
VB.NET 2003+WEBアプリケーションにて
Excelファイルを参照しているのですが
『Excel.exe』がプロセスに残り続けてしまう問題で悩んでいます
プログラムは以下のように作成しているのですが
[Cellデータの取得]の部分(■〜■の間)をコメントアウトして動かした場合は
最後の(xlApplication)の解放でプロセス上から消えるのですが
[Cellデータの取得]の部分を動かすと、プロセス上から消えなくなってしまいます
xlRange を使用した場合のみプロセスが残っているという事は
xlRange オブジェクトの解放の仕方が悪いのでしょうか?
================================================================================
        Dim strBUF As String
        Dim xlApplication As Excel.Application
        Dim xlBooks As Excel.Workbooks
        Dim xlBook As Excel.Workbook
        Dim xlSheets As Excel.Sheets
        Dim xlSheet As Excel.Worksheet
        Dim xlRange As Excel.Range
        'エクセルアプリケーションの開始
        xlApplication = CreateObject("Excel.Application")
        'エクセルブックの設定
        xlBooks = xlApplication.Workbooks
        xlBook = xlBooks.Open("C:\Hoge.xls")
        'エクセルシートの設定
        xlSheets = xlBook.Worksheets
        xlSheet = CType(xlSheets(2), Excel.Worksheet)
        '非表示
        xlApplication.Visible = False
        '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
        '[Cellデータの取得]
        xlRange = CType(xlSheet.Cells(1, 1), Excel.Range)
        strBUF = xlRange.Text
        Label1.Text = strBUF
        '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
        'Rangeオブジェクトの開放
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlRange)
        'Sheetオブジェクトの開放
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets)
        xlSheets = Nothing
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)
        xlSheet = Nothing
        'Bookオブジェクトの開放
        xlBook.Close(False)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
        xlBook = Nothing
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks)
        xlBooks = Nothing
        'Excelの終了
        xlApplication.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApplication)
        xlApplication = Nothing
================================================================================
 |