Excel VBA質問箱 IV

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

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


49935 / 76733 ←次へ | 前へ→

【31694】Re:Dir関数でファイルが取り出される順番に規則性はあるの?
発言  ichinose  - 05/11/28(月) 16:54 -

引用なし
パスワード
   ▼ちくたく さん:
こんにちは。


>
>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列は、フルパスだけど)

確認してみてください。
3 hits

【31690】Dir関数でファイルが取り出される順番に規則性はあるの? ちくたく 05/11/28(月) 16:29 質問
【31692】Re:Dir関数でファイルが取り出される順番に... Blue 05/11/28(月) 16:39 回答
【31693】Re:Dir関数でファイルが取り出される順番に... だるま 05/11/28(月) 16:44 回答
【31694】Re:Dir関数でファイルが取り出される順番に... ichinose 05/11/28(月) 16:54 発言
【31696】Re:Dir関数でファイルが取り出される順番に... ちくたく 05/11/28(月) 17:31 お礼
【31708】Re:Dir関数でファイルが取り出される順番に... ichinose 05/11/29(火) 8:08 発言

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