LoginSignup
5
5

More than 5 years have passed since last update.

特定フォルダ内のファイル名と更新日付を取得する方法(VBA)

Last updated at Posted at 2014-08-24

特定フォルダ内のファイル名と更新日付を取得する方法(VBA)

特定フォルダに格納されているファイルの名称と更新日付を取得したい場合、プロンプトでdirコマンドを使用したほうが効率は良いので率先してVBAで行うのは好ましくありません。そのため当記事はあくまでVBAで行う場合の参考程度にサンプルソースを記載します。

■実装方法
・ExcelのVBEを使用

Sub GetFileName()

On Error GoTo Err

        Dim number
        '(x,0):ファイル名称 (x,1):最終更新日
        Dim fileInfo(300, 2) As String

        'セルのE2(行2,列5)にディレクトリパスが記載されている前提でディレクトリパスを取得
        target = ThisWorkbook.ActiveSheet.Cells(2, 5) 

        'セルから取得した値(target)を元に、フォルダ情報を取得する
        Set FS = CreateObject("Scripting.FileSystemObject")
        Set Fol = FS.getFolder(target)
        Set Fil = Fol.Files

        'フォルダに格納されているファイル名を取得
        Counter = 0
        For Each Fx In Fil
            sFile = Fx.Name                'ファイル名称取得
            lastUpdate = Fx.DateLastModified
            fileInfo(Counter, 0) = sFile   'ファイル名称を格納
            fileInfo(Counter, 1) = lastUpdate '最終更新日を格納
            Counter = Counter + 1
        Next

        'ファイル名称、最終更新日出力
        'ループ文で任意の列(2)のi行に取得結果を出力
        For i = 0 To Counter - 1
            showName = fileInfo(i, 0)
            showLastDay = fileInfo(i, 1)
            Cells((2 + i), 2) = showName
            Cells((2 + i), 3) = showLastDay
        Next i

        'ファイル件数出力
        ThisWorkbook.ActiveSheet.Cells(5, 6) = Counter
Err:
    Select Case Err.number
        Case (0)
            '正常終了の場合はメッセージは表示しない
        Case (5)
            MsgBox ("フォルダを選択してください。")
        Case Else
            MsgBox (Err.number & ":" & Err.Description) '予期しないエラーの場合はエラー内容を表示する
    End Select

End Sub

以上、参考まで。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5