User Tools

Site Tools


vba:functions:getfolderdialog

[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.

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

udf_folderDialog.bas
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
vba/functions/getfolderdialog.txt · Last modified: 08.07.2014 12:52:08 by yaslaw