|
>Dim strVar As String
>
>っと変数が宣言されていたとします。
>
>この変数に使われたメモリーは、その変数を使う処理が行われた後に、自動で開放されるのでしょうか?
自動で解放されます。しかし、
厳密には「処理が行われた後」ではなく、変数の有効期間が終わったときです。
例えば、Function内で宣言すれば、そのFunctionが終了するとき解放されます。
フォームモジュールで宣言すれば、フォームを閉じるときに解放されます。
標準モジュールでPublic宣言するとAccess自体を閉じるまで解放されません。
詳細はヘルプで、「変数の有効期間の概要」のトピックを検索してみてください。
>色々なHPを見て、参考にしながら、改修を行っているのですが、多くのHPが、
>
>Set strVar = Nothing
>
>と、その変数が使われる処理が抜ける際に書かれ、メモリを開放しているようなのです。
これは、オブジェクト変数の場合ですね。
最初に例示されたString型などの通常の変数ではそのような
記述はできません。
オブジェクト変数の場合も有効期間が終わると自動で解放されます。
ですので通常は必要のない記述です。
たまにしているのを見かけますが、それは念のため、とか、気分的な
要素が多いように思います。
一つの使い道としては、
オブジェクト変数を標準モジュールでパブリック宣言して、共有して
使おうとするときに、使い終わったら
Set objVar = Nothing
と明示的に解放して、他の場所で使うときに、そのオブジェクトが
有効かどうか、
If objVar = Nothing Then
と判断するということはあるかと思います。
|
|