[[20181202145538]] 『ファイル名取得を、時間の順番で取得したい』(荒川) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ファイル名取得を、時間の順番で取得したい』(荒川)

Sub ファイル一覧取得()

    Dim buf As String, cnt As Long
    Dim fp As String

    cnt = 5
    fp = ThisWorkbook.Path & "\"
    'ファイルの拡張子を変更することで他のファイルの取得可能
    buf = Dir(fp & "*.jpg") 'PDFファイルを、取得したい時には「jpg」を「pdf」へ変更
    Do While buf <> ""
        cnt = cnt + 1
        Cells(cnt, 1) = buf
        buf = Dir()
    Loop
End Sub

ファイル名取得のマクロなのですが、ファイル名で並べ替えが自動で
行われて取得されます。
保存の時間の順番で、取得することは可能でしょうか?
もしくは、フォルダ内に入っている順番での書きだしか・・・。

< 使用 Excel:Excel2016、使用 OS:Windows8 >


 保存の時間の順番って、作成順でしょうか?
 一度自分で確認してみた方が・・・。
(BJ) 2018/12/02(日) 15:32

 ああ、一度確認されているのか・・・。
(BJ) 2018/12/02(日) 15:42

ファイル作成日時を掴みたいのであれば、Dir関数ではむりだったとおもいます。

FileSystemObjectについて調べてみましょう。
http://officetanaka.net/excel/vba/filesystemobject/index.htm
http://officetanaka.net/excel/vba/filesystemobject/file02.htm

(もこな2) 2018/12/02(日) 16:01


 Win7か、EXL2007からなのか、Dir関数の仕様が変ったみたい。
 以前はアロケーションブロックに登録されている順だったような・・・。
(BJ) 2018/12/02(日) 16:30

他所の板ですが、この手の質問で、わたしがFSOで回答をすると
そのあと、決まって、ループの必要なしとダメ出しされました。

ここでは、Mookさんとか、???さんがよく使っている手法です。

 Sub test()
    Dim p As String
    Dim s

    p = ThisWorkbook.Path & "\"

    s = Split(CreateObject("wscript.shell").exec("cmd /c dir /b/o-d  """ & p & "*.jpg""").stdout.readall, vbCrLf)
    Cells(1).Resize(UBound(s) + 1).Value = Application.Transpose(s)

 End Sub

(マナ) 2018/12/02(日) 19:53


コマンドプロンプトのDIRコマンドって、NAS(Linix等でsamba利用している場合)には時間並び替え指定が効かなかったりします。 ローカルドライブならOKなのですが。
なので、NASでも通用できる案として、ファイル更新日時を得ておいて、これを元にソートする例なぞ書いておきます。
 Sub test()
    Dim buf As String
    Dim fp As String
    Dim i As Long

    fp = ThisWorkbook.Path & "\"

    With CreateObject("System.Collections.ArrayList")
        buf = Dir(fp & "*.jpg")
        Do While buf <> ""
            .Add Format(FileDateTime(fp & buf), "YYYYMMDDHHNNSS") & buf
            buf = Dir()
        Loop
        .Sort

        For i = 0 To .Count - 1
            Cells(i + 6, 1) = Mid(.Item(i), 15)
        Next i
    End With
 End Sub
(???) 2018/12/03(月) 09:15

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.