Home > 即効テクニック > Excel VBA > その他関連のテクニック > 「Set a = Nothing」とする理由

即効テクニック

その他関連のテクニック

「Set a = Nothing」とする理由

(Excel 97/2000)
次のマクロのように、Setステートメントで変数へオブジェクトへの参照を代入します。
Sub Sample()
    Dim myRange As Range
    
    Set myRange = Range("A1")
    
    MsgBox myRange.Value
    
    Set myRange = Nothing
    
End Sub
変数myRangeが参照されているときは、システムリソースおよびメモリリソースが使われている状態です。
Nothingを代入することで、変数と特定のオブジェクトとの関係を無効にして、使われていたシステムリソースおよびメモリリソースを解放します。

<f氏の解説>
Setステートメントで設定してあげた「参照」は解除してあげないとずっとソレを見てしまうので、作業効率が多少落ちます。そこで、Set a = Nothing の様にして解除します。
例をあげるとこんなカンジです。いま、仮にExcelの性能がシブガキ隊3人分だとします。(スンマセン)
その時に

 Set やくまる = はなまるマーケット
 Set モックン = 裕也さんのお守り

と、割り当ててしまうと残りの仕事はフックン1人でしなければならなくなり、非常に作業効率が落ちます。ある意味、ジタバタしてるうちに世紀末が来てしまうのです。そんなわけで、必要な作業が終わったら参照を解除してあげた方が効率よく仕事ができるわけです。