特定フォルダ内のファイル名と更新日付を取得する方法(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
以上、参考まで。