【Excel VBA】指定したフォルダ内のすべてのファイルのファイル名を取得するマクロ

目次

指定フォルダ内のすべてのファイル名を取得するマクロテンプレート

Sub main()
    Dim buf As String
    Dim fpath As String
    
    fpath = "<フォルダパス>"
    
    buf = Dir(fpath & "*.*")
    Do While buf <> ""
        buf = Dir()
    Loop
End Sub

フォルダパスの末尾には「\」を付けます。

解説

指定フォルダ内のファイル名を取得するためには、Dir() 関数を利用します。

構文
  • Dir(<フォルダパス> & "*.*")
    • 戻り値が一つのファイル名となるため、変数に格納する形で受け取るなどします

上記テンプレートのうち以下の部分が該当します。

    buf = Dir(fpath & "*.*")

上記では、指定フォルダ内のファイルのうち一つ目のファイルのファイル名のみ取得できます。

2つ目以降のファイル名を取得するためには Dir() を繰り返します。

上記テンプレートでは以下の部分が該当します。

    Do While buf <> ""
        buf = Dir()
    Loop

指定フォルダ内のすべてのファイルのファイル名を取得し終えると Dir() の戻り値は空になるため、戻り値が "" になるまで Dir() を繰り返すことで、すべてのファイルのファイル名を取得できます。

取得されるファイル名の順番について

基本的には名前の順で昇順でファイル名が取得されます。

例えば、以下のファイルを含むフォルダのファイル名を取得するとします。

1.txt
2.txt
5.txt
20.txt
10.txt
100.txt
120.txt

このフォルダを対象とした場合、取得されるファイル名の順番は以下になります。

1.txt
10.txt
100.txt
120.txt
2.txt
20.txt
5.txt

あわせて読みたい
Excel VBA マクロ作成用情報まとめ 【初学者向け情報】 【Excel VBA】初心者からマクロを作成できるようになるまでの学習ロードマップ 【Excel VBA マクロ独学者・初心者向け】VBA 学習の第一歩【このペー...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

とあるエンジニアです。

当ブログでは Excel VBA のマクロ作成に役立つ情報を中心に情報展開しています。

Excel VBA マクロを使いこなして時短し、人生の質『QOL』を高めていきましょう。

プロフ画像:Copyright (C) SQUARE ENIX CO., LTD. All Rights Reserved.

目次