|
▼木木木 さん:
おはようございます。
>大まかに、上記のようなコードを書きました。
>GetAの戻り値をSetで設定しているのですが、表の取得成功時に、
> Set GetA = Nothing
>で解放するタイミングが存在しないと思うのですが、関数の場合は解放しなくてもいいものなのでしょうか。
GetAは、インターフェースにすぎないので不要だと思いますよ!!
(Fucntion定義のGetAに値を設定することもできませんしね)
別の例で・・・、
新規ブックにて、
クラスモジュール(Class1)に
Option Explicit
Private Sub Class_Terminate()
Debug.Print "ok"
End Sub
標準モジュールに
Option Explicit
Sub main()
Call geta
MsgBox "stop"
End Sub
Function geta() As Class1
Set geta = New Class1
End Function
このmainを実行すると、メッセージ「stop」が表示された時点で
イミディエイトウインドーには、okが表示されますよね?
この事から、データを受け取る変数がない場合は、インスタンスが
開放されている事がわかります。
Sub main2()
Dim a As Class1
Set a = geta
MsgBox "stop"
Set a = Nothing
End Sub
↑このコードとイミディエイトウインドーに okと表示されるタイミングを
比較してみてください。
|
|