エクセルのマクロ(VBA?)で、あるフォルダ内のファイル名を取得する(拡張子が.txtのもだけ)関数があれば教えてほしいのですが・・・

このQ&Aに関連する最新のQ&A

A 回答 (2件)

どもども 田吾作7です



Dim wkPath As String
Dim wkFile As String

wkPath = "c:\*.txt" ' パスを設定
wkFile = Dir(wkPath) ' 最初のファイル取得

Do While wkFile <> "" ' 取得できなくなるまでループ
Debug.Print wkFile ' 出力
wkFile = Dir ' 次のファイル名を取得
Loop

こんな感じ

でわでわ

この回答への補足

ありがとうございます。できました。
ついでに取得したファイル名をソート(五十音順)して、何か処理等するには、配列に入れて、配列をソートするようなことをすればよいのでしょうか?そのほか何か良い方法はあるのでしょうか?
よろしくお願いします。

補足日時:2001/07/13 16:01
    • good
    • 0

どもども田吾作7です。



ソートですか?たぶん文字コードでソートされた順番で取得してると思いますよ。。


別の質問で
>f_name = "d:\" + Trim(Str(i)) + ".txt"
としていましたね?

これで取得すると[1.txt],[10.txt],[2.txt],・・・[9.txt]となるはずです。
もしかして[1.txt],[2.txt],・・・[10.txt]としたいのですか?

これを回避するためには、桁を揃えるようにしましょう。
f_name = "d:\" + format(i,"00) + ".txt"

とすると、ファイル名は今までとちょっと変わってしまいますが
[01.txt],[02.txt],[03.txt],・・・[10.txt]
という順番に取得可能だと思います。

でわでわ
    • good
    • 0

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


人気Q&Aランキング