良くあるのは
○オブジェクトの開放し忘れ
→処理の終わりに、正しくオブジェクトを開放する。
終了用のメソッド(.Closeなど)がある場合は必ずそれを実行する。
特に、エラー処理に飛んだ場合や Exit Functionする場合にありがちですね。
あと、何の考えもなしに Endステートメントを実行している箇所などもチェックしてみるといいかも。
○オブジェクトの循環参照
→AオブジェクトがBオブジェクトを参照し、BオブジェクトがAオブジェクトを参照するような場合。
---A.CLS ---
dim mobjB as object
sub class_initialize
set mobjB = new B
mobjB.Atatch Me
end sub
---End of A.CLS---
---B.CLS---
dim mobjA as object
sub Atatch(objA as object)
set mobjA = objA
end sub
---End of B.CLS---
こんな感じのコードを書くと、mobjA, mobjBに割り当てられた領域は、プログラムが終了するまで開放されません。
○不適切なプロパティのクラスを使用している。
→ActiveX DLLのプロジェクト中で、InstancingがMutliUseになっているクラスをNewしてしまっているとか…
お礼
ご返事遅くなりまして申し訳ありません。 詳細に説明して頂き、初心者の私にはすごく助かります。 ご回答の内容を参考に調査してみたいと思います。 またお尋ねすることがあるかと思いますのでその時はよろしくお願い致します。