Как вывести список всех папок и подпапок в Excel?
При работе с задачами управления каталогами или файлами вам может понадобиться быстро получить полный список всех папок и подпапок внутри определённого каталога и сразу же просмотреть эту информацию прямо в Excel. К сожалению, Excel не предлагает встроенной функции или простого мастера для автоматического извлечения всех папок и подпапок из указанного пути к файлу. В этой статье представлен код VBA, который позволяет вывести все папки и подпапки из любого выбранного каталога непосредственно на лист вашей книги. Это минимизирует риск ошибок, вызванных человеческим фактором, и избавляет от рутинной работы, помогая оперативно отслеживать и эффективно управлять структурой ваших данных.
Использование кода VBA для вывода всех папок и подпапок
Использование кода VBA для вывода всех папок и подпапок
Если вы хотите извлечь и отобразить все папки и подпапки из заданного каталога в Excel, эффективным решением станет использование VBA (Visual Basic for Applications). Этот подход обеспечивает гибкость и полный контроль, позволяя получать не только имена папок, но и дополнительную информацию — например, путь к файлу, дату создания и время последнего изменения. Метод особенно подходит пользователям, знакомым с инструментами разработчика в Excel, а также тем, кто работает с динамичными или часто изменяющимися файловыми структурами.
1. Нажмите ALT + F11, чтобы открыть редактор «Microsoft Visual Basic for Applications». Этот инструмент позволяет добавлять и редактировать макросы в вашей книге.
2. В редакторе VBA выберите в меню пункт Вставка > Модуль. Откроется новое окно модуля. Скопируйте и вставьте в него следующий код:
Код VBA: вывод всех папок и подИмя папки
Sub FolderNames()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs As Worksheet
Dim fso As Object, j As Long, folder1 As Object
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Choose the folder"
.Show
End With
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 5).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder1 = fso.getFolder(xPath)
getSubFolder folder1
xWs.Cells(2, 1).Resize(1, 5).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 5).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim SubFolder As Object
Dim subfld As Object
Dim xRow As Long
For Each SubFolder In prntfld.SubFolders
xRow = Range("A1").End(xlDown).Row + 1
Cells(xRow, 1).Resize(1, 5).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder.DateLastModified)
Next SubFolder
For Each subfld In prntfld.SubFolders
getSubFolder subfld
Next subfld
End Sub
3. После вставки кода нажмите F5 или щёлкните кнопку Выполнить в редакторе VBA, чтобы запустить макрос. Появится диалоговое окно Выбор папки, предлагающее выбрать целевой каталог для сканирования папок и подпапок.

4. Выберите нужный каталог и нажмите кнопку OK. Макрос обработает каталог и создаст новый список книг, содержащий все папки и подпапки вместе с их полными путями, родительскими каталогами, именами, датами создания и последнего изменения, как показано ниже:

Некоторые практические советы и замечания по использованию этого кода:
- Если структура вашей директории очень обширна, макросу может понадобиться некоторое время на обработку всех папок. Пожалуйста, проявите терпение и не прерывайте процесс выполнения.
- Метод VBA требует включения параметров макросов — в противном случае код не будет работать корректно. Если появляются предупреждения системы безопасности, проверьте настройки Центра управления безопасностью в параметрах Excel.
- Если вы случайно указали не ту папку, просто запустите макрос ещё раз и выберите нужный каталог.
- Этот подход отображает только информацию о папках и подпапках; если вам нужно также показать файлы, ознакомьтесь с связанной статьёй ниже, чтобы узнать о дополнительных вариантах.
- Если книга используется несколькими пользователями, напомните им, что для работы функции динамического списка макросы должны быть включены на их собственных компьютерах.
- Если созданная книга окажется пустой или неполной, убедитесь, что выбранный каталог не пуст и что у вас есть достаточные права на чтение. В случае особенно глубоких или сложных иерархий папок проверьте ограничения ресурсов вашей системы и при необходимости рассмотрите возможность обработки по частям или отдельными подкаталогами.
Это решение на основе VBA является гибким, не требует дополнительных надстроек или внешнего программного обеспечения и автоматически создаёт выходную книгу для вашего удобства. Однако оно лучше всего подходит пользователям, знакомым с основными операциями с макросами, и может потребовать дополнительной настройки для конкретных пользовательских задач.
Связанная статья:
Как вывести список файлов из папки на лист Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек