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

タイトル 複数Excelファイル間のデータやりとりについて
投稿日: 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()にしたいのです。
しかし、再描画の際などは、すでに開いているファイルの保存されたデータを
参照して描き且つ上書き保存せねばならず、
そのような処理が正常にできるのかがわかりません。

どなたかご教授ください。

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

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