Zur Erinnerung: Im ersten Schritt legen Sie eine Variable an, mit der Sie auf die Eigenschaften des Objekts "FileDialog" zugreifen können:
Dim fd As FileDialog |
Im zweiten Schritt weisen Sie dieser Variablen eine Instanz des Objekts zu. Anschließend können Sie die gewünschten Eigenschaften des Dialogfensters steuern, indem Sie direkt die Variable "fd" ansprechen.
Um den Dialog zum Speichern einer Datei zu erhalten, wählen Sie den Parameter "msoFileDialogSaveAs" ("fd" ist eine Objektvariable vom Typ "FileDialog"):
Set fd = Application.FileDialog(msoFileDialogSaveAs) |
Auch hier werden Sie in der Regel abhängig vom Inhalt oder der entsprechenden Abteilung in Ihrem Unternehmen einen Vorschlag für das Verzeichnis vorgeben wollen, in dem die Datei gespeichert werden soll und darüber hinaus sogar auch einen Vorschlag für den Namen der Datei.
Wollen Sie ein Verzeichnis Ihrer Wahl als Standardeinstellung vorgeben, verwenden Sie die folgende Anweisung:
fd.InitialFileName = "C:\Budgetplanung\Budget-2006\" |
Sie müssen die Verzeichnisangabe hier mit dem Zeichen "\" abschließen, andernfalls geht der Datei-Dialog davon aus, dass die Datei unter dem Namen "Budget-2006.xls" im Verzeichnis "C:\Budgetplanung" gespeichert werden soll.
Möchten Sie nicht nur ein Verzeichnis, sondern auch einen Dateinamen als Standardeinstellung vorgeben, setzen Sie den folgenden Programmcode ein:
fd.InitialFileName = "C:\Budgetplanung\Budget-2006\ _ |
Anschließend stellen Sie das Dialogfenster über die Show-Methode dar:
fd.Show |
Die letzte Vorgabe führt – nach Aufruf der Show-Methode – zu dem folgenden Dialogfenster:

Der Anwender kann durch Betätigung der Eingabe-Taste diesen Vorschlag einfach übernehmen. Er kann ihn aber natürlich auch durch entsprechende eigene Eingaben für das Verzeichnis und den Dateinamen ersetzen.
Falls eine Datei mit dem ausgewählten Namen - hier "Budget_2006_Gesamt.xls" - schon existiert, erscheint sofort nach Anklicken des Buttons "Übernehmen" ein entsprechender Hinweis:

Diese Meldung ist Bestandteil des FileDialogs. Sie kann nicht durch "Application.DisplayAlerts = False" unterdrückt werden.
Bei Betätigung der Schaltfläche "Nein" erhält der Anwender die Gelegenheit, im Datei-Dialog einen anderen Dateinamen einzugeben.
Auch beim Dialog "Speichern unter" wird bei Betätigung der Schaltfläche "Übernehmen" nicht automatisch gespeichert, sondern Sie erhalten über "fd.SelectedItems(1)" die vom Anwender vorgenommene Eingabe in Ihr Programm zurück und können dann gegebenenfalls nach entsprechenden Prüfungen die Speicherung vornehmen.
Falls Sie beim Datei-Dialog "Speichern unter" über die Eigenschaft "AllowMultiSelect" die Möglichkeit zur Mehrfachauswahl anfordern, dann wird diese Anforderung hier ignoriert.
Eine Einschränkung gibt es dagegen bei der Einstellung der Dateitypen. Sie können nur die von der jeweiligen Hostanwendung zur Verfügung gestellte Vorgabe der FileDialogFilters-Auflistung verwenden, nicht aber diese Liste verändern oder durch eine eigene ersetzen.
Auto: Dr. Dieter Klemke