タイトル | : 複数Excelファイル間のデータやりとりについて |
記事No | : 6839 |
投稿日 | : 2008/01/17(Thu) 14:05 |
投稿者 | : おたか |
再びExcel関係で質問させて頂きます。
今VB2005にて描画ソフトを作っております。 座標点を保存しなくてはならないのですが、非常に座標点が多いので、 csvファイル(Excel2003)に座標点を保存しています。 また複数のファイル間で座標データのコピーなども行っております。
今ソースコードは Dim Ex2003 As Microsoft.Office.Interop.Excel.Application Dim Books As Microsoft.Office.Interop.Excel.Workbooks Dim Book As Microsoft.Office.Interop.Excel.Workbook Dim xlSheets As Microsoft.Office.Interop.Excel.Sheets Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
中略(線の描画とか保存とか、関数によって色々やってます)
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet) System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets) Book.SaveAs(s) Book.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(Book) System.Runtime.InteropServices.Marshal.ReleaseComObject(Books) Ex2003.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(Ex2003) と、アクセスする度にExcelを開いて見たり書いたりして毎回閉じております。
特にPaint()がかかる度にExcelファイルを開いて再描画しています。 これでは遅くなるのも当然なので、最低限のOpen()Close()にしたいのです。 しかし、再描画の際などは、すでに開いているファイルの保存されたデータを 参照して描き且つ上書き保存せねばならず、 そのような処理が正常にできるのかがわかりません。
どなたかご教授ください。
|