タイトル | : Excelでファイルの中身がコピーされるバグ |
記事No | : 7503 |
投稿日 | : 2008/05/13(Tue) 14:08 |
投稿者 | : おたか |
質問します。 Form1にてパスsのファイルを操作しています。 その後 System.Runtime.InteropServices.Marshal.ReleaseComObject(Book) としてBookを閉じています。
その後Form2を開いて以下の関数a()をCallしています。 すると、ファイルsのファイル名は変わっていないのですが、 ファイルsの中身は以下のファイルdirにすり替わってしまいます。 ファイルsとファイルdirは別のディレクトリに存在してます。 以下のように、念のためdirを呼ぶ前にsを明示的に閉じてみましたが、 現象は変わりません。
ファイルsとファイルdirは全然違うファイルなので、中身がコピーされては困ります。 どなたか防ぐ方法を教えてください。
Private sub a() Dim Book As Microsoft.Office.Interop.Excel.Workbook Dim xlSheets As Microsoft.Office.Interop.Excel.Sheets Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet Dim r1 As Microsoft.Office.Interop.Excel.Range Dim BookNow As Microsoft.Office.Interop.Excel.Workbook
'最初に今開いているファイルを閉じる(本当は閉じているはず) Dim BookNow As Microsoft.Office.Interop.Excel.Workbook = Books.Open(s) BookNow.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(BookNow)
dir = GetAppPath() dir = dir & "\h8.xls" Book = Books.Open(dir) 'ファイルを呼び出す xlsheets = Book.Worksheets()
'Excelファイルdirの読み込み&書き込みを行う
|