メモリ解放処理について


とし  2002-03-25 17:09:41  No: 75408  IP: [192.*.*.*]

以下のDimの宣言でVariantにした場合、Set fs = Nothingではメモリ解放されないのでしょうか??
Dim fs As VariantのところをDim fs As Objectにしないとだめでしょうか??
教えてください。

(参考プログラム)
Public Sub Test()

    Dim fs As Variant

    Set fs = CreateObject("Exce.Application")
         :    
       (省略)
         :    
    Set fs = Nothing

End Sub

編集 削除
マザー  2002-03-26 10:24:30  No: 75409  IP: [192.*.*.*]

fsはObjectとするのが良いと思います。
fs(アプリケーション)の終了には以下手順が良いとかと
If Not fs Is Nothing Then                            
    fs.Quit                               
    Set fs = Nothing 
End If
ApplicationにはQuit
BookにはCloseです。

編集 削除
Tomyankun  2002-04-14 21:57:04  No: 75410  IP: [192.*.*.*]

>Set fs = Nothingではメモリ解放されないのでしょうか??
  もしこれで動的に確保した領域が開放されるとすれば、この行以降で
Setステートメントで再度インスタンスを生成することができなくなりま
す。メモリが開放されるのは参照カウントが0で、かつ(この場合は)Test
モジュールを終了した以降になります。
  参考プログラムではExcelのプロセスをQuitしない限りメモリリークす
ることとなります。

編集 削除