So ziemlich jedes VBA-Makro in Excel bietet dem Benutzer früher oder später an, bestimmte Dateien auszuwählen: zum Speichern, zum Auslesen von Daten oder für ähnliche Aktionen. Dabei werden oft mühsam handgestrickte Lösungen eingesetzt, um einen brauchbaren Pfad und Dateinamen zu finden. Lorenz Hölscher zeigt Ihnen, wie einfach das in Excel geht.
Nicht das Rad neu erfinden
Bevor Sie überlegen, wie Sie die Fähigkeiten des Windows-Datei-Dialogs nachbilden, direkt die gute Nachricht: Das ist nicht nötig, denn Sie können diesen direkt benutzen! Excel-VBA stellt zwei fertige Befehle bereit, um Dateinamen mithilfe der normalen Datei-Dialoge zu ermitteln:
GetOpenFilename() für die Auswahl einer vorhandenen Datei und
GetSaveAsFilename() für die Angabe einer neuen Datei unter Beachtung gültiger Pfade und Benennung.
Beide Dialoge unterscheiden sich optisch nicht voneinander, aber GetSaveAsFilename() erlaubt die Angabe eines neuen, noch nicht vorhandenen Dateinamens und GetOpenFilename() erlaubt das nicht.
Dateien öffnen und speichern in Word-VBA
Die hier gezeigten Befehle gelten nur in Excel. Für Word-VBA finden Sie im Beitrag "Word-VBA: Dateiauswahl-Dialog programmieren" die entsprechende Lösung.
System-Datei-Dialoge nutzen
Die Minimalversion zum Aufruf des DateiÖffnen-Dialogs sieht so aus wie im folgenden Code:
Sub OeffneDatei()
Dim varDatei As Variant
varDatei = Application.GetOpenFilename()
If varDatei = False Then
MsgBox "Der Benutzer hat abgebrochen.", vbInformation
Else
MsgBox "Folgende Datei wurde ausgewählt:" & vbCrLf & varDatei
End If
End SubWenn Sie diese Prozedur mit F5 starten, sehen Sie den üblichen DateiÖffnen-Dialog von Windows wie im folgenden Bild:
