Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) funcționează similar cu FileDialog, folosit pentru a obține acces la alte fișiere de pe calculatorul pe care lucrăm. De asemenea, putem edita aceste fișiere înseamnă să citim sau să scriem fișierul. Utilizând FSO putem accesa fișiere, lucra cu ele, modifica fișiere și foldere. FSO este un instrument API important pe care îl putem accesa cu VBA. Ca parte a proiectului VBA, este posibil să avem nevoie să accesăm câteva dosare și fișiere din computerul nostru pentru a ne face treaba.

Putem face multe sarcini folosind FSO, cum ar fi „să verificăm dacă dosarul este disponibil sau nu”, să creăm un nou dosar sau fișiere, să redenumim dosarul sau fișierele existente, să obținem lista tuturor fișierelor din dosar și, de asemenea, numele subfolderelor. În cele din urmă, putem copia fișiere dintr-o locație în alta.

Chiar dacă există și alte funcții disponibile pentru a lucra cu dosare și fișiere, FSO este cea mai simplă metodă de a lucra cu dosare și fișiere păstrând codul VBA ordonat și direct.

Potem accesa patru tipuri de obiecte cu FileSystemObject. Mai jos sunt acestea.

  1. Drive: Folosind acest obiect, putem verifica dacă unitatea menționată există sau nu. Putem obține numele traseului, tipul de scop și dimensiunea întreprinderii.
  2. Folder: Acest obiect ne permite să verificăm dacă dosarul respectiv există sau nu. Putem crea, șterge, modifica, copia dosare folosind acest obiect.
  3. File: 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: Text Stream: Acest obiect ne permite să creăm sau să citim fișiere text.

Toate metodele de mai sus au metoda lor de lucru. În funcție de cerințele noastre, putem alege metoda fiecărui obiect.

Cum se activează FileSystemObject?

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

Pasul #1: Mergeți la Tools>References.

Pasul #2 – Selectați opțiunea ‘Microsoft Scripting Runtime’

Derulați în jos și selectați opțiunea ‘Microsoft Scripting Runtime’. După ce ați ales opțiunile, faceți clic pe OK.

Acum putem accesa FileSystemObject (FSO) în VBA.

Crearea unei instanțe de FileSystemObject

După ce opțiunea ‘Microsoft Scripting Runtime’ este activată din biblioteca Objects, trebuie să creăm un File System Object (FSO) prin codare.

Curs popular în această categorie

Training VBA (3 cursuri, 12+ proiecte)
4.6 (247 ratings) 3 Cursuri | 12 Proiecte practice | 43+ ore | Acces complet pe viață | Certificat de finalizare

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

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

Din moment ce FSO este un obiect, trebuie să îl setăm pentru a crea o nouă instanță.

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

Exemple de utilizare a VBA FileSystemObject

Puteți descărca acest șablon Excel VBA FileSystemObject aici – VBA FileSystemObject Excel Template

Exemplu #1 – Find the Total Drive Space

Codul de mai jos va da 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 of the drive "C" DriveSpace = DriveSpace / 1073741824 'This will convert the free space to GB DriveSpace = Round(DriveSpace, 2) 'Round the total space MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"End Sub

Descompunerea codului.

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

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

În continuare, am declarat două variabile.

Dim DriveName As DriveDim DriveSpace As Double

Din moment ce DriveName este o variabilă Object, trebuie să o setăm la FSO one a metodei FSO. Deoarece avem nevoie de caracteristica unității, am folosit opțiunea Get Drive și am menționat numele unității.

Set 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

Deocamdată, ecuația de mai sus ne poate obține spațiul liber al unității „C”. Deci, pentru a afișa rezultatul în GB, am împărțit spațiul liber la 1073741824

DriveSpace = DriveSpace / 1073741824

În continuare, vom rotunji numărul.

DriveSpace = Round(DriveSpace, 2)

În cele din urmă, vom afișa rezultatul în caseta de mesaje.

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

Când vom rula codul manual sau prin intermediul tastei de comandă rapidă F5, atunci în caseta de mesaje, vom obține spațiul liber al unității „C.”.”

Atunci, în calculatorul meu, unitatea C are 216,19 GB de spațiu liber de memorie.

Exemplu #2 – Verificați dacă dosarul există sau nu

Pentru a verifica dacă un anumit dosar există sau nu, folosiți codul de mai jos.

Dacă dosarul menționat este disponibil, ne va afișa căsuța cu mesajul „The Mentioned Folder is Available” (Dosarul menționat este disponibil). Dacă nu, ne va afișa caseta de mesaje VBA ca „The Mentioned Folder is Not Available.”

Cod:

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 IfEnd Sub

Executați acest cod prin intermediul tastei de comandă rapidă Excel F5 sau manual, apoi vedeți rezultatul.

Exemplu #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") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End IfEnd Sub

Executați acest cod manual sau folosind tasta F5, apoi vedeți rezultatul.

Articole recomandate

Acesta a fost un ghid pentru VBA FileSystemObject. Aici vom învăța cum să folosim FileSystemObject (FSO) în VBA pentru a accesa fișiere și foldere de pe calculator și exemple practice și un șablon excel descărcabil. Mai jos puteți găsi câteva articole utile din excel VBA –

  • Cuvântul cheie ME în VBA
  • FuncțiaStrComp în VBA
  • StrConv Funcție în VBA
  • VBA IIF
0 Acțiuni

Formare VBA (3 cursuri, 12+ Proiecte)

  • 3 Cursuri
  • 12 Proiecte practice
  • 43+ ore
  • Full Lifetime Access
  • Certificate of Completion

LEARN MORE >>

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.