選択フォルダのファイルリスト作成

Sub prcListFilesInFolder()
    ' フォルダ選択ダイアログを表示し、選択されたフォルダのファイルをリストアップする
    
    Dim fso As FileSystemObject
    Set fso = New FileSystemObject
    
    Dim fldDialog As FileDialog
    Set fldDialog = Application.FileDialog(msoFileDialogFolderPicker)
    
    Dim strFolderPath As String
    Dim fldFolder As Folder
    Dim filFile As File
    Dim lngRow As Long
    
    With fldDialog
        If .Show = -1 Then ' ユーザーがOKをクリックした場合
            strFolderPath = .SelectedItems(1) & "\"
            Set fldFolder = fso.GetFolder(strFolderPath)
            
            ' アクティブシートの初期化
            ActiveSheet.Cells.Clear
            
            ' 列の見出しを設定
            ActiveSheet.Cells(1, 1).Value = "フォルダパス"
            ActiveSheet.Cells(1, 2).Value = "ファイル名"
            
            lngRow = 2 ' 出力を開始する行番号
            
            ' フォルダ内の各ファイルに対して処理
            For Each filFile In fldFolder.Files
                ActiveSheet.Cells(lngRow, 1).Value = strFolderPath ' A列にフォルダパスをセット
                ActiveSheet.Cells(lngRow, 2).Value = filFile.Name ' B列にファイル名をセット
                lngRow = lngRow + 1
            Next filFile
        End If
    End With
    
    ' オブジェクトの解放
    Set fldFolder = Nothing
    Set fso = Nothing
    Set fldDialog = Nothing
End Sub

コメント