Rückkehr in VBA-Code-Beispiele

VBA – Dialogfenster „Datei öffnen“

VBA bietet Ihnen die Möglichkeit, eine Datei zum Öffnen mit der Methode Application.GetOpenFilename auszuwählen. In diesem Tutorial lernen Sie, wie Sie einen Dateidialog öffnen und Parameter festlegen.

Wenn Sie lernen wollen, wie man eine Datei öffnet und schließt, können Sie auf den folgenden Link klicken: VBA Datei öffnen/schließen

Öffnen eines Dateidialogs in VBA

Wenn Sie eine Datei in VBA öffnen möchten, müssen Sie zunächst einen Dateidialog öffnen, um eine Datei auszuwählen. Hier ist der Code:

Dim strDatei As String

strDatei = Application.GetOpenFilename(FileFilter:="Excel-Dateien (*.xlsx*), *.xlsx*", Title:="Eine Datei zum Öffnen auswählen", MultiSelect:=True)

Wie Sie sehen können, hat die Methode mehrere Parameter. Mit FileFilter können Sie die Dateitypen filtern, die Sie benötigen. In unserem Fall ist es .xlsx-Dateien.

Mit dem Parameter Title können Sie einen Titel für das Dialogfeld festlegen. Wenn Sie das Öffnen mehrerer Dateien erlauben wollen, müssen Sie MultipleSelect auf True setzen. Wenn Sie diesen Parameter nicht setzen, kann nur eine Datei ausgewählt werden.

vba dialogfeld datei oeffnen

Abbildung 1. Dialog zum Öffnen einer Datei

Wie Sie in Abbildung 1 sehen können, erscheint das Dialogfenster mit dem Titel „Eine Excel-Datei auswählen“. Es werden nur Excel-Dateien gefiltert und wir können mehrere Dateien auswählen.

Öffnen eines Dateidialogs in einem bestimmten Ordner

Wenn Sie ein Dialogfenster in einem bestimmten Ordner öffnen möchten, müssen Sie die Methode .FileDialog mit dem Parameter msoFileDialogFilePicker verwenden. In diesem Beispiel wird ein Dialogfenster im Ordner C:\VBA_Ordner geöffnet. Hier ist der Code:

Dim fd As Office.FileDialog
Dim strDatei As String

Set fd = Application.FileDialog(msoFileDialogFilePicker)

With fd

    .Filters.Clear
    .Filters.Add "Excel-Dateien", "*.xlsx?", 1
    .Title = "Eine Excel-Datei auswählen"
    .AllowMultiSelect = False

    .InitialFileName = "C:\VBA_Ordner"

    If .Show = True Then

        strDatei = .SelectedItems(1)

    End If

End With

Zuerst müssen Sie die Variable fd vom Typ Office.FileDialog und die String-Variable für die Dateiübernahme deklarieren:

Dim fd As Office.FileDialog
Dim strDatei As String

Danach müssen Sie fd auf Application.FileDialog(msoFileDialogFilePicker) setzen :

Set fd = Application.FileDialog(msoFileDialogFilePicker)

Jetzt können wir innerhalb von With fd und End With mehrere Parameter setzen:

.Filters.Clear

.Filters.Add "Excel-Dateien", "*.xlsx?", 1

.Title = "Eine Excel-Datei zum Öffnen auswählen"

.AllowMultiSelect = False

Hier löschen wir die Dateifilter (.Filters.Clear) und setzen sie auf .xlsx (.Filters.Add „Excel Files“, „*.xlsx?“, 1).

Außerdem können wir den Titel des Dialogfensters festlegen: .Title = „Eine Excel-Datei auswählen“.

Wir können den Benutzer darauf beschränken, nur eine Datei auszuwählen, indem wir die folgende Codezeile verwenden:

.AllowMultiSelect = False

Um ein Dialogfenster im gewünschten Ordner zu öffnen, müssen wir diese Zeile in den Code einfügen:

.InitialFileName = "C:\VBA_Ordner"

Am Ende öffnen wir einfach das Dialogfenster mit allen zuvor festgelegten Parametern:

If .Show = True Then

    strDatei = .SelectedItems(1)

End If

Wenn wir diesen Code ausführen, wird das Dialogfenster zum Öffnen der Datei im Ordner C:\VBA_Ordner angezeigt:

dialogfeld datei in spezifischem ordner oeffnen

Abbildung 2. Öffnen eines Dateidialogs in einem bestimmten Ordner

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!