投稿日 | : 2007/05/21(Mon) 16:50 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: モジュール |
> コードをすっきりさせようと思いました。
その手法の場合、「コントロール配列」が使用できなくなるという縛りがあるので、ご注意あれ。
> どこがよくないのでしょうか?
変数の有効期間の問題ですね。
Class1 オブジェクトが、プロシージャ内で宣言された「ローカル変数」であるため、
プロシージャ終了と同時に、クラスのインスタンスが破棄されてしまうためです。
クラス側に下記のようなコードを書いておくと、問題点が見えてくるでしょう。
Private Sub Class_Initialize()
Debug.Print "==>作成:"; ObjPtr(Me)
End Sub
Private Sub Class_Terminate()
Debug.Print "<==破棄:"; ObjPtr(Me)
End Sub
この場合は、変数宣言をフォームの宣言セクションに移し、
モジュール レベルの変数としてみてください。それで解決できるかと思います。