Как получить список файлов, включая вложенные папки, и список папок с помощью VBA (макрос Excel).
Дата публикации:12 июля 2022 года.
INFOMARTION > Как получить список файлов, включая вложенные папки, и список папок с помощью VBA (макрос Excel).
Обзор.
Я хотел бы описать, как получить список файлов и список папок, включая вложенные папки, с помощью VBA (макрос Excel). Статья предназначена для тех, кто хочет запрограммировать следующие задачи
- Я хочу получить список всех файлов или папок в папке с их полными путями.
- Вы хотите выполнить циклическую обработку файлов или папок в папке.
Оглавление
1. Метод программирования
Примеры программирования приведены ниже.
Поскольку он создан в Function, я бы хотел, чтобы он был скопирован как есть и чтобы вызовы методов выполнялись из Sub.
'Parameter Examples
'## filePath C:\Users\user\Desktop\test\
'## kind false:folder, true:file
'## list
Function getFolderOrFile(filePath As String, kind As Boolean, list As Collection) As Collection
'delete\
Dim filePathEnd As String
filePathEnd = Right(filePath, 1)
If filePathEnd = "\" Then
filePath = Left(filePath, Len(filePath) - 1)
End If
'Folder existence check
Dim result As String
result = Dir(filePath, vbDirectory)
If result = "" Then
MsgBox "File does not exist!"
Exit Function
End If
If kind Then
Dim buf As String
buf = Dir(filePath & "\*.*")
Do While buf <> ""
list.Add filePath & "\" & buf
buf = Dir()
Loop
Else
list.Add filePath
End If
Dim folder As Object
With CreateObject("Scripting.FileSystemObject")
For Each folder In .GetFolder(filePath).SubFolders
getFolderOrFile folder.Path, kind, list
Next folder
End With
End Function
Чтобы использовать его, передайте в качестве аргументов следующие параметры.
- filePath・・・каталог. Пример.)C:\Users\user\Desktop\test
- kind・・・Передать true, false. Если True, возвращает список файлов. Если false, возвращает список папок.
- list・・・Коллекция используется для хранения результатов. Пример реализации приведен ниже.
Пример реализации фактического вызова функции показан ниже.
Sub test()
Dim list As Collection
Set list = New Collection
getFolderOrFile "C:\Users\user\Desktop\test", False, list
Dim item As Variant
For Each item In list
'------TODO------
ThisWorkbook.Worksheets(1).Cells(1, 1).Value = item
Next
End Sub
Вызов getFolderOrFile сохранит список файлов или список папок в списке. Пример реализации равен False, поэтому список папок сохраняется.
Опишите процесс, который вы хотите выполнить, в разделе "TODO" в операторе For. ITEM можно рассматривать как переменную String.
Источником ссылок является процесс установки полученного списка на A1 в Excel. (Процесс многократно перезаписывает одну и ту же ячейку.)
2. Описание кода.
На этом инструкции по использованию системы заканчиваются, далее следует объяснение кода.
Подробности можно увидеть в коде, но ключевым моментом является дальнейший вызов метода getFolderOrFile в методе getFolderOrFile.
В процессе поиска папок далее повторяется вызов процесса поиска папок, который представляет собой механизм поиска всех папок.
Вызывая свой собственный метод, он многократно вызывает свой собственный метод до тех пор, пока папка не будет найдена, перебирая все папки.
3. резюме
Если вам нужна помощь в том, как получить список файлов и список папок, включая вложенные папки, с помощью VBA (макросов Excel), обратитесь к этому разделу.
Спасибо, что досмотрели до конца.
■INFORMATION
Пожалуйста, нажмите здесь, чтобы перейти на верхнюю страницу ИНФОРМАЦИЯ.
■PROFILE
Пожалуйста, нажмите здесь для получения профиля.
■Контактная информация.
Для получения информации о статье, пожалуйста, свяжитесь с нами здесь.