Verwendet man Microsoft Office, zum Beispiel Access, Excel oder Outlook, ist VBA ein willkommener Helfer, wenn es darum geht Arbeitsabläufe zu automatisieren und immer wiederkehrende Aufgaben mit einem Klick über Makros ausführen zu lassen.
Dabei kommt es oft vor, dass man Dateien, wie z.B. E-Mail-Anhänge, in einem Ordner speichern möchte. Meistens muss der passende Ordner dafür ebenfalls erstellt werden.
Einen neuen Ordner kann man sich in VBA ganz leicht mit dieser Funktion erstellen:
MkDir(c:\Users\username\meinPfad\neuerOrdnerName)
Code-Beispiel 1: Neuen Ordner erstellen
Das folgende Code-Beispiel ist eine öffentliche Funktion zum Erzeugen eines neuen Ordners. Der Pfad mit dem Ordnernamen wird innerhalb der Funktion definiert. Es wird in diesem Fall überprüft, ob der Ordner vorhanden ist oder nicht. Ist letzteres der Fall, wird die Funktion MkDir(…) ausgeführt und eine Meldung (MsgBox) ausgegeben. Die Zeile mit MsgBox ist für den ersten Test gedacht. Diese kann man löschen, da die Meldung in der produktiven Anwendung störend sein dürfte.
' erstellt einen Ordner
Public Sub MakeDir()
'String für Ordnerpfad definieren
Dim strFolderPath As String
strFolderPath = "c:\Users\username\meinPfad\neuerOrdnerName"
' Überprüfen, ob Ordner bereits existiert
If Dir(strFolderPath, vbDirectory) = "" Then
' Ordner anlegen
MkDir (strFolderPath)
MsgBox "Ordner wurde angelegt!"
Else
MsgBox "Ordner ist vorhanden!"
End If
End Sub
Code-Beispiel 2: Ordnerpfad als Parameter
Das folgende Code-Beispiel ist geeignet, um es in größeren Projekten zu verwenden. Die Funktion wird hier als Private deklariert. Dadurch erscheint diese auch nicht als ausführbares Makro. Der Ordnerpfad inkl. den neuen Ordnernamen wird als Parameter übergeben. So kann man diese Funktion aus anderen Funktionen, Klassen oder Formularen aufrufen.
' erstellt einen Ordner
Private Sub MakeDir(strFolderPath As String)
' Überprüfen, ob Ordner bereits existiert
If Dir(strFolderPath, vbDirectory) = "" Then
' Ordner anlegen
MkDir (strFolderPath)
Else
' mache irgendwas
End If
End Sub
Aufrufen der Funktionen
Will man die erstellten Funktionen innerhalb von anderen Code ausführen, so ruft man diese wie folgt auf:
' Code-Beispiel 1
MakeDir
' Code-Beispiel 2
Dim strNewFolderPath As String
strNewFolderPath = "c:\Users\username\meinPfad\neuerOrdnerName"
MakeDir strNewFolderPath
'Code-Beispiel 2 alternativ
MakeDir "c:\Users\username\meinPfad\neuerOrdnerName"
Microsoft Office: Ordner mit Makro erstellen
Oder man führt die Funktion, sofern diese als Public deklariert ist, direkt über den Makro-Editor der jeweiligen Office-Anwendung aus.