VBA: Ordner- und Verzeichnisnamen auslesen und in Excel auflisten

VBA - Visual Basic for Application

Mal angenommen man hat nicht viele Ordner mit VBA und Excel zu erstellen, sondern den umgekehrter Fall. Das heißt es existiert ein Verzeichnis mit ganz vielen Unterordnern auf einem Laufwerk und aus irgendwelchen Gründen benötigt man dies Unterverzeichnisse in Form einer Liste, um diese weiterzubearbeiten.

Ausgangssituation: viele Unterverzeichnisse müssen in Exceltabelle übertragen werden

Ein fiktiver Anwendungsfall: Man hat viele Dokumente, die man jemanden oder einer anderen Firma übergeben muss. Diese Dokument sind in vielen einzelnen Ordnern strukturiert. Nun möchte man den Fortschritt und Status der Dokumentenübergabe in Form einer Excel-Liste dokumentieren. Nun wäre es ein mühsames ineffizientes Arbeiten, wenn man jeden Ordnernamen einzeln abtippt in die Exceltabelle. Ein solcher Prozess muss automatisiert werden. Dies geht am besten unter Verwendung von VBA. Das ist also die Ausgangssituation.

Screenshot mit Unterordnern und Excelliste
diese Ordner sollen in der Excel-Tabelle aufgelistet werden

Makro zum Auslesen der Unterordner

Um alle Verzeichnisnamen auszulesen, fügt man in dem Visual-Basic-Editor das folgende Makro ein.

Option Explicit

Public Sub OrdnerAuflisten()
Dim objFSO As Object
Dim folder As Object
Dim strPfad As String
Dim subFolder As Object, colSubfolders As Object
Dim i As Integer
    'Pfad hier ersetzen zum Verzeichnis, das ausgelesen werden soll
    strPfad = "C:\Users\DeinUserName\Desktop\temp\Bildordner"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set folder = objFSO.GetFolder(strPfad)
    Set colSubfolders = folder.Subfolders
    'hier Startzeile-1 für Excel festlegen
    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

Das Makro ist vorzugsweise in der zugehörigen Tabelle einzufügen, in welcher die Unterordner aufgelistet werden sollen. Hier im Beispiel ist es die Tabelle 2. Fügt man das Makro der Arbeitsmappe zu, müsste man noch festlegen auf welche Tabelle es sich bezieht.

Screenshot VBA-Editor Excel Makro
Makro in betreffende Tabelle einfügen

Nun noch den Verzeichnispfad anpassen, der ausgelesen werden soll, und die Zeile (Variable i) und Spalte (Buchstabe bei Range [A]) festlegen, bei welcher Zelle begonnen werden soll mit den Eintragungen der Ordnernamen.

Ergebnis

Ist das alles erledigt, dann kann man das Makro über das grüne Wiedergabe-Symbol im VBA-Editor oder über die “Entwicklertools” (Alt+F8) im Exceltabellenblatt ausführen.

Für das hier gezeigte Beispiel sieht das Ergebnis dann wie im nachfolgenden Bild aus.

Screenshot Windows Explorer und Excel mit gelisteten Verzeichnisnamen
aufgelistete Ordnernamen in der Exceltabelle

Neben dem Auslesen von Ordnern lassen sich mit VBA auch ganze Webseiten auslesen.

Bestseller Nr. 1
Bestseller Nr. 2

Ein Kommentar

  1. Hallo Daniel,

    super Code, vielen Dank. Wenn ich fortlaufende Nummern in meinem Ordner habe, sortiert Excel die “1000” bei den “110ern” ein. Wie muss der Code angepasst werden, damit meine Sortierung in Excel dann auch so aussieht: Spalten= 998 / 999 / 1000
    Danke für deine Hilfe

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert