Speichern einer Datei unter einem vom Benutzer gewählten Namen


In der letzten Ausgabe haben Sie das Objekt "FileDialog" kennengelernt, mit dem Sie Standard-Dialogfenster zum Speichern von Dateien anpassen und darstellen können. Das Praktische daran: Dieses Objekt steht Ihnen in allen Office-VBA-Anwendungen zur Verfügung.

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.



So speichern Sie eine Datei unter einem vom Benutzer gewählten Namen.

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.



Verzeichnis zur Auswahl vorgeben

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\ _
                               "Budget_2006_Gesamt.xls"



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


Zurück zu Entwickler!                              Office-VBA intern 30 Tage gratis testen!

Der Fachverlag für Computerwissen ist ein Unternehmensbereich der VNR Verlag für die Deutsche Wirtschaft AG
Theodor-Heuss-Str. 2-4 · D-53095 Bonn · Tel.: 02 28 - 95 50 190 · Fax: 02 28 - 36 96 001
USt.-ID: DE 812639372 · Amtsgericht Bonn, HRB 8165 · Vorstand: Helmut Graf · Vorsitzender des Aufsichtsrats: Norman Rentrop
Copyright © 2008 Fachverlag für Computerwissen. Alle Rechte vorbehalten. Webdesign, Typo3, Programmierung: SimpleThings GmbH