Excel VBA等で、少量のデータでは特に問題は起きないけれども、大量データを動作させると何故か途中で止まってしまうなど、プログラムが安定して動作しないことがあります。
このような場合、オブジェクト型関数が悪さをしている可能性が高いので、プログラム中で使わなくなったオブジェクト型変数は開放するよう、なるべくプログラムでそのように記述しましょう。
Dim A as Object |
オブジェクト変数はこのように宣言し、使用の際には以下の様な記述がなされます。
Set A = Range("A1") |
使い終わったら以下のように開放するようにしましょう。
Set A = Nothing |
オブジェクトを割り当てたまま、関数を抜けたりして他の処理に移ってしまうと、オブジェクトの中身を格納したメモリはそのままで、オブジェクトへの参照情報だけ削除されるという、メモリリークのような現象が起こってしまう可能性があります。これが結果的に処理が不安定になることにつながります。
タグ: