| 
    
     |  | こんにちは 
 オブジェクト変数は、オブジェクトの参照を記憶するものですよね。
 set オブジェクト変数=Nothing
 というのは、オブジェクト変数にNothingオブジェクトへの参照を記憶する
 ということです。
 これによって、元のオブジェクトへの参照がこのオブジェクト変数に関しては
 なくなります。
 オブジェクトのインスタンス(実体)は、どこからも参照されなくなったときに
 解放されます。
 したがって、もともとオブジェクトを参照していた変数が、このオブジェクト変数だけだったら、Nothingを参照することで元のオブジェクトへの参照がなくなるので、この時点でオブジェクトのインスタンスも解放されます。
 
 通常は、プロシージャレベルの変数なら、プロシージャを抜けた時点で参照が解除されるので、Nothingへの参照をsetする必要はありません。
 でも、オブジェクトへの参照が複雑になってくると、
 たとえば、オブジェクトが、自分自身への参照を持っている場合、そのオブジェクトへの参照をなくしても、自分自身で参照しているためにインスタンスは解放されず、
 しかもプロシージャからはそのオブジェクトを参照できない、幽霊オブジェクトが残ってしまうことになります。
 
 なので、参照の仕組みがよく分からないようなときは、不要になった時点でNothingをsetしておくのが安全です。
 幽霊オブジェクトが残ると動作が不安定になったりしますので、そうなってから片っ端からNothingをつけてまわるのも一案ですが、マウスが利かなくなったり、することもありますので、こまめに指定するほうがいいと思いますよ。
 
 
 |  |