VBA FileSystemObject (FSO) - Cum se accesează FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) funcționează similar cu FileDialog, folosit pentru a obține acces la alte fișiere ale computerului la care lucrăm. De asemenea, putem edita aceste fișiere înseamnă a citi sau a scrie fișierul. Folosind FSO putem accesa fișiere, putem lucra cu acestea, putem modifica fișiere și foldere. FSO este instrumentul API important pe care îl putem accesa cu VBA. Ca parte a proiectului VBA, este posibil să trebuiască să accesăm câteva foldere și fișiere din computerul nostru pentru a face treaba.

Putem face multe sarcini folosind FSO, cum ar fi „pentru a verifica dacă folderul este disponibil sau nu”, Creați un folder sau fișiere noi, redenumiți folderul sau fișierele existente, obțineți lista tuturor fișierelor din dosar și, de asemenea, numele subdosarelor . În cele din urmă, putem copia fișiere dintr-o locație în alta.

Chiar și există alte funcții disponibile pentru a lucra cu foldere și fișiere, FSO este cea mai ușoară metodă de a lucra cu foldere și fișiere, păstrând codul VBA îngrijit și drept.

Putem accesa patru tipuri de obiecte cu FileSystemObject. Mai jos sunt acelea.

  1. Unitate: folosind acest obiect, putem verifica dacă unitatea menționată există sau nu. Putem obține calea, tipul de scop și dimensiunea întreprinderii.
  2. Folder: Acest obiect ne permite să verificăm dacă respectivul folder există sau nu. Putem crea, șterge, modifica, copia copii cu ajutorul acestui obiect.
  3. Fișier: Acest obiect ne permite să verificăm dacă fișierul respectiv există sau nu. Putem crea, șterge, modifica, copia fișiere folosind acest obiect VBA.
  4. Text Stream: Acest obiect ne permite să creăm sau să citim fișiere text.

Toate metodele de mai sus au metoda lor de a lucra. Pe baza cerințelor noastre, putem alege metoda fiecărui obiect.

Cum se activează FileSystemObject?

Nu este ușor accesibil în VBA. Deoarece accesarea fișierelor și folderelor este sarcina externă a excel, trebuie să activăm FileSystemObject. Pentru a încuraja, urmați pașii de mai jos.

Pasul 1: accesați Instrumente> Referințe.

Pasul 2 - Selectați opțiunea „Microsoft Scripting Runtime”

Derulați în jos și selectați opțiunea „Microsoft Scripting Runtime”. După alegerea opțiunilor, faceți clic pe OK.

Acum putem accesa FileSystemObject (FSO) în VBA.

Creați o instanță de FileSystemObject

Odată ce opțiunea „Microsoft Scripting Runtime” este activată din biblioteca de obiecte, trebuie să creăm un obiect de sistem de fișiere (FSO) prin codificare.

Pentru a crea instanța, declarați mai întâi variabila ca FileSystemObject.

După cum putem vedea, FileSystemObject apare în lista IntelliSense în VBA. Acest lucru nu ar fi disponibil înainte de a activa „Microsoft Scripting Runtime”.

Deoarece FSO este un obiect, trebuie să-l setăm pentru a crea o nouă instanță.

Acum putem accesa toate opțiunile FSO (FileSystemObject).

Exemple de utilizare a VBA FileSystemObject

Exemplul # 1 - Găsiți spațiul total pe unitate

Codul de mai jos va oferi spațiul total al unității.

Cod:

Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Create new drive object DriveSpace = DriveName.FreeSpace' This will get the free space a unității "C" DriveSpace = DriveSpace / 1073741824 'Aceasta va converti spațiul liber în GB DriveSpace = Round (DriveSpace, 2)' Round the total space MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub

Defalcarea codului.

În primul rând, am creat o instanță a FSO.

Dim MyFirstFSO Ca FileSystemObject Set MyFirstFSO = Nou FileSystemObject

În continuare, am declarat două variabile.

Dim DriveName As Drive Dim DriveSpace As Double

Deoarece DriveName este o variabilă Object, trebuie să setăm aceasta la FSO una din metoda FSO. Deoarece avem nevoie de caracteristica unității, am folosit opțiunea Obțineți unitatea și am menționat numele unității.

Setați DriveName = MyFirstFSO.GetDrive ("C:")

Pentru o altă variabilă, DriveSpace, vom atribui metoda spațiului liber al unității pe care o accesăm.

DriveSpace = DriveName.FreeSpace

De acum, ecuația de mai sus ne poate oferi spațiu liber pentru unitatea „C.” Deci, pentru a arăta rezultatul în GB, am împărțit spațiul deschis cu 1073741824

DriveSpace = DriveSpace / 1073741824

Apoi, vom rotunji numărul.

DriveSpace = Round (DriveSpace, 2)

În cele din urmă, arată rezultatul în Caseta de mesaje.

MsgBox „Drive” & DriveName & „are” & 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

Rulați acest cod prin intermediul tastei Excel F5 sau manual, apoi consultați rezultatul.

Exemplul # 3 - Verificați dacă fișierul există sau nu

Codul de mai jos va verifica dacă fișierul menționat este disponibil sau nu.

Cod:

Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Atunci MsgBox "Fișierul menționat este disponibil" Else MsgBox " Fișierul nu este disponibil "Termină dacă se termină Sub

Rulați acest cod manual sau utilizând tasta F5, apoi consultați rezultatul.

Articole interesante...