目次
指定フォルダ内のすべてのファイル名を取得するマクロテンプレート
Sub main()
Dim buf As String
Dim fpath As String
fpath = "<フォルダパス>"
buf = Dir(fpath & "*.*")
Do While buf <> ""
buf = Dir()
Loop
End Sub
解説
指定フォルダ内のファイル名を取得するためには、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