VBA FileDialog | Hogyan nyitható meg a FilesDialog Box a VBA kód használatával?

Excel VBA FileDialog

A VBA-ban a fieldialog egy olyan tulajdonság, amelyet különböző példányok ábrázolására használnak, a filedialog-ban négy különböző típusú konstans létezik, amelyek msofiledialogfilepicker néven ismertek, és ezzel egy fájlt választanak ki egy adott útvonalról, a második pedig az msofiledialogfolderpicker, amely a név szerint azt választja egy mappa, a harmadik pedig az msofiledialog nyílik meg egy fájl megnyitására, az utolsó pedig az msofiledialogsaveas, amely egy fájl új fájlként történő mentésére szolgál.

Vannak bizonyos esetek, amikor bármilyen más fájlból vagy bármely más munkalapról szeretnénk adatokat kapni, és mivel a VBA-t használjuk a munkánk automatizálására, a VBA használatával más fájlokat is megnyithatunk, és ezt a Filedialog használatával végezzük A módszer az, hogy nem kell megadnunk a kód elérési útját, ehelyett arra kérjük a felhasználót, hogy böngésszen a fájlban.

A VBA projekt részeként szükség lehet más munkafüzetek megnyitására és valamilyen feladat végrehajtására velük. Az egyik korábbi cikkünkben, a „VBA Workbook.Open” -ben bemutattuk, hogyan lehet megnyitni a megadott elérési utat tartalmazó fájlokat. Itt meg kellett adnunk a mappa elérési útját és a fájl nevét annak kiterjesztésével. De mi van akkor, ha a felhasználónak minden alkalommal ki kell választania a különböző fájlokat a különböző mappákból. Itt jön a képbe a „FileDialog” opció.

Hogyan működik a VBA FileDialog Option?

"Ha nem tudja a pontos elérési utat, a FileDialog megtalálja és kiválasztja a fájlt." Az útvonal címének és fájlnevének megemlítése helyett külön megadhatunk egy fájlnyitó párbeszédablakot, hogy kiválasszuk a fájlt a számítógép bármely mappájából.

Ezt a VBA FileDialog Excel sablont innen töltheti le - VBA FileDialog Excel sablont

A „FileDialog” egy objektum a VBA-ban. Ennek az opciónak a használatához először meg kell határoznunk a változót FileDialog néven.

Miután a változót „FileDialog” néven deklaráltuk, ez egy objektumváltozó. Ennek használatához be kell állítanunk az objektumot az Application.FileDialog használatával.

Amint a fenti képen láthatjuk, a FileDialog négy lehetőséggel rendelkezik.

  • msoFileDialogFilePicker: Ez az opció megnyitja a fájlválasztó ablakot a felhasználó előtt, hogy kiválassza a kívánt fájlt a kívánsága szerint.
  • msoFileDialogFolderPicker: Ez az opció megnyitja a párbeszédpanelt vagy ablakot a felhasználó előtt a Mappa kiválasztásához.
  • msoFileDialogOpen: Ez lehetővé teszi a felhasználó számára, hogy megnyissa a kiválasztott fájlt a mappából.
  • msoFileDialogSaveAs: Ez lehetővé teszi a felhasználó számára, hogy más fájlként mentse a fájlt.

Mostantól az msoFileDialogFilePicker opciót választottam.

Most meg kell terveznünk az előttünk megjelenő párbeszédpanelt.

A With Statement használatával megtervezhetjük a párbeszédpanelt.

A with utasítással tegyen egy pontot a FileDialog beállítás tulajdonságainak és módszereinek IntelliSense listájának megtekintéséhez.

Ahhoz, hogy csak az excel fájlokat láthassuk, amikor megnyílik a fájl párbeszédpanel, először el kell távolítanunk az alkalmazott szűrőket.

Most új szűrőt kell alkalmaznunk „Excel Files” néven az Excel fájlok helyettesítő karakteres kiterjesztésével.

Most változtassuk meg a fájl párbeszédpanel címét.

Engedélyezhetjük a felhasználónak, hogy egyszerre csak egy fájlt válasszon, vagy azt is, hogy több fájlt is kiválasszon. Ehhez az „Allow Multi-Select” lehetőséget kell használnunk.

Két lehetőségünk van itt. Ha az IGAZ van kiválasztva, akkor a felhasználó több fájlt választhat ki, ha a FALSE felhasználó egyszerre csak egy fájlt választhat ki.

Egy másik dolog, amelyet a FileDialog segítségével megtervezhetünk, az, hogy a fájl párbeszédpanel megjelenésekor valóban ragaszkodhatunk ahhoz, hogy mi legyen az alapértelmezett mappa. Erre a célra a Initial File Name.

Ehhez meg kell említenünk az alapértelmezett megnyitandó mappa címét.

Végül alkalmaznunk kell a „Megjelenítés” módszert a fájl párbeszédpanel megjelenítéséhez.

Kód:

Sub DoEvents_Example1 () Dim Myfile as FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Válassza ki az Excel fájlt !! ! " .AllowMultiSelect = Hamis .InitialFileName = "D: \ Excel fájlok".

Most futtassa a VBA kódot az eredmény megtekintéséhez.

Mint a fenti képfájlból láthatjuk, a párbeszédpanel alapértelmezés szerint megnyitotta az említett mappát.

Most bármelyik almappát kiválaszthatjuk, és kiválaszthatjuk az excel fájlokat.

Nézze meg a fenti képet, mert a szűrő paramétert csak „Excel fájlokként” alkalmaztuk.

Ez csak kiválasztja a fájlt az említett mappából. A teljes elérési út tárolásához még egy változót kell stringként deklarálnunk.

Most a utasítással válassza ki a „SelectedItems” elemet. Rendelje hozzá a kijelölt elemek mappa elérési útját az újonnan definiált változóhoz.

Most végül mutassa meg a kiválasztott mappa elérési útját a VBA üzenetmezőben.

Most futtatom a programot, hogy lássam a párbeszédpanelt.

Most a fájl nevét választottam az „1. Charts.xlsx ”a„ Charts ”almappában. Ha rákattintok az OK gombra, akkor a teljes mappa elérési útját láthatjuk az üzenetmezőben.

Így a FileDialog opcióval kiválaszthatjuk a fájlokat az Excel mappájából. A fájlok kiválasztásához használja az alábbi kódot.

Kód:

 Sub DoEvents_Example1() Dim Myfile As FileDialog Set Myfile = Application.FileDialog(msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "*.xlsx?", 1 .Title = "Choose Your Excel File!!!" .AllowMultiSelect = False .InitialFileName = "D:\Excel Files" .Show FileAddress = .SelectedItems(1) End With MsgBox FileAddress End Sub