VB.NETでメモリにプロセスが残らない、エクセルファイルの処理について
VB.NETでエクセルファイルを処理する場合、エクセルのプロセスがメモリ上に残るときがあります。
プロセスにエクセル(EXCEL.EXE)が残ると、エクセルを扱うプログラムでエクセルファイルのアクセスを行い、 同時にエクセルを起動して処理したい場合に不都合が発生します。
VB.NETプログラムからエクセルを扱う場合は、以下のソースの様にエクセルアプリケーションオブジェクト、 ブックスオブジェクト、ブックオブジェクト、シートオブジェクト等を利用しますが、それぞれ使用した後では オブジェクトを廃棄してやる必要があります。
また、オブジェクトを2回参照すること、つまり"."(ドットでの参照)の参照は1回のみにします。
さらに、処理を終えるところではブックオブジェクトはCloseし、エクセルアプリケーションオブジェクトはQuitする様にします。
尚、今回のエクセルの処理で煩雑にならないように以下の関数を定義しています。
・「_ReleaseComObject」はオブジェクトの参照を解放するためのローカル関数です。
・「_ObjToStr」はオブジェクトの値から文字列へ変換するためのローカル関数です。
コメント