Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5039 / 13644 ツリー ←次へ | 前へ→

【52946】フォルダ内のファイル名抽出とソート YAN 07/12/10(月) 6:21 質問[未読]
【52947】Re:フォルダ内のファイル名抽出とソート じゅんじゅん 07/12/10(月) 8:12 発言[未読]

【52946】フォルダ内のファイル名抽出とソート
質問  YAN  - 07/12/10(月) 6:21 -

引用なし
パスワード
   エクセル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

【52947】Re:フォルダ内のファイル名抽出とソート
発言  じゅんじゅん  - 07/12/10(月) 8:12 -

引用なし
パスワード
   ▼YAN さん:
>エクセル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でこのようなソートをするにはどうしたらよいのでしょうか。宜しくお願い致します。

回答ではないですが。

>Windowsのフォルダ画面で名前をクリックするとファイル名が正しくソートされる
って
>A1.jpg,A10jpg,A11.jpg,.....A19jpg,A2.jpg,A20.jpg,A3.jpg,A4.jpg,..,A9.jpg
>の順になってしまいます。
のような順番になりません?

私も順番を気にする場合は名前を、
A 1,A 2,A 3,,,,A11,A12,,,A20
と一桁の場合直前に半角スペースを入れたりして対応してますが、
正しくソートされる・・・について逆に方法を聞いてみたいですね。

5039 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free