VBA:FileSystemObjectは解放した方がいい

2013年4月3日水曜日 - 投稿者 さい 時刻: 14:11
VBAの話です。
FileSystemObjectは解放すべきかどうなのか今までよく判らなかったんですが、解放した方がいいですね。
コードの中で一度や二度使って終了するなら解放しなくていいと思いますが、ループで繰り返し使う場合はプログラムが途中で止まってしまったりします。
私の場合はフォルダにあるファイルを1件ずつ検索し、ファイル名のリストと合致していたらある処理をする・・・という関数を、合計2000回くらいループで実行させてたんですが、プログラムの実行が終わっているのにwindowsのお待ちください状態が止まらない現象にあいました。
原因は関数の中でcreateしたFSOを初期化しなかったからだと思います。
Sub Hogehoge
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  (処理)
  Set FSO = Nothing
End Sub
こんな感じで解放するとよいと思われます。