Das FileDialog Objekt
Office XP wurde mit neuen Öffnen und Speichern Dialogen
ausgestattet. Wie Sie diese Dialoge mit VBA verwenden können, zeigt der
folgende Artikel. Die erforderlichen Objekte (Methoden, Eigenschaften u.
Konstanten) sind, wie alle gemeinsamen Features der Office Anwendungen,
in der Office 10.0 Object Library enthalten.
Der zugehörige Objektmodellausschnitt:
Jede Office Anwendungen hat eine Instanz des FileDialog-Objekts.
Einen Zugriff darauf bekommen Sie über die FileDialog Eigenschaft der
Application:
Dim oFileDialog As FileDialog
Set oFileDialog = Application.FileDialog(MsoFileDialogType)
Es gibt vier verschiedene MsoFileDialogTypen:
Public Enum MsoFileDialogType
msoFileDialogOpen=1
msoFileDialogSaveAs=2
msoFileDialogFilePicker=3
msoFileDialogFolderPicker=4
End Enum
Die wichtigsten Eigenschaften und Methoden an Beispielen:
Beispiel 1
Einen Ordner auswählen mit dem FolderPicker
Dim oFileDialog As FileDialog
Set oFileDialog =
Application.FileDialog(msoFileDialogFolderPicker)
With oFileDialog
.Title = "Wählen Sie
bitte den gewünschten Ordner aus!"
.ButtonName =
"Weiter"
.Show
End With
Mit der ButtonName - Eigenschaft können Sie die Beschriftung
der Standardschaltfläche (Öffnen) verändern. Solche
Eigenschaftsänderungen bleiben im FileDialog Objekt erhalten. D.h. Sie
müssen Sie zurücksetzen, wenn Sie bei einer späteren Verwendung
wieder Standardwerte haben möchten.
z.B. .ButtonName = ""
Mit der InitialFileName Eigenschaft können Sie vorgeben, welcher
Ordner ausgewählt werden soll. z.B. in Word:
.InitialFileName = ActiveDocument.Path &
"\*.doc"
Die Show-Methode zeigt den Dialog an und gibt einen Integer
Wert zurück, der über den verwendeten Button zum Schließen Auskunft
gibt. Das Systemmenüfeld und die Abbrechen Schaltfläche geben 0
zurück. Die Ok oder Öffnen Schaltfläche -1 (ist true)
If .Show = True Then
MsgBox .SelectedItems(1)
Else
MsgBox "Abbruch"
End If
Die SelectedItems Eigenschaft gibt eine
FileDialogsSelectedItems Auflistung zurück. Im Falle der Ordner Auswahl
kann es nur einer sein.
Beispiel 2
Dateien auswählen mit dem FilePicker
Bei diesem Dialog können Sie mit der AllowMultiSelect
Eigenschaft festlegen, ob mehrere Dateien ausgewählt werden dürfen.
Die Auswahl wird nacheinander in einer For Each Schleife verarbeitet:
Sub BspDateienAuswählen()
Dim oFileDialog As FileDialog
Set oFileDialog =
Application.FileDialog(msoFileDialogFilePicker)
With oFileDialog
.Title = "Grafiken
auswählen"
.ButtonName = "Katalog
erstellen"
.AllowMultiSelect = True
If .Show = True Then
Dim
vItem As Variant
For
Each vItem In .SelectedItems
'Verarbeitung starten
MsgBox vItem
Next
End If
End With
End Sub
Über die InitialView Eigenschaft legen Sie die verwendete Ansicht im
Dialog fest. z.B. Miniaturansichten:
.InitialView = msoFileDialogViewThumbnail
FileDialogFilters
Mit FileDialogFilters legen Sie die Auswahl an Dateitypen Ihrer
Dialoge fest.
With oFileDialog
.Filters.Clear
.Filters.Add
"Alles", "*.*"
.Filters.Add "Nur die
Texte", "*.rtf;*.txt;*.doc", 1
..
Die Clear Methode löscht eventuell bereits vorhandene Filter. Mit
Add können Sie weitere hinzufügen. Der Add Methode können Sie neben
Beschreibung und Extensionen noch eine optionale Zahl mitgeben, mit der
die Reihenfolge der Filter festgelegt wird
Beispiel 3
Dateien öffnen oder speichern
Mit den beiden übrig gebliebenen FileDialogs msoFileDialogOpen
und msoFileDialogSaveAs bilden Sie die Standard öffnen und
speichern unter Dialoge von Word nach.
Für diese beiden Dialoge gibt es die Execute Methode, die
anschließend das eigentliche öffnen oder speichern übernimmt. Sie hat unmittelbar
nach der Show Methode zu folgen.
If .Show =
True Then
.Execute
End If
Fazit
Diese Dialoge erfüllen sicherlich alles was an Öffnen, Einfügen
und Speicherfunktionalität in benutzerdefinierten Anwendungen benötigt
wird. Eine einheitliche Handhabung dieser Dialoge über alle Office
Anwendungen ist zu begrüßen. Leider bietet einem hier VBA bei der Programmierung einige
Methoden an, die in der Anwendung gar nicht möglich sind (z.B. dürfen
Sie bei Speichern unter .. keine Filter setzen)
|