Supongamos que no tienes muchas carpetas que crear con VBA y Excel, sino el caso contrario. Es decir, hay un directorio con bastantes muchas subcarpetas en una unidad y por alguna razón necesitas estos subdirectorios en forma de lista para seguir procesándolos.
Situación inicial: muchos subdirectorios necesitan ser transferidos a una hoja excel
Un caso de uso ficticio: Tiene muchos documentos que necesita entregar a alguien o a otra empresa. Estos documentos están estructurados en muchas carpetas individuales. Ahora desea documentar el progreso y el estado de la transferencia de documentos en forma de lista de Excel. Sería tedioso e ineficaz escribir cada nombre de carpeta individualmente en la hoja de cálculo Excel. Este proceso debe automatizarse. La mejor forma de hacerlo es utilizando VBA. Esta es la situación inicial.
Macro para leer las subcarpetas
Para leer todos los nombres de los directorios, inserta la siguiente macro en el editor de Visual Basic.
Option Explicit
Public Sub ListFolders()
Dim objFSO As Object
Dim folder As Object
Dim strPfad As String
Dim subFolder As Object, colSubfolders As Object
Dim i As Integer
'Sustituya aquí la ruta al directorio que debe leerse
strPfad = "C:\Users\DeinUserName\Desktop\temp\ImageFolder"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set folder = objFSO.GetFolder(strPfad)
Set colSubfolders = folder.Subfolders
'Establezca aquí la línea de inicio "1" para Excel
i = 1
For Each subFolder In colSubfolders
i = i + 1
Range("A" & i).Value = subFolder.Name
Next subFolder
Set folder = Nothing
Set colSubfolders = Nothing
Set objFSO = Nothing
End Sub
Es preferible insertar la macro en la tabla correspondiente en la que se van a listar las subcarpetas. Si añade la macro al libro de trabajo, deberá especificar a qué tabla se refiere.
Ahora ajusta la ruta del directorio a leer y define la fila (variable i) y columna (letra en Rango [A]) en qué celda deben empezar las entradas de los nombres de las carpetas.
Resultado
Una vez hecho todo esto, puedes ejecutar la macro a través del símbolo verde play del editor VBA o a través de las “Herramientas de desarrollo” (Alt+F8) de la hoja de cálculo Excel.
Para el ejemplo mostrado aquí, el resultado entonces se parece a la siguiente imagen.
Además de leer carpetas, con VBA también puedes leer páginas web enteras.