DOBON.NETプログラミング道掲示板

No35488 の記事


■35488 / )  Re[1]: vb.netでのExcelファイルそうさ
□投稿者/ Hongliang 大御所(644回)-(2023/08/18(Fri) 20:11:07)
  • アイコン> wb=ex.workbooks.open (txtpath.text)
    Workbooksオブジェクトが解放漏れ
    > for col as integer =1 to range.columns.count
    columnsであるRangeオブジェクトが解放漏れ
    > range.cells(1,col).value =strarry(arrycount)
    cells(,)が返すRangeオブジェクトが解放漏れ
    他にもあるかもしれませんがとりあえず目についただけ。
    hoge.fuga.piyoのようにピリオドが1文に2個存在してたら漏れてると考えたほうがいいです。

    > system.runtime.InteropService.Marshal.releasecomobject(range.cells(1,col))
    意味がないです。
    上と合わせてrange.cells(,)を2回取って1回分だけ解放している計算です。
    取得したオブジェクトは変数に確保しておき、それに対してReleaseComObjectする必要があります。

    まともにReleaseComObjectを考えると正直切りがないんで、Excel操作だけを別のexeとして作成し、そっちに全部任せちゃうってのもありかもしれませんね。
    DataGridのデータを読み取って、いったんファイルに書き込んで、操作用exeはファイルから読み込んでExcelをいじる、みたいな。

    あとは、単純にセルの中身をいじるだけならClosedXmlみたいなライブラリを使用するとか。
違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -