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
コメント