Excelシートコピー時のメモリ解放
- 題名: Excelシートコピー時のメモリ解放
- 著者: 小島いさお
- 日時: 2006/01/26 12:57:18
- ID: 14701
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: Excelシートコピー時のメモリ解放
- 著者: 小島いさお
- 日時: 2006/01/27 16:24:08
- ID: 14721
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: Excelシートコピー時のメモリ解放
- 著者: まどか
- 日時: 2006/01/27 16:58:24
- ID: 14724
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: Excelシートコピー時のメモリ解放
- 著者: 小島いさお
- 日時: 2006/01/28 18:11:33
- ID: 14734
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: Excelシートコピー時のメモリ解放
- 著者: 小島いさお
- 日時: 2006/01/30 15:24:47
- ID: 14761
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[8]: Excelシートコピー時のメモリ解放
- 著者: まどか
- 日時: 2006/01/30 16:30:16
- ID: 14763
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[9]: Excelシートコピー時のメモリ解放
- 著者: 小島いさお
- 日時: 2006/01/31 13:30:41
- ID: 14771
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
小島です。
以前はVB.NETにおけるExcelオートメーション操作でメモリ解放されない
対策のコーディング手法を勉強させていただき、ありがとうございました。
今回は1ページ目の定型シートを設定ページ分だけシートコピーさせたい
ですが、下記コーディングではメモリ解放されません。
どなたかご教示願えませんでしょうか。
Dim xlFilePath As String
Dim xlApp As Excel.Application
Dim xlBooks As Excel.Workbooks
Dim xlBook As Excel.Workbook
Dim xlSheets As Excel.Sheets
xlApp = New Excel.Application
xlApp.Visible = True
xlBooks = xlApp.Workbooks
xlBook = xlBooks.Open(xlFilePath)
xlSheets = xlBook.Worksheets
For sheet_count = 1 To max_sheet Step 1
Dim xlSheets_w100 As Excel.Worksheet = xlSheets(sheet_count)
Dim xlSheets_w101 As Excel.Sheets = xlBook.Worksheets
Dim xlNewSheet As Object = xlSheets_w101(1).Copy(after:=xlSheets_w100)
ReleaseCOM(xlNewSheet)
ReleaseCOM(xlSheets_w101)
ReleaseCOM(xlSheets_w100)
Next
xlApp.DisplayAlerts = False
xlBook.SaveAs(xlFilePath, xlWord.xlWorkbookNormal)
ReleaseCOM(xlSheets)
xlBook.Close(False)
ReleaseCOM(xlBook)
xlBooks.Close()
ReleaseCOM(xlBooks)
xlApp.Quit()
ReleaseCOM(xlApp)
System.Threading.Thread.Sleep(1000)
Public Sub ReleaseCOM(ByVal o As Object)
Try
If System.Runtime.InteropServices.Marshal.IsComObject(o) Then System.Runtime.InteropServices.Marshal.ReleaseComObject(o)
End If
Catch
Finally
o = Nothing
End Try
End Sub