タイトル : Excelでファイルの中身がコピーされるバグ 投稿日 : 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の読み込み&書き込みを行う |