======[VBA] folderDialog()======
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.
{{:vba:functions:udf_folderdialog.bas|download udf_folderdialog.bas}}
===== Definition =====
Public Function folderDialog(Optional iStartFolder As Variant = false) As Variant
==== Parameterliste ====
***//iStartFolder//** Gibt den Start-Pfad oder False an.
==== Rückgabewert====
Der Rückgabewert ist ein String mit dem ausgewählten Ordnerpfad oder False, falls die Auswahl abgebrochen wurde
=== Anwendungsbeispiele ===
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")
===== Code =====
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
{{tag>VBA MS_Access}}