| 
    
     |  | こんばんは、YU-TANG です。 
 細かいことですが、もしかするとその細かいことを気にされている
 かもしれないので、念のため。
 
 ▼UO3 さん:
 > Exitで抜けるタイミングでEnd Withが処理している
 > 【参照の解放】がなされるから気にする話ではないということですね。
 
 厳密に言うと、End With が行っているのは単にオブジェクトの修飾補完を
 終了するだけです。
 それに伴って参照が解放される場合もありますが、されない場合も
 あります。なので、End With を通ったからといって、参照の解放を
 当てにしない(期待しない)方が無難です。
 
 たとえば、ichinose さんのお書きになった【64192】のサンプルを
 お借りするとして。
 
 Sub test2()
 With New Scripting.Dictionary    ' 事前バインディング(Scripting.Runtime ライブラリに参照設定)
 .Add 1, GetClass1
 Debug.Print "Break 1"
 End With
 Debug.Print "Break 2"
 End Sub
 
 Sub test3()
 With CreateObject("Scripting.Dictionary")    ' 実行時バインディング(参照設定不要)
 .Add 1, GetClass1
 Debug.Print "Break 1"
 End With
 Debug.Print "Break 2"
 End Sub
 
 Function GetClass1() As Class1
 Set GetClass1 = New Class1
 End Function
 
 test2 と test3 を実行してイミディエイト ウィンドウを確認されると、
 なかなか興味深い出力結果が得られると思います。
 
 それでは。
 
 |  |