Verzeichnisstruktur kopieren - ohne Inhalt
Schritt-für-Schritt-Anleitung
-
Öffne Excel und erstelle ein neues Makro, indem Du in den Entwicklertools auf "Visual Basic" klickst.
-
Füge den folgenden Code in ein neues Modul ein:
Option Explicit
Dim arr
Dim L As Long
Public Sub Aufruf()
Dim objShell As Object
Dim objFolder As Object
Dim objItem As Object
L = 0
Redim arr(1)
Set objShell = CreateObject("Shell.Application")
With objShell
Set objFolder = .BrowseForFolder(0, "Startordner suchen", 0)
End With
If Not objFolder Is Nothing Then
Set objItem = objFolder.Self
arr(L) = objItem.Path
arr(1) = "D:\Testordner" ' Zielordner
L = 1
Else: Exit Sub
End If
Schreiben objItem.Path
verzeichnisse_erstellen (arr)
End Sub
Public Sub Schreiben(Suchordner)
Dim fso As Object
Dim datei
Dim Unterordner
Set fso = CreateObject("Scripting.FileSystemObject")
Set datei = fso.getfolder(Suchordner)
On Error Resume Next
For Each Unterordner In datei.subfolders
L = L + 1
Redim Preserve arr(L)
arr(L) = Replace(Unterordner.Path, arr(0), "D:\Testordner")
Schreiben Unterordner
Next
Set fso = Nothing
Set datei = Nothing
End Sub
Public Sub verzeichnisse_erstellen(a)
Dim LNG As Long
On Error Resume Next
For LNG = 1 To UBound(arr)
If Dir(arr(LNG)) = "" Then MkDir arr(LNG)
Next
End Sub
-
Passe den Zielordner an Deine Bedürfnisse an. In diesem Beispiel wird "D:\Testordner" verwendet.
-
Führe das Makro aus, um die Verzeichnisstruktur zu kopieren, ohne die Inhalte zu übertragen.
Häufige Fehler und Lösungen
Alternative Methoden
Eine einfache Möglichkeit, um die Ordnerstruktur zu kopieren, ist die Verwendung von PowerShell. Hier ist ein Beispielbefehl:
Get-ChildItem "C:\temp" -Recurse | Where-Object { $_.PSIsContainer } | ForEach-Object {
$dest = $_.FullName.Replace("C:\temp", "D:\sicherung")
New-Item -ItemType Directory -Path $dest -Force
}
Dieser Befehl erstellt die Verzeichnisstruktur von "C:\temp" nach "D:\sicherung", ohne die Dateien zu kopieren.
Praktische Beispiele
Angenommen, Du hast folgende Verzeichnisstruktur in "C:\temp":
C:\temp
├── Unterordner1
│ └── Unterunterordner1
└── Unterordner2
Nach dem Ausführen des Codes wird die Struktur in "D:\Testordner" so aussehen:
D:\Testordner
├── Unterordner1
│ └── Unterunterordner1
└── Unterordner2
Dabei bleiben die bestehenden Dateien im Zielverzeichnis unberührt.
Tipps für Profis
- Verwende relative Pfade, wenn Du das Makro in verschiedenen Umgebungen nutzen möchtest.
- Nutze Kommentare im VBA-Code, um die Funktionalität zu erläutern und die Wartung zu erleichtern.
- Teste den Code zunächst in einer sicheren Umgebung, um unerwünschte Änderungen an wichtigen Daten zu vermeiden.
FAQ: Häufige Fragen
1. Kann ich die Struktur von mehreren Laufwerken kopieren?
Ja, Du kannst den Code anpassen, um die Struktur von mehreren Laufwerken zu kopieren. Du musst lediglich den Pfad im Code ändern.
2. Funktioniert das auch in Excel für Mac?
Der gezeigte VBA-Code funktioniert nur in der Windows-Version von Excel. Für Mac musst Du alternative Methoden wie AppleScript verwenden.
3. Wie kann ich die Struktur in eine Excel-Tabelle exportieren?
Du kannst die Verzeichnisstruktur in eine Excel-Tabelle kopieren, indem Du während des Kopiervorgangs die Pfade in eine Array-Variable speicherst und dann die Werte in die Zellen der Tabelle schreibst.