Problemstellung:
Für 32Bit und 64Bit Office Versionen
Wie kann ich ein komplette Verzeichnisstruktur erstellen?
Um ein Verzeichnis mittels VBA zu erstellen steht der Befehl "MkDir" zur Verfügung.
Der Syntax ist z.B.:
MkDir "C:\Test"
Leider ist es nicht möglich einen ganzen Verzeichnisbaum gleichzeitig zur erstellen.
Um einen ganzen Verzeichnisbaum, in einem Schritt zu erstellen, ist eine zusätzliche Prozedur erforderlich.
In diesem Beitrag wurde gezeigt wie es mit VBA geht..
Es geht aber noch einfacher mit API
#If VBA7 Then 'Code für 32 bit und 64 bit Office VBA 7 #If Win64 Then 'Code für 64-bit Office VBA 7 Declare PtrSafe Function MakeSureDirectoryPathExists _ Lib "imagehlp.dll" (ByVal Pfad As String) As Long #Else 'Code für 32-bit Office VBA 7 Public Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _ ByVal lpPath As String) As Long #End If #Else 'Code für VBA 6 (32 bit) Public Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _ ByVal lpPath As String) As Long #End If Public Function MakeCompletePath(sPath As String) As Long '******************************************* 'Name: MakeCompletePath (Function) 'Purpose: Kompetten Pfad mit mehreren Unterverzeichnissen erstellen 'Author: Thomas Keßler 'Date: Oktober 26, 2010 'Inputs: sPath= Pfadangabe 'Output: 0=Fehler, 1=Erfolg '******************************************* Dim nResult As Long nResult = MakeSureDirectoryPathExists(sPath) MakeCompletePath = nResult End Function
Aufruf:
If MakeCompletePath("D:\users\Daten2\Test000\Test001\Test011\") <> 0 Then MsgBox "Pfad angelegt" Else MsgBox "Pfad konnte nicht angelegt werden" End If
würde das Verzeichnis "D:\users\Daten2\Test000\Test001\Test011\" erstellen,
egal ob schon die anderen Verzeichnisse vorhanden sind.
Ähnliche Artikel
Weiterlesen...