VBA FileDialog - Hoe FilesDialog Box openen met VBA-code?

Inhoudsopgave

Excel VBA FileDialog

In VBA is fieldialog een eigenschap die wordt gebruikt om verschillende instanties weer te geven, in filedialog zijn er vier verschillende soorten constanten die bekend staan ​​als msofiledialogfilepicker die wordt gebruikt om een ​​bestand te selecteren uit een bepaald pad, de tweede is msofiledialogfolderpicker waarvan de naam suggereert wordt gebruikt om te kiezen een map en de derde is msofiledialog open om een ​​bestand te openen en de laatste is msofiledialogsaveas die wordt gebruikt om een ​​bestand op te slaan als een nieuw bestand.

Er zijn bepaalde omstandigheden waarin we de gegevens uit een ander bestand of een ander werkblad willen hebben, en aangezien VBA wordt gebruikt om ons werk te automatiseren, kunnen we verschillende andere bestanden openen met VBA, en dit wordt gedaan door het dialoogvenster Bestand te gebruiken, het coole deel van het gebruik van deze methode is dat we niet het pad naar de code hoeven op te geven, maar we vragen de gebruiker om door het bestand te bladeren.

Als onderdeel van het VBA-project kan het zijn dat we andere werkmappen moeten openen en een of andere taak ermee moeten uitvoeren. In een van de eerdere artikelen, "VBA Workbook.Open", hebben we laten zien hoe u bestanden opent met een opgegeven pad en een specifiek bestand. Daar moesten we het mappad en de bestandsnaam met de extensie opgeven. Maar wat als een gebruiker elke keer de verschillende bestanden uit de verschillende mappen moet selecteren? Dit is waar de optie "FileDialog" in beeld komt.

Hoe werkt VBA FileDialog Option?

"Als u het exacte pad niet weet, zal FileDialog het bestand voor u zoeken en selecteren." In plaats van het padadres en de bestandsnaam te vermelden, kunnen we een afzonderlijk dialoogvenster voor het openen van een bestand presenteren om het bestand uit een willekeurige map op de computer te selecteren.

"FileDialog" is een object in VBA. Om deze optie eerst te gebruiken, moeten we de variabele definiëren als FileDialog.

Zodra de variabele is gedeclareerd als "FileDialog", is het een objectvariabele. Om dit te gaan gebruiken, moeten we het object instellen met behulp van de Application.FileDialog.

Zoals we in de bovenstaande afbeelding kunnen zien, heeft FileDialog er vier opties mee.

  • msoFileDialogFilePicker: Deze optie opent het bestandskiezer-venster voor de gebruiker om het gewenste bestand naar wens te selecteren.
  • msoFileDialogFolderPicker: Deze optie opent het dialoogvenster of venster voor de gebruiker om de map te selecteren.
  • msoFileDialogOpen: hiermee kan de gebruiker het geselecteerde bestand vanuit de map openen.
  • msoFileDialogSaveAs: Hierdoor kan de gebruiker het bestand opslaan als een andere kopie.

Vanaf nu heb ik de optie van msoFileDialogFilePicker geselecteerd .

Nu moeten we het dialoogvenster ontwerpen dat voor ons verschijnt.

Met behulp van With Statement kunnen we het dialoogvenster ontwerpen.

Plaats een punt in de instructie with the om de IntelliSense-lijst met de eigenschappen en methoden van de FileDialog-optie te zien.

Om alleen de Excel-bestanden te zien wanneer het bestandsdialoogvenster wordt geopend, moeten we eerst alle toegepaste filters verwijderen.

Nu moeten we een nieuw filter toepassen als "Excel-bestanden" met de wildcard-extensie van de Excel-bestanden.

Laten we nu de titel van het bestandsdialoogvenster wijzigen.

We kunnen de gebruiker toestaan ​​om slechts één bestand tegelijk te selecteren, of we kunnen hem ook toestaan ​​om meerdere bestanden te selecteren. Hiervoor moeten we 'Allow Multi-Select' gebruiken.

We hebben hier twee opties. Als TRUE is geselecteerd, kan de gebruiker meerdere bestanden selecteren. Als dit het geval is, kan de FALSE-gebruiker slechts één bestand tegelijk selecteren.

Een ander ding dat we kunnen ontwerpen met FileDialog, is dat we kunnen vasthouden aan wat de standaardmap zou moeten zijn wanneer het bestandsdialoogvenster verschijnt. Voor dit gebruik, Initial File Name.

Hiervoor moeten we het adrespad van de standaardmap vermelden die moet worden geopend.

Nu moeten we tot slot de "Show" -methode toepassen om het bestandsdialoogvenster te zien.

Code:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Met Myfile .Filters.Clear .Filters.Add "Excel-bestanden", "* .xlsx?", 1 .Title = "Kies uw Excel-bestand !! ! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files". Show End With End Sub

Voer nu de VBA-code uit om het resultaat te zien.

Zoals we kunnen zien in het bovenstaande dialoogvenster met afbeeldingsbestanden, is de genoemde map standaard geopend.

Nu kunnen we elke submap selecteren en de Excel-bestanden selecteren.

Kijk naar de bovenstaande afbeelding, want we hebben de filterparameter alleen als "Excel-bestanden" toegepast.

Dit zal gewoon het bestand uit de genoemde map selecteren. Om het volledige pad op te slaan, moeten we nog een variabele declareren als een string.

Now inside the with the statement, select “SelectedItems.” Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts.” If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use the below code to select the files.

Code:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel-bestanden", "* .xlsx?", 1 .Title = "Kies uw Excel bestand!!!" .AllowMultiSelect = False .InitialFileName = "D: Excel Files" .Show FileAddress = .SelectedItems (1) Eindigen met MsgBox FileAddress End Sub

Interessante artikelen...