VBA: Lectura de nombres de carpetas y directorios y lista en Excel

VBA - Visual Basic for Application

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.

Captura de pantalla con subcarpetas y lista de Excel
estas carpetas se van a listar en la tabla de Excel

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.

Captura de pantalla VBA-Editor Excel Macro
Inserte la macro en la tabla correspondiente

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.

Captura de pantalla Explorador de Windows y Excel con nombres de directorios listados
nombres de carpetas listados en la hoja excel

Además de leer carpetas, con VBA también puedes leer páginas web enteras.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *