VBA でのクラス オブジェクトの使用に関して、より哲学的な質問があります。クラス オブジェクトをもっと使用したいのですが、明らかな制限がいくつかあります。コミュニティがそれらを克服する方法を見つけることができれば幸いです。
クラスは、一連のコードの一部である単一のメソッドまたは複数のメソッドで作成および使用する場合にうまく機能します。問題は、次にコードがトリガーされるまで保持したい場合です。それらを保持するには、オブジェクトへの参照を保持する必要があります。通常、これはグローバル参照になります (これを行うためのより良い方法があれば、知りたいです)。
この問題は、プロジェクトがリセットされ、すべてのオブジェクト (または少なくともパブリック変数の参照) が破棄されたときに発生します。VBA プロジェクトをリセットする方法はいくつかあります。ユーザーが明示的にリセットする必要があるものは無視できます。これにより、未処理のコード エラーが残ります。独自のコードにトップ レベルのエラー ハンドラをすべてキャッチし、エラーがユーザーに表示されないようにすることができます。ただし、他の人のコードのエラーを処理する方法はありません。これでも完全なコード リセットが発生し、クラス オブジェクトが破壊されます。
これらの問題を克服する方法について何か提案はありますか?