なぜ Set してないのに使えるのか?

解決


トル  2008-12-29 17:33:11  No: 101435  IP: 192.*.*.*

下のプログラムで、なぜ Fso は Set してないのに使えるのでしょうか?
Set hFolder = Fso.GetFolder(f)
この行を実行する前は、ウォッチウインドウで Fso を見ると「<オブジェクト変数または With ブロック変数が設定されていません。>」と出るのに、実行した後はちゃんと内容を見れました。

ずっと、オブジェクトは Set 文で代入しないと使えないと思ってきたので不思議に思えました。
どなたかお詳しい方、よろしくお願い致します。


プログラム
Dim Fso As New FileSystemObject

Dim hFolder As Folder

Set hFolder = Fso.GetFolder("C:\WINDOWS")

編集 削除
トル  2008-12-29 17:37:46  No: 101436  IP: 192.*.*.*

失礼しました。ちょっと間違っていたので訂正します。

↓訂正後の質問文

下のプログラムで、なぜ Fso は Set してないのに使えるのでしょうか?
Set hFolder = Fso.GetFolder("C:\WINDOWS")
この行を実行する前は、ウォッチウインドウで Fso を見ると「<オブジェクト変数または With ブロック変数が設定されていません。>」と出るのに、実行した後はちゃんと内容を見れました。

ずっと、オブジェクトは Set 文で代入しないと使えないと思ってきたので不思議に思えました。
どなたかお詳しい方、よろしくお願い致します。


プログラム
Dim Fso As New FileSystemObject

Dim hFolder As Folder

Set hFolder = Fso.GetFolder("C:\WINDOWS")

編集 削除
熊谷隆史  2008-12-29 18:25:37  No: 101437  IP: 192.*.*.*

過去ログ)
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200506/05060038.txt

編集 削除
トル  2008-12-30 13:52:14  No: 101438  IP: 192.*.*.*

「New キーワードを使ってオブジェクト変数を宣言した場合、その変数を最初に使うときに自動的に新規オブジェクトが作成されます。」

こういう決まりがあったんですね。
ありがとうございました。

編集 削除