Dateiauswahl-Dialog in Excel programmieren

Excel-VBA stellt zwei Befehle bereit, um Dateinamen mithilfe der normalen Datei-Dialoge zu ermitteln.

Von: Lorenz Hölscher
Stand: 2. Mai 2011
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

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 Sub

Wenn Sie diese Prozedur mit F5 starten, sehen Sie den üblichen DateiÖffnen-Dialog von Windows wie im folgenden Bild:

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