Eine kleine Funktion um einen Ordner auszuwählen. Getestet unter MS Access und MS Excel. Eigentlich ist es ein Wrapper um den eingebauten Folderdialog. Aber man kann den ganzen Dialog über einen einzigen Befehl steuern und muss nicht jedes-mal alle Properties einzeln setzen.
Public Function folderDialog(Optional iStartFolder As Variant = false) As Variant
Der Rückgabewert ist ein String mit dem ausgewählten Ordnerpfad oder False, falls die Auswahl abgebrochen wurde
Normaler Start. Der Startornder wir dem System überlassen
Dim exportFolterPath As String exportFolterPath = folderDialog() If exportFolterPath then //TODO: Export FIle End If
Und falls man mit der Ordnersuche an einem bestimmten Ort starten will
exportFolterPath = folderDialog("C:\temp")
Attribute VB_Name = "udf_folderDialog" '------------------------------------------------------------------------------- 'File : udf_folderDialog.bas ' Copyright mpl by ERB software ' http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/getfolderdialog 'Environment : VBA 2010 + 'Version : 1.0.0 'Author : Stefan Erb (ERS) 'History : 06.06.2013 - 1.0.0 - ERS - Creation '------------------------------------------------------------------------------- Option Explicit '/** ' * öffnet die Auswahl für Ordner ' * @param Variant Ein Initialpfad oder false ' * @return Varaint Ein Pfad oder false ' */ Public Function folderDialog(Optional ByVal iStartFolder As Variant = Null) As Variant Dim fldR As FileDialog: Set fldR = Application.FileDialog(msoFileDialogFolderPicker) With fldR .Title = "Select a Folder" .AllowMultiSelect = False If IsNull(iStartFolder) Then .InitialFileName = "C:\" Else If Right(iStartFolder, 1) <> "\" Then .InitialFileName = iStartFolder & "\" Else .InitialFileName = iStartFolder End If End If If .Show <> -1 Then GoTo Exit_Handler folderDialog = .SelectedItems(1) End With Exit_Handler: Set fldR = Nothing End Function