Oftmals braucht man zum Speichern oder Öffnen einen Datei/Folder-Selector. Mit Office XP wurde dazu das FileDialog-Objekt eingeführt.
Hauptelement ist folgender Bestandteil
> Dim fldr As FileDialog
> Set fldr = Application.FileDialog(XXYY)
Zur Auswahl stehen: (MsoFileDialogType)
Die zwei wichtigsten hierbei sind der Zugriff auf Ordner-Pfade (GetFolder) und der Zugriff auf Datei-Pfade (GetFile)
GetFolder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
' Funktion zum Auswählen eines Ordners über ein Dialogfeld | |
Public Function GetFolder(strPath As String) As String | |
Dim fldr As FileDialog | |
Dim sItem As String | |
' Initialisierung des Ordnerauswahldialogs | |
Set fldr = Application.FileDialog(msoFileDialogFolderPicker) | |
With fldr | |
.Title = "Select a Folder" ' Setzt den Titel des Dialogs | |
.AllowMultiSelect = False ' Erlaubt keine Mehrfachauswahl | |
.InitialFileName = strPath ' Setzt den anfänglichen Pfad | |
' Zeigt den Dialog an und prüft, ob ein Ordner ausgewählt wurde | |
If .Show <> -1 Then GoTo NextCode | |
sItem = .SelectedItems(1) ' Speichert den ausgewählten Pfad | |
End With | |
NextCode: | |
GetFolder = sItem ' Gibt den ausgewählten Ordnerpfad zurück | |
Set fldr = Nothing ' Bereinigt das Dialogobjekt | |
End Function |
msoFileDialogFilePicker | 3 |
msoFileDialogFolderPicker | 4 |
msoFileDialogOpen | 1 |
msoFileDialogSaveAs | 2 |

GetFile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
' Funktion zum Auswählen einer Datei über ein Dialogfeld | |
Public Function GetFile(strPath As String) As String | |
Dim filedr As FileDialog | |
Dim pickedfile As Boolean | |
Dim myfile As String | |
' Initialisierung des Dateiauswahldialogs | |
Set filedr = Application.FileDialog(msoFileDialogFilePicker) | |
With filedr | |
.InitialFileName = strPath ' Setzt den anfänglichen Pfad | |
.AllowMultiSelect = False ' Erlaubt keine Mehrfachauswahl | |
.Title = "Select File" ' Setzt den Titel des Dialogs | |
.Filters.Clear ' Löscht vorhandene Filter | |
.Filters.Add "Picture Files", "*.jpg" ' Fügt Filter für Bilddateien hinzu | |
.Filters.Add "All Files", "*.*" ' Fügt Filter für alle Dateitypen hinzu | |
pickedfile = False | |
pickedfile = .Show ' Zeigt den Dialog an und speichert das Ergebnis | |
' Wenn eine Datei ausgewählt wurde | |
If pickedfile Then | |
myfile = .SelectedItems.Item(1) ' Speichert den ausgewählten Dateipfad | |
End If | |
End With | |
End Function |

Links: