ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

ディレクトリを再帰的に検索し取得したファイル情報をエクセルに書き出す

エクセル VB に初挑戦、メソッド名とか変数名にやる気ゼロなのはご愛嬌。

Private Sub CommandButton1_Click()

    'ディレクトリを指定する
    Dim openDir As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then
            MsgBox "終了します"
            Exit Sub
        End If
        openDir = .SelectedItems(1)
    End With
    
    Dim fs, f
    Dim Filename As String
    Set fs = CreateObject("Scripting.FileSystemObject")
    
    'ファイルを検索
    With Application.FileSearch
        .LookIn = openDir                ' ディレクトリパスを指定
        .SearchSubFolders = True  ' 再帰的に検索
        .Filename = "*.txt"               ' 拡張子が txt のファイルのみをターゲットに。
        
        If .Execute() > 0 Then
            ' 該当ファイルが1つ以上あるので書き出し用にシートをクリア
            ThisWorkbook.Sheets("Sheet1").UsedRange.Delete
        
            ' 取得したファイルリストの情報を一つずつ書き出す
            For i = 1 To .FoundFiles.Count
                Filename = .FoundFiles(i)
                Set f = fs.GetFile(Filename)
                ThisWorkbook.Sheets(1).Cells(i, 2) = Filename
                ThisWorkbook.Sheets(1).Cells(i, 3) = f.DateCreated
                ThisWorkbook.Sheets(1).Cells(i, 4) = f.DateLastModified
                ThisWorkbook.Sheets(1).Cells(i, 5) = FileLen(Filename)
            Next i
        Else
            MsgBox "ファイルがありません"
        End If
    End With
End Sub

Windows のヘルプだけ見ながらプログラムを組む日がキターー
動くことだけ確認したけど、この記事はMacbook で書かれています。