Met VBA kunt u een bestand kiezen om te openen met behulp van de Toepassing.GetOpenFilename methode. In deze zelfstudie leert u hoe u een bestandsdialoogvenster opent en parameters instelt.
Als u wilt leren hoe u een bestand opent en sluit, kunt u op deze link klikken: VBA Bestand openen/sluiten
Open een bestandsdialoogvenster in VBA
Als u een bestand in VBA wilt openen, moet u eerst een bestandsdialoogvenster openen om een bestand te kiezen. Hier is de code:
123 | Dim strFile As StringstrFile = Application.GetOpenFilename( |
Zoals u kunt zien, heeft de methode verschillende parameters. Bestandsfilter stelt u in staat om bestandstypen te filteren die u nodig heeft, in ons geval .xlsx-bestanden.
In de Titel parameter, kunt u een titel van het dialoogvenster instellen. Als u het openen van meerdere bestanden wilt toestaan, moet u instellen MeerdereSelecteren naar Waar. Als u deze parameter niet instelt, kan er slechts één bestand worden geselecteerd.
Afbeelding 1. Open een bestandsdialoogvenster
Zoals je kunt zien in Afbeelding 1, verschijnt het dialoogvenster met de titel Kies een Excel-bestand. Alleen Excel-bestanden worden gefilterd en we kunnen meerdere bestanden selecteren.
Open een bestandsdialoogvenster in een specifieke map
Als u een dialoogvenster in een specifieke map wilt openen, moet u de methode gebruiken: .Bestandsdialoogvenster met de parameter msoFileDialogFilePicker. In het voorbeeld openen we een dialoogvenster in de map C:\VBA-map. Hier is de code:
123456789101112131415161718192021 | Dim fd As Office.FileDialogDim strFile As StringStel fd = Application.FileDialog (msoFileDialogFilePicker) inmet fd.Filters.Wissen.Filters.Toevoegen "Excel-bestanden", "*.xlsx?", 1.Title = "Kies een Excel-bestand".AllowMultiSelect = False.InitialFileName = "C:\VBA-map"Als .Toon = Waar DanstrFile = .SelectedItems(1)Stop alsEindigt met |
Eerst moet je de variabele declareren fd type Office.FileDialog en de stringvariabele voor het nemen van bestanden:
12 | Dim fd As Office.FileDialogDim strFile As String |
Hierna moet u instellen: fd tot Application.FileDialog (msoFileDialogFilePicker):
1 | Stel fd = Application.FileDialog (msoFileDialogFilePicker) in |
Nu, binnen Met fd Eindig met, we kunnen meerdere parameters instellen:
1234567 | .Filters.Wissen.Filters.Toevoegen "Excel-bestanden", "*.xlsx?", 1.Title = "Kies een Excel-bestand".AllowMultiSelect = False |
Hier wissen we de bestandsfilters (.Filters.Wissen) en stel het in op .xlsx (.Filters.Add “Excel Files”, “*.xlsx?”, 1).
We kunnen ook de titel van het dialoogvenster instellen: .Title = “Kies een Excel-bestand”.
We kunnen een gebruiker beperken om slechts één bestand te selecteren door: .AllowMultiSelect = False
Om een dialoogvenster in de gewenste map te openen, moeten we deze regel van de code plaatsen:
1 | .InitialFileName = "C:\VBA-map" |
Aan het einde zullen we gewoon het dialoogvenster openen met alle eerder ingestelde parameters:
12345 | Als .Toon = Waar DanstrFile = .SelectedItems(1)Stop als |
Wanneer we deze code uitvoeren, verschijnt het dialoogvenster voor het openen van bestanden in de map C:\VBA-map:
Afbeelding 2. Open een bestandsdialoogvenster in een specifieke map