プロが教えるわが家の防犯対策術!

他の方の質問ですが
http://okwave.jp/qa2149125.html
このコードを実行してファイル名を取得する時に
存在しないフォルダを指定した時
「autoexec.bat」と「config.sys」が取得されます。
これは私だけですか?
ちなみにアクセス2003で試しています。
よろしくお願いします。

A 回答 (3件)

MyPath = WSH.SpecialFolders("MyDocuments")


の"MyDocuments"に、存在しないフォルダーを指定という意味でしょうか?
これは、環境、ユーザーにより異なる、MyDocumentsのフルパスを取得する方法なので、ここに任意のフォルダー名を入れた場合、
Debug.Print "MyPath:", MyPath
で確認すると、空文字列になっていると思います。
したがって、
MyFileName = Dir("\" & "*.*")
が実行され、Cドライブ直下のファイルが表示されるのだと思います。
http://www.happy2-island.com/vbs/cafe02/capter00 …
    • good
    • 0
この回答へのお礼

説明不足ですいません。
MyDocumentsはあるのですが「d:\○○」と言うファイルがない場合があります。
ありがとうございます。

お礼日時:2009/05/24 11:33

例えば 

http://www.moug.net/tech/acvba/0090003.htmの中ごろの記述
>データベースがあった場合は、「ProjectA.mdb」がメッセージボックスに表示され、なかった場合は長さ0の文字列が返されるのでメッセージボックスには何も表示されません。
従ってその結果の""と文字列¥を結合している場合は、¥だけ残り先頭に来ます。
ーー
コマンドプロンプト画面で
Dir \
と入れると、
「c:\のデレクトリ」としてまず表示され、次行以下にフォルダ名、ファイル名が出てきます。これは人(パソコン)によって出てくるものは当然違います。
ドライブ名の後の最初の¥(英語ではバックシュラッシュ)はルートディレクトリをさします。この考えがUNIXなどの勉強では強調された記憶がありますが、
http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3% … 参考
ウンドウズでは、ファイル選択のダイアロウグ画面でほとんど用が足り、エクセルやアクセスの解説書では、説明が省略されているように思う。だから疑問に思うのでしょう。
    • good
    • 0
この回答へのお礼

よく読んでみます。ありがとうございます。

お礼日時:2009/05/24 11:34

こんにちは。



>http://okwave.jp/qa2149125.html

まず、WSH というのは、WScript Host のことで、VBAで使うものは、VBAのコードではありません。
CreateObject で生成されるものを、オートメーション・オブジェクトと呼んでいます。

>存在しないフォルダを指定した時

WshShellのSpecialFoldersのオブジェクトはコレクションで、その引数は組み込み定数/Indexがあります。使用できない場合は、「""」(長さ0の文字列または空文字--Helpには書かれていません) が返されます。

例えば、Window XP の場合は、元のコードで、WSH.SpecialFolders(17)でも可能です。言い換えると、それ以外のものを入れても、「""」が返されて、その使用する親ディレクトリしか取得できません。

詳しくは、ここをお読みください。
http://msdn.microsoft.com/ja-jp/library/cc364490 …
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/05/24 19:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!