次のコードは、1 行でオブジェクトを宣言してインスタンス化し、それを Nothing に設定しようとします。
Dim myObject As New MyClass
Set myObject = Nothing
MsgBox (myObject Is Nothing) 'FALSE
3 行目のメッセージは「False」です。ただし、宣言とインスタンス化を 2 行に分割すると、次のようになります。
Dim myObject As MyClass
Set myObject = New MyClass
Set myObject = Nothing
MsgBox (myObject Is Nothing) 'TRUE
突然、メッセージは「True」です。既に宣言して 1 行でインスタンス化したオブジェクトがたくさんあるので、Nothing にする必要があるかもしれません。すべての宣言を変更せずにこれを行う方法はありますか?
また、その理由を説明できる方がいらっしゃいましたら、よろしくお願いいたします。私は独学で VBA を学んでいて、その言語をよく理解していません... 私の通常の言語と比べて非常に奇妙です..