28.02.2026, 11:07
Ich bat um Verbesserung:
Eine robuste, moderne und völlig unkritische Lösung für einen Dateiauswahldialog in VBA ist eine kleine, gekapselte Funktion auf Basis von Application.FileDialog. Sie kommt ohne API‑Deklarationen, ohne mshta.exe und ohne ActiveX‑Tricks aus und funktioniert stabil in allen aktuellen Office‑Versionen.
? Saubere, empfohlene VBA‑Funktion für einen Dateiauswahldialog
? Wie du die Funktion verwendest
? Warum diese Lösung besser ist
Eine robuste, moderne und völlig unkritische Lösung für einen Dateiauswahldialog in VBA ist eine kleine, gekapselte Funktion auf Basis von Application.FileDialog. Sie kommt ohne API‑Deklarationen, ohne mshta.exe und ohne ActiveX‑Tricks aus und funktioniert stabil in allen aktuellen Office‑Versionen.
? Saubere, empfohlene VBA‑Funktion für einen Dateiauswahldialog
Code:
Function SelectFile(Optional ByVal Title As String = "Datei auswählen", _
Optional ByVal InitialPath As String = "") As String
Dim fd As FileDialog
Dim result As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = Title
.AllowMultiSelect = False
If Len(InitialPath) > 0 Then
If Dir(InitialPath, vbDirectory) <> "" Then
.InitialFileName = InitialPath & "\"
End If
End If
If .Show = -1 Then
result = .SelectedItems(1)
Else
result = ""
End If
End With
SelectFile = result
End Function? Wie du die Funktion verwendest
Code:
Dim Datei As String
Datei = SelectFile("Bitte eine Datei wählen", "C:\Users\Ralf\Documents")
If Datei <> "" Then
MsgBox "Ausgewählte Datei: " & Datei
Else
MsgBox "Keine Datei ausgewählt."
End If? Warum diese Lösung besser ist
- Keine Sicherheitsrisiken (kein mshta, kein ActiveX, kein HTML‑Injection)
- Kompatibel mit Windows 10/11 und Office 2016–365
- Unternehmensrichtlinien blockieren sie nicht
- Dialog sieht nativ aus und verhält sich wie der Windows‑Explorer
- Einfach erweiterbar (Filter, Startordner, Mehrfachauswahl)


