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

解決


トル  2008-12-30 02:33:11  No: 101435

下のプログラムで、なぜ 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-30 02:37:46  No: 101436

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

↓訂正後の質問文

下のプログラムで、なぜ 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-30 03:25:37  No: 101437

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


トル  2008-12-30 22:52:14  No: 101438

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加