Excel VBA FileDialog

Tijdens het werken kunnen er enkele scenario's zijn waarin we enkele andere werkmappen of andere bestanden moeten openen om gegevens te importeren of om een ​​referentie te nemen. Er is één methode om een ​​pad van het bestand in onze code in VBA op te geven waarmee het bestand of de map voor ons wordt geopend. Maar wat als we het pad niet herinneren, hoe kunnen we het bestand openen. Misschien moeten we eerst het pad doorzoeken en dan opnieuw het pad opgeven. VBA wordt geleverd met een oplossing die bekend staat als FileDialog.

FileDialog is een eigenschap in VBA waarmee we een bestand of map vanuit een pad kunnen openen. Met deze eigenschap hoeft een gebruiker niet het pad van de map op te geven, maar kan de gebruiker het pad selecteren. Niet alleen dit, FileDialog heeft in totaal vier eigenschappen. Ze staan ​​ook bekend als constanten voor deze eigenschap. Ze zijn als volgt:

  1. msoFileDialogFilePicker : hiermee kan de gebruiker een bestand selecteren.
  2. msoFileDialogFolderPicker : hiermee kan de gebruiker een map selecteren.
  3. msoFileDialogOpen : hiermee kan de gebruiker een bestand openen.
  4. msoFileDialogSaveAs: hiermee kan de gebruiker een bestand opslaan.

De methode om dit object in VBA te gebruiken is als volgt.

Application.FIledialog (Type Filedialog)

Het FileDialog-type kan een van de bovenstaande vier typen zijn. Laten we dit object nu in voorbeelden gebruiken om meer over deze objecteigenschap te weten te komen.

Hoe Excel VBA FileDialog te gebruiken?

Hieronder staan ​​de verschillende voorbeelden om FileDialog in Excel te gebruiken met behulp van VBA-code.

U kunt deze VBA FileDialog Excel-sjabloon hier downloaden - VBA FileDialog Excel-sjabloon

Excel VBA FileDialog - Voorbeeld # 1

Laat ons eerst de gebruiker helpen een bestand uit een bestemming te selecteren. In dit voorbeeld selecteert de gebruiker een bestand uit de map en geven we het pad voor het geselecteerde bestand weer.

Volg de onderstaande stappen om excel VBA FileDialog te gebruiken:

Stap 1: Ga naar het tabblad Ontwikkelaars en klik op Visual Basic.

Stap 2: Open een module via de menuoptie Invoegen zoals hieronder wordt weergegeven.

Stap 3: Start de subprocedure om aan het voorbeeld te werken.

Code:

 Sub SelectFile () Einde Sub 

Stap 4: Declareer een variabele als Filedialog zoals hieronder getoond.

Code:

 Sub SelectFile () Bestand dimmen als FileDialog End Sub 

Stap 5: Laten we nu dit object van de methode Application.Filedialog als volgt gebruiken.

Stap 6: Zodra we het haakje openen, zien we de optie voor vier FileDialog-typen, zoals weergegeven in de onderstaande afbeelding.

Stap 7: Selecteer de optie van het type Filedialog als msoFileDialogFilePicker

Code:

 Sub SelectFile () Bestand dimmen als FileDialog Bestand instellen = Application.FileDialog (msoFileDialogFilePicker) End Sub 

Stap 8: Nu moeten we het dialoogvenster voor dit voorbeeld maken, laten we With Statement als volgt gebruiken.

Code:

 Sub SelectFile () Bestand dimmen als FileDialog Bestand instellen = Application.FileDialog (msoFileDialogFilePicker) Met bestand End With End Sub 

Stap 9: Als er filters zijn, moeten we de filters wissen, een puntinstructie plaatsen en de verklaring schrijven zoals hieronder weergegeven.

Code:

 Sub SelectFile () Bestand dimmen als FileDialog Bestand instellen = Application.FileDialog (msoFileDialogFilePicker) Met File .Filters.Clear End With End Sub 

Stap 10: Willen we nu dat de gebruiker meerdere bestanden tegelijk of een enkel bestand selecteert? Laten we voor dit voorbeeld het afzonderlijke bestand per keer gebruiken, dus gebruik .Allowmultiselect als false.

Code:

 Sub SelectFile () Bestand dimmen als FileDialog Bestand instellen = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False End With End Sub 

Stap 11: Nu kunnen we het dialoogvenster als volgt weergeven om het dialoogvenster weer te geven.

Code:

 Sub SelectFile () Bestand dimmen als FileDialog Bestand instellen = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False .Show End With End Sub 

Stap 12: Zodra we de bovenstaande code hebben uitgevoerd, zien we het dialoogvenster als volgt.

Stap 13: Aangezien we het geselecteerde gebruikerspad moeten weergeven, declareert u een andere variabele als een tekenreeks in de code.

Code:

 Sub SelectFile () Dim-bestand als FileDialog Dim-pad als tekenreeks Set File = Application.FileDialog (msoFileDialogFilePicker) Met bestand. Filters.Clear .AllowMultiSelect = False. Weergeven met einde Sub 

Stap 14: We zullen een geselecteerde items-instructie gebruiken om het pad te vinden voor de geselecteerde bestandsgebruiker en deze als volgt opslaan in onze variabele.

Code:

 Sub SelectFile () Bestand dimmen als FileDialog Dim pad als tekenreeks Set File = Application.FileDialog (msoFileDialogFilePicker) Met bestand. Filters.Clear .AllowMultiSelect = False. Pad weergeven = .SelectedItems (1) Einde met einde Sub 

Stap 15: Gebruik na de With Statement de msgbox-functie om het adres van het geselecteerde bestand weer te geven.

Code:

 Sub SelectFile () Dim bestand als FileDialog Dim pad als tekenreeks Set File = Application.FileDialog (msoFileDialogFilePicker) met bestand. Filters.Clear .AllowMultiSelect = False. Show Path = .SelectedItems (1) Eindig met MsgBox Path End Sub 

Stap 16: Laten we de bovenstaande code uitvoeren en een bestand selecteren en op ok drukken om het pad als volgt te zien.

Excel VBA FileDialog - Voorbeeld # 2

Laten we nu een andere optie van het VBA FileDialog-object bekijken, namelijk msoFileDialogSaveAs. Deze eigenschap wordt gebruikt om een ​​bestand op een willekeurig pad op te slaan. Volg de onderstaande stappen om excel VBA FileDialog te gebruiken.

Stap 1: Laten we in dezelfde module nog een subprocedure schrijven om het bestand als volgt op te slaan.

Code:

 Sub SaveFile () Einde Sub 

Stap 2: Declareer nu twee variabelen een als tekenreeks en een andere als een geheel getal.

Code:

 Sub SaveFile () Dimkeuze als geheel getal, pad als tekenreekseinde Sub 

Stap 3: Laten we het dialoogvenster nu als volgt zichtbaar maken voor de gebruiker met behulp van de eigenschap show.

Code:

 Sub SaveFile () Dimkeuze als geheel getal, pad als tekenreekskeuze = Application.FileDialog (msoFileDialogSaveAs) .Toon weergeven Sub 

Stap 4: Gebruik nu de IF-instructie om de keuze van de gebruiker als volgt te bepalen.

Code:

 Sub SaveFile () Dimkeuze als geheel getal, pad als tekenreeks Choice = Application.FileDialog (msoFileDialogSaveAs) .Tonen als keuze 0 Sub beëindigen 

Stap 5: Laten we nu het pad krijgen dat door de gebruiker in onze padvariabele als volgt is geselecteerd.

Code:

 Sub SaveFile () Dimkeuze als geheel getal, pad als tekenreeks Choice = Application.FileDialog (msoFileDialogSaveAs) .Toon als keuze 0 dan Path = Application.FileDialog (msoFileDialogSaveAs) .SelectedItems (1) Sub-einde 

Stap 6: Laten we nu het resultaat weergeven met de msgbox-functie en de IF-lus beëindigen.

Code:

 Sub SaveFile () Dimkeuze als geheel getal, Pad als tekenreeks Choice = Application.FileDialog (msoFileDialogSaveAs) .Toon als keuze 0 dan Path = Application.FileDialog (msoFileDialogSaveAs) .SelectedItems (1) MsgBox Path End If End Sub 

Stap 7: Voer nu de bovenstaande code uit en bekijk het resultaat. Er wordt een dialoogvenster geopend om het bestand op te slaan.

Stap 8: Geef een bestandsnaam en druk op Opslaan. Het geeft ons het pad voor het bestand als volgt.

Dingen om te onthouden

  • FileDialog is een objecteigenschap van VBA.
  • We hoeven het pad naar code met dit object niet op te geven.
  • Met de dot-operator kunnen we de IntelliSense-eigenschappen van het object zien en gebruiken.

Aanbevolen artikelen

Dit is een handleiding voor VBA FileDialog. Hier bespreken we hoe het FileDialog-object in Excel wordt gebruikt met behulp van VBA-code, samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA-controlebestand bestaat
  2. Vergelijking oplossen in Excel
  3. VBA Bestand verwijderen
  4. Hoe labels afdrukken vanuit Excel?
  5. Voorbeelden om VBA-code te schrijven

Categorie: