| 
    
     |  | ▼ちくたく さん: こんにちは。
 
 
 >
 >Sub ファイルを開く順番()
 >  Dim myF As String
 >  Dim fStr As String
 >
 >  myF = "D:\tmp"
 >  fStr = Dir(myF & "\", vbNormal)
 >
 >  Do While fStr <> ""
 >    Debug.Print fStr
 >    fStr = Dir
 >  Loop
 >End Sub
 >
 >というコードを用意し、テストしてみたところ
 >D:\tmpフォルダに入っているファイル名が
 >以下のような並びで出力されました
 >
 >E-001.jpg
 >E-002.jpg
 >E-003.jpg
 >E-004.jpg
 >E-005.jpg
 >E-006.jpg
 >E-007.jpg
 >E-008.jpg
 >E-009.jpg
 >E-010.jpg
 >000.jpg
 >ScanLog1.txt
 >03.jpg
 >ScanLog.txt
 >00.jpg
 >01.jpg
 >02.jpg
 >
 >上のE-xxx.jpgのあたりは、わかるのですが、
 >下の方になると、規則性が読みとれないんです。
 >Dir関数のファイル名取り出しには規則性があるのでしょうか?
 ファイルを作成した順番ではないですか(更新は除いて)?
 フォルダの中にはDOSのときはディレクトリテーブルなんて
 呼ばれていたと思いましたが、ファイル情報が格納されている
 と思います。
 正確な中身は忘れましたが、ファイル名、開始位置やら
 終了位置、作成日・・・。
 Dir関数ってこのディレクトリテーブルを順次読み込んでいるのだと
 思います。
 
 試しに
 '=======================================
 Sub mk_main()
 Dim idx As Long
 Do
 ans = Application.GetSaveAsFilename()
 If TypeName(ans) <> "Boolean" Then
 Open ans For Output As #1
 Print #1, "aaa"
 Close #1
 Cells(idx + 1, 1).Value = ans
 idx = idx + 1
 Else
 Exit Do
 End If
 Loop
 
 End Sub
 
 上記のコードで新規に作成したフォルダに
 適当な名前を付けたファイルを複数個作成してください。
 
 次に
 '====================================================
 Sub test()
 Dim flnm As String
 Dim fold As String
 fold = "D:\My Documents\TESTエリア\testarea2002\dirtest"
 '      ↑ファイルを作成したフォルダ名
 flnm = Dir(fold & "\*.*")
 Do Until flnm = ""
 Cells(idx + 1, 2).Value = flnm
 idx = idx + 1
 flnm = Dir
 Loop
 End Sub
 
 なんてすると、A列とB列には同じファイル名が入ると思います。
 (A列は、フルパスだけど)
 
 確認してみてください。
 
 
 |  |