|
おはようございます。
End Withでオブジェクトが開放されない
これをループさせるとどうなるのだろう。
Sub test3()
Dim i As Long
Do Until i = 5
Debug.Print "b1"
With CreateObject("Scripting.Dictionary")
.Add 1, GetClass1
End With
Debug.Print "b2"
i = i + 1
Loop
End Sub
と思いやってみると・・・、
2回目以降の
With CreateObject("Scripting.Dictionary")
で参照しているオブジェクトを開放し、新たにインスタンスを作成している
ように見えます。
なんとなく、きちんとした仕様のように見えます。
では、この現象(End Withでオブジェクトを開放する場合としない場合が存在する)
の理由は? 何故? という疑問が残りますねえ!!
インスタンス作成時の処理速度に関係があるのでしょうかねえ!!
これも CreateObjectを使えば、End Withで開放されない
が間違いないと仮定してですが・・・。
|
|