任意のフォルダに存在するすべてのファイル名を取得するには、Dir関数にワイルドカードを指定します。次のコードは、C:\Sampleフォルダに存在するすべての「*.xlsx」をアクティブシートに書き出します。
Sub Sample1()
Dim buf As String, cnt As Long
Const Path As String = "C:\Sample\"
buf = Dir(Path & "*.xlsx")
Do While buf <> ""
cnt = cnt + 1
Cells(cnt, 1) = buf
buf = Dir()
Loop
End Sub

Dir関数にワイルドカードを指定して実行すると、まずそのワイルドカードに一致するファイル名が返ります。次に、Dir関数の引数を省略して実行すると、前回に指定されたワイルドカードが指定されたものとしてファイルを探します。そのとき、すでに見つかったファイル(Dir関数が返したファイル)は除外されます。そして、ワイルドカードに一致するすべてのファイルが返ると、Dir関数は空欄("")を返します。




ディスクのフォーマットによって異なります。最近主流のNTFSでフォーマットされているディスクでは、ファイルが保存された順番(タイムスタンプ)にかかわらず、ファイル名の順番(昇順)で返ります。

たとえば、次の順番でファイルを保存したとします。

これらのファイルをDir関数で取得してみましょう。
Sub Sample2()
Dim buf As String, cnt As Long
Const Path As String = "C:\Sample\"
buf = Dir(Path & "*.xlsx")
Do While buf <> ""
cnt = cnt + 1
Cells(cnt, 1) = buf
Cells(cnt, 2) = FileDateTime(Path & buf)
buf = Dir()
Loop
End Sub

ファイルを保存した時間にかかわらず、ファイル名の順番で取得されます。
一方、FATと呼ばれる形式でフォーマットでされたディスクでは、ファイル名の順番ではなく、ディスクに保存された順番で返ります。最近の大容量ハードディスクでは、NTFSでフォーマットされることが一般的ですが、USBメモリなどはFAT形式でフォーマットされていることもあります。

上記と同じコードで、FAT形式でフォーマットされたUSBメモリ内のフォルダからファイルの一覧を取得すると、次のようになります。

ちなみに、こうした順番は、コマンドラインでdirを実行したときも同じ結果になります。
NTFS

FAT

FileSystemObjectを使って、フォルダ内のファイル一覧を取得することもできます。なお、FileSystemObjectに関しては下記ページをご覧ください。
Sub Sample3()
Dim f As Object, cnt As Long
With CreateObject("Scripting.FileSystemObject")
For Each f In .GetFolder("C:\Sample").Files
cnt = cnt + 1
Cells(cnt, 1) = f.Name
Cells(cnt, 2) = f.DateCreated
Next f
End With
End Sub