質問: 下記の通りドライブ直下にフォルダがあるとします。 * C:\A * C:\B * C:\C これらのドライブ直下のフォルダA,B,Cのみの、ファイル数と最終更新日時を下記の通りEXCEL上に集計したいと考えています。 (A,B,C内のサブフォルダは対象外) | フォルダ名 | ファイル数 | 最終更新日時 | | --- | --- | --- | | A | 10 | 2021/3/2 | | B | 100 | 2021/3/4 | | C | 1000 | 2021/3/9 | 上記のような処理は可能でしょうか?
回答: `vba`ならば下記のように`FileSystemObject.GetFolder`メソッドを使用することで実現可能です。 最終更新日時は`FileSystemObject`の`DateLastModified`プロパティを取得するか、`FileDateTime`メソッドで取得できます。 なおフォルダ内の最新ファイルを取得したい場合は`fso.GetFolder(target).Files`でループを行って最新更新日時を調べてください。 ``` Sub test() Cells(1, 1) = "フォルダ名" Cells(1, 2) = "ファイル数" Cells(1, 3) = "最終更新日時" Dim target As String target = "C:\A" '対象フォルダ Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Cells(2, 1) = fso.GetFolder(target).Name 'フォルダ名 Cells(2, 2) = fso.GetFolder(target).Files.Count 'ファイル数 Cells(2, 3) = fso.GetFolder(target).DateLastModified '最終更新日時その1 'Cells(2, 3) = FileDateTime(target) '最終更新日時その2 Set fso = Nothing End Sub ```