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.
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:
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!Learn More!