Excel VBA FileSystemObject (FSO)
VBA FileSystemObject (FSO) deluje podobno kot FileDialog in se uporablja za dostop do drugih datotek računalnika, v katerem delamo. Te datoteke lahko tudi uredimo, kar pomeni, da datoteko preberemo ali zapišemo. Z uporabo FSO lahko dostopamo do datotek, delamo z njimi, spreminjamo datoteke in mape. FSO je pomembno orodje API, do katerega lahko dostopamo z VBA. Kot del projekta VBA bomo morda morali dokončati delo v nekaj mapah in datotekah v računalniku.
Veliko opravil lahko opravimo z uporabo FSO, na primer »preveriti, ali je mapa na voljo ali ne«, ustvariti novo mapo ali datoteke, preimenovati obstoječo mapo ali datoteke, dobiti seznam vseh datotek v mapi in tudi imena podmap. . Končno lahko kopiramo datoteke z enega mesta na drugega.
Na voljo so tudi druge funkcije za delo z mapami in datotekami, vendar je FSO najlažji način za delo z mapami in datotekami, tako da je koda VBA urejena in ravna.
Z FileSystemObject lahko dostopamo do štirih vrst predmetov. Spodaj so navedeni.
- Pogon: S tem objektom lahko preverimo, ali omenjeni pogon obstaja ali ne. Lahko dobimo ime poti, vrsto namena in velikost podjetja.
- Mapa: Ta predmet nam omogoča, da preverimo, ali določena mapa obstaja ali ne. S tem predmetom lahko ustvarjamo, brišemo, spreminjamo in kopiramo mape.
- Datoteka: Ta predmet nam omogoča, da preverimo, ali določena datoteka obstaja. S tem objektom VBA lahko ustvarjamo, brišemo, spreminjamo in kopiramo datoteke.
- Besedilni tok: Ta predmet nam omogoča ustvarjanje ali branje besedilnih datotek.
Z vsemi zgoraj navedenimi metodami je mogoče delati. Glede na naše zahteve lahko izberemo način vsakega predmeta.

Kako omogočiti FileSystemObject?
V VBA ni lahko dostopen. Ker je dostop do datotek in map zunanja naloga excela, moramo omogočiti FileSystemObject. Za spodbudo sledite spodnjim korakom.
1. korak: Pojdite na Orodja> Reference.

2. korak - Izberite možnost »Microsoft Scripting Runtime«
Pomaknite se navzdol in izberite možnost »Microsoft Scripting Runtime«. Po izbiri možnosti kliknite V redu.

Zdaj lahko dostopamo do FileSystemObject (FSO) v VBA.
Ustvarite primerek FileSystemObject
Ko je v knjižnici Objects omogočena možnost 'Microsoft Scripting Runtime', moramo s kodiranjem ustvariti objekt datotečnega sistema (FSO).
Če želite ustvariti primerek, spremenljivko najprej prijavite kot FileSystemObject.

Kot lahko vidimo, se FileSystemObject pojavi na seznamu IntelliSense v VBA. To ne bi bilo na voljo, preden omogočimo 'Microsoft Scripting Runtime'.
Ker je FSO objekt, ga moramo nastaviti tako, da ustvari nov primerek.

Zdaj imamo dostop do vseh možnosti FSO (FileSystemObject).

Primeri uporabe VBA FileSystemObject
Primer # 1 - Poiščite skupni prostor za pogon
Spodnja koda bo podala celoten prostor pogona.
Koda:
Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Ustvari nov pogon pogon DriveSpace = DriveName.FreeSpace' To bo dobilo prosti prostor pogona "C" DriveSpace = DriveSpace / 1073741824 'To bo pretvorilo prosti prostor v GB DriveSpace = Round (DriveSpace, 2)' Zaokroži celoten prostor MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Pod

Razčlenitev kodeksa.
Najprej smo ustvarili primerek FSO.
Zatemni MyFirstFSO kot FileSystemObject Nastavi MyFirstFSO = Nov FileSystemObject
Nato smo razglasili dve spremenljivki.
Dim DriveName As Drive Dim DriveSpace As Double
Ker je DriveName Object spremenljivka, moramo to nastaviti na FSO kot eno od metod FSO. Ker potrebujemo značilnosti pogona, smo uporabili možnost Pridobi pogon in omenili ime pogona.
Nastavite DriveName = MyFirstFSO.GetDrive ("C:")
Za drugo spremenljivko, DriveSpace, bomo dodelili način prostega prostora pogona, do katerega dostopamo.
DriveSpace = DriveName.FreeSpace
Zdaj nam lahko zgornja enačba omogoči prosti prostor pogona "C." Za prikaz rezultata v GB smo odprti prostor razdelili s 1073741824
DriveSpace = DriveSpace / 1073741824
Nato bomo številko zaokrožili.
DriveSpace = Round (DriveSpace, 2)
Na koncu rezultat pokažite v oknu za sporočila.
MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB"
When we run the code manually or through shortcut key F5, then in the message box, we will get the free space of the drive “C.”

So, in my computer Drive C has 216.19 GB of free space memory.
Example #2 - Check Whether the Folder Exists or Not
To check whether the particular folder exists or not, use the below code.
If the mentioned folder is available, it will show us the message box as “The Mentioned Folder is Available.” If not, it will show the VBA message box as “The Mentioned Folder is Not Available.”
Code:
Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:Excel FilesVBAVBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub

Zaženite to kodo prek Excelove bližnjične tipke F5 ali ročno, nato si oglejte rezultat.

3. primer - preverite, ali datoteka obstaja ali ne
Spodnja koda bo preverila, ali je omenjena datoteka na voljo ali ne.
Koda:
Sub FSO_Example3 () Zatemni MyFirstFSO kot FileSystemObject Nastavi MyFirstFSO = Nov FileSystemObject Če MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Nato MsgBox "Omenjena datoteka je na voljo" Else MsgBox Datoteka ni na voljo "End If End Sub

To kodo zaženite ročno ali s tipko F5, nato si oglejte rezultat.
