VBA FileSystemObject (FSO) | Kako dostopati do FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) deluje podobno kot FileDialog in se uporablja za dostop do drugih datotek računalnika, na 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«, ustvariti novo mapo ali datoteke, preimenovati obstoječo mapo ali datoteke, dobiti seznam vseh datotek v mapi in tudi imena podmap ter 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 4 vrst predmetov. Spodaj so navedeni.

  1. Pogon: S tem objektom lahko preverimo, ali omenjeni pogon obstaja ali ne, lahko dobimo ime poti, vrsto pogona in velikost pogona.
  2. 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.
  3. 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.
  4. Besedilni tok: Ta predmet nam omogoča ustvarjanje ali branje besedilnih datotek.

Vse zgoraj navedene metode imajo svojo lastno metodo za delo. 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 omogočanje 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 imamo dostop do FileSystemObject (FSO) v vba.

Ustvarite primerek FileSystemObject

Ko je v knjižnici Objekti omogočena možnost 'Microsoft Scripting Runtime', moramo s kodiranjem ustvariti primerek predmeta datotečnega sistema (FSO).

Če želite ustvariti primerek, spremenljivko najprej razglasite kot FileSystemObject.

Kot vidimo, se FileSystemObject pojavlja 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

To predlogo VBA FileSystemObject Excel lahko prenesete tukaj - Predloga VBA FileSystemObject Excel

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.

 Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject

Next, we have declared two variables.

 Dim DriveName As Drive Dim DriveSpace As Double 

Since DriveName is an Object variable we need to set this to FSO one of the FSO method. Since we need the characteristic of the drive we have used Get Drive option and mentioned the drive name

 Set DriveName = MyFirstFSO.GetDrive("C:")

Now for another variable DriveSpace, we will assign the free space method of the drive we are accessing.

DriveSpace = DriveName.FreeSpace

As of now, the above equation can get us free space of the drive “C”. So to show the result in GB we have divided the free space by 1073741824

DriveSpace = DriveSpace / 1073741824

Next, we will round the number.

DriveSpace = Round(DriveSpace, 2)

Finally, show the result in Message Box.

MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"

When we run the code manually or through shortcut key F5, then in 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 then 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 Files\VBA\VBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub 

Run this code through the excel Shortcut key F5 or manually, then see the result.

Example #3 – Check Whether the File Exists or Not

Below code will check whether the mentioned file is available or not.

Code:

 Sub FSO_Example3() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists("D:\Excel Files\VBA\VBA Files\Testing File.xlsm") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End If End Sub 

Run this code manually or using the F5 key, then see the result.