|
エクセルVBAのFileSearchで下を実行するとうまくソートされません。
具体的にはA1.jpg,A2.jpg,....,A10.jpg,...A20.jpgなど20個のjpgファイルがフォルダ内にある場合、
A1.jpg,A10jpg,A11.jpg,.....A19jpg,A2.jpg,A20.jpg,A3.jpg,A4.jpg,..,A9.jpg
の順になってしまいます。
Windowsのフォルダ画面で名前をクリックするとファイル名が正しくソートされる
(1,2,3,....,20の順)のですが、VBAでこのようなソートをするにはどうしたらよいのでしょうか。宜しくお願い致します。
Sub FileSearch()
Dim i As Integer
ActiveWorkbook.Worksheets.Add '---新規シートを追加
With Application.FileSearch '---FileSearchオブジェクトに対して
.LookIn = Path '---検索するフォルダを指定
.SearchSubFolders = True '---サブフォルダも検索対象にする
.Filename = "*.jpg" '---検索するファイル名の指定
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox .FoundFiles.Count & " 個のjpgファイルが見つかりました"
For i = 1 To .FoundFiles.Count
Cells(i, 1).Value = .FoundFiles(i)
Next i
Else
MsgBox "jpgファイルはありません"
End If
End With
End Sub
|
|