tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Excelプロセス
投稿日: 2005/04/21(Thu) 09:56
投稿者BNR32
はじめて投稿します。

.NET VBからExcelが終了しません。
他のサイト等も調べたのですが、シート名を表示(行11〜13)したら、どのオブジェクト
を解放してよいかなかったので、投稿させて頂きました。

行11〜13をコメントにすると、Excelプロセスは残りません。
以下に開発環境とソースを記載します。

よろしくご教授お願いします。


開発環境
[OS]:Windows XP Professional
[VB]:VB.NET 2003
[Office]:Office 2000



1    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click        
2            
3        Dim xlFilePath As String = "c:\Test1.xls"   '保存ファイル名    
4        Dim i As Integer    
5
6        xlApp = New Excel.Application    
7        xlBooks = xlApp.Workbooks    
8        xlBook = xlBooks.Open(xlFilePath)    
9
10        xlSheets = xlBook.Worksheets    
11        For i = 1 To xlBook.Sheets.Count()    
12            Console.WriteLine(xlSheets.Item(i).Name)        'シート名
表示
13        Next i    
14
15        'セルの値を取得    
16        Console.WriteLine(CeGetCell(6, 3))    
17
18        'オブジェクトの解放    
19        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)    
20        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets)    
21        xlBook.Close(False)    
22        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)    
23        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks)    
24        xlApp.Quit()    
25        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)    
26
27        'ガベージ
28        System.GC.Collect()    
29
30    End Sub
31
32    Private Function CeGetCell(ByVal nRow As Integer, ByVal nCol As Integer) As String
33        Dim sRtnStr As String = ""    
34        Dim xlCells As Excel.Range    
35        Dim xlRange As Excel.Range    
36
37        xlCells = xlSheet.Cells    
38        xlRange = xlCells(nRow, nCol)    
39
40        If xlRange.Value <> vbNullString Then
41            sRtnStr = xlRange.Value
42        End If
43
44        'オブジェクトの開放
45        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlRange)    
46        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlCells)    
47
48        Return Trim(sRtnStr)
49    End Function
 

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。