| 
    
     |  | こんにちは。 以前、メモリの解放について投稿しましたが、
 未だ完全には解決に至らないためもう一度質問します。
 
 うまくオブジェクトのメモリが解放が出来ていないようです。
 それで、メモリをより使用しないようなオブジェクトの宣言方法を
 教えてください。
 
 現在、AプロシージャからBプロシージャを呼んでいます。
 Aでは、String型の名称しかもっていないので、
 それをBに引き渡す際にのみWorksheetにしています。
 以下のようです。
 
 Private Sub A
 Dim WS_nm As String
 
 WS_nm = "Sheet1"
 Call B( ThisWorkbook.Sheets(WS_nm) )
 End Sub
 
 Private Sub B (WS As Worksheet)
 ・
 ・
 End Sub
 
 この場合、Bでは、WSは新しく生成されているのでしょうか?
 B中では、Set WS = Nothing は行っていません。
 この場合、メモリはBプロシージャを抜けたあとに解放されているのか・・。
 
 それとも、
 
 Private Sub A'
 Dim WS As WorkSheet
 
 Call B( WS )
 End Sub
 
 と、ワークシートを引数として引き渡した方が、
 メモリ使用量はすくないのでしょうか?
 
 また、グローバルに宣言をして、
 引数で引き渡すのを止めた方がいいのでしょうか?
 
 どうも、そのあたりのことがよくわかりません。
 メモリを少なく使うVBA作成方法などの書いてあるサイトなど
 でもよいので、教えてください。
 
 お願いします。
 
 |  |