1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

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