Dateiauswahl-Dialog in Word programmieren

Word-Makros so programmieren, dass der Benutzer Dateien auswählen kann

Von: Lorenz Hölscher
Stand: 27. Februar 2012 (aktualisiert)
5
(2)
Anmelden um Kommentare zu schreiben

Downloads zu diesem Beitrag

Über den Autor: Lorenz Hölscher

bild80517

Lorenz Hölscher ist freiberuflicher Dozent, Berater und Programmierer mit Schwerpunkt Anwendungs-Programmierung. Vorrangig widmet er sich Access, Word und Excel sowie begleitenden grafischen Arbeiten. Er legt viel Wert auf benutzerfreundliche Oberflächen und ordentliches Design in Optik und Programmierung. Zu Hilfe kommen ihm da seine langjährigen "branchenfremden" Erfahrungen als Architekt, Layouter und Designer.

Lorenz Hölscher bietet eigene Hilfeseiten an und hat bei Microsoft Press mehrere Bücher veröffentlicht zu Access 2007, Access 2007 VBA, Word 2007 VBA und Access 2010.

Beiträge des Autors als Atom-Feed Atom-Feed: Neues von akademie.de

In vielen Word-Makros soll ein Benutzer die Möglichkeit erhalten, mal eben den Namen und Pfad einer Hilfsdatei anzugeben oder die Ergebnisse in einer frei wählbaren Datei zu speichern. Lorenz Hölscher zeigt die nötigen Tricks, damit Sie das mit möglichst wenig Aufwand programmieren können.

Interne Word-Dialoge

Anders als in Excel (siehe Beitrag "Excel-VBA: Dateiauswahl-Dialog programmieren") gibt es in Word aber keinen direkt eingebauten VBA-Befehl, um den Benutzer eine Datei auswählen zu lassen. Immerhin gibt es dort eine Dialogs-Auflistung, mit deren Hilfe sich das Problem doch lösen lässt.

Dazu geben Sie am besten eine entsprechende Variable des Datentyps Dialog vor, deren Details Sie im Code dann bestimmen können. Um den üblichen DateiÖffnen-Dialog zu erzeugen, wie er unter Windows in allen Programmen erscheint, eignet sich die folgende Prozedur:

Sub DateiOeffnen()
    Dim dlgDatei As Dialog

    Set dlgDatei = Dialogs(wdDialogFileOpen)
    With dlgDatei
        If .Display() Then
            MsgBox "Die Datei '" & CurDir() & "\" & .Name & "' soll geöffnet werden."
        Else
            MsgBox "Der Benutzer hat abgebrochen.", vbCritical
        End If
    End With
End Sub

Der eigentliche Dialog wird der Variablen dlgDatei zugewiesen, die Konstante wdDialogFileOpen legt fest, dass es sich um den DateiÖffnen-Dialog handelt. Die Display-Methode gibt als Boolean-Rückgabewert an, ob der Dialog bestätigt oder abgebrochen wurde.

Gleichzeitig sorgt die Display-Methode auch dafür, dass er sich zwar komplett wie der DateiÖffnen-Dialog verhält, aber die angegebene Datei am Ende nicht öffnet. Soll der Dialog wirklich aktiv sein, müssen Sie stattdessen seine Execute-Methode aufrufen.

Windows-Version

Obwohl der VBA-Code völlig identisch ist, ändert sich der DateiÖffnen-Dialog mit der jeweiligen Windows-Version, so dass Sie automatisch immer einen aktuellen Dialog sehen. Mit Windows XP beispielsweise erscheint dieser Dialog:

Bild vergrößernDer DateiÖffnen-Dialog unter Windows XP

Führen Sie das Makro unter Vista aus, sieht Ihr Benutzer diesen Dialog:

Bild vergrößernDer DateiÖffnen-Dialog unter Vista

Der Name der vom Benutzer ausgewählten Datei ist in der Name-Eigenschaft des Objekts enthalten, allerdings ohne Pfad. Den Pfad ermitteln Sie völlig unabhängig davon mit der CurDir()-Funktion.

Diese Seite ist für Mitglieder von akademie.de reserviert.

Möchten Sie die Mitgliedschaft 14 Tage kostenlos testen und den Beitrag komplett lesen?

Ich bin bereits Mitglied
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein