Introducere în FileSystemObject

De ce folosim VBA? Folosim VBA pentru a ne automatiza sarcinile. În mod normal în excel lucrăm doar cu date prezente în rânduri și coloane care sunt sub formă de tabele sau ceva similar. Dar ce se întâmplă cu fișierele și folderele care nu fac parte din Excel? Ce se întâmplă dacă trebuie să folosim aceste date din orice fișier cum le accesăm. Aici este FileSystemObject util.

FileSystemObject sau FSO este utilizat pentru a accesa sistemul de fișiere de pe computerul nostru. Folosind aceasta, putem avea acces la toate dosarele de fișiere pe care le prezentăm pe computerul pe care îl lucrăm. FSO este practic un instrument API care este utilizat pentru a accesa alte fișiere. Acum, acest lucru nu este prezent în mod implicit în VBA, pe care îl vom afla ulterior în acest articol. Să înțelegem mai întâi ce este FSO. Mai devreme în VBA, aveam funcția DIR la care se face referire la accesarea altor fișiere și foldere de la un computer. Codificarea funcției DIR a fost foarte complexă. Dar în FSO lucrurile sunt diferite.

Acum există patru tipuri de obiecte pe care le putem accesa prin FSO și acestea sunt următoarele:

  • Drive: care este folosit pentru a avea acces la o unitate menționată.
  • Folder: Acesta este folosit pentru a avea acces la un folder menționat.
  • File: Acesta este folosit pentru a avea acces la un fișier menționat.
  • Text Stream: Cu acest obiect, putem citi sau scrie un fișier text.

Fiecare dintre obiectele enumerate mai sus are diferite metode pentru a le utiliza. De exemplu, dacă dorim să copiem un fișier, vom folosi metoda CopyFile sau vom șterge un folder, vom folosi metoda DeleteFolder și așa mai departe.

După cum am discutat mai sus, FSO nu este prezent în mod implicit în VBA, există două metode pentru a activa FSO în VBA.

  • Prima metodă este prin setarea referinței.
  • A doua metodă este să vă referiți la bibliotecă din cod.

În timp ce a doua metodă este mai complexă, se recomandă întotdeauna utilizarea primei metode, care este foarte simplă. Să urmăm acești pași de bază.

În VBA, accesați fila Instrumente, apoi accesați Referințe,

Va apărea o casetă de asistent, selectați Microsoft Scripting Runtime așa cum se arată mai jos și apăsați OK.

Acum putem accesa FSO în VBA. Acum să folosim acest lucru prin câteva exemple și să aflăm despre el.

Cum se utilizează VBA FileSystemObject în Excel?

Mai jos sunt diferite exemple de utilizare a funcției VBA FileSystemObject în Excel

Puteți descărca acest șablon VBA FileSystemObject Excel - șablonul VBA FileSystemObject Excel

VBA FileSystemObject - Exemplul # 1

Înainte de a începe să folosim FSO în Vba, mai întâi să învățăm cum să creăm instanțe în VBA.

Pasul 1: În modulul secundar creați o procedură secundară,

Cod:

 Sub Newfso () End Sub 

Pasul 2: Declarați o variabilă ca FileSystemObject așa cum se arată mai jos,

Cod:

 Sub Newfso () Dim A ca FileSystemObject Sub End 

Pasul 3: Acum trebuie să creăm o instanță, deoarece FSO este un obiect care folosește instrucțiunea SET, așa cum se arată mai jos,

Cod:

 Sub Newfso () Dim A As FileSystemObject Set A = Sub FileSystemObject New Sub 

Acum, această declarație ne va permite să creăm sau să modificăm fișiere sau foldere cu FSO.

Pasul 4: Acum putem vedea funcția IntelliSense după activarea FSO. Utilizați operatorul de puncte după cum urmează,

Cod:

 Sub Newfso () Dim A Ca FileSystemObject Set A = New FileSystemObject A. End Sub 

Ne-a oferit diverse opțiuni folosind funcția IntelliSense. Astfel creăm instanțe folosind FSO.

VBA FileSystemObject - Exemplul # 2

Acum, după ce am creat o instanță din Exemplul 1, să mergem mai departe pentru a o folosi și a verifica dacă un fișier sau folder există sau nu.

Pasul 1: După ce am creat un nou FileSystemObject, folosiți instrucțiunea IF pentru a determina dacă un folder există sau nu după cum urmează,

Cod:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject Dacă A.FolderExists ("C: \ Users \ Public \ Project") Atunci End Sub 

Pasul 2: Dacă folderul există, vrem să afișăm folderul să existe și dacă nu vrem să afișeze acel folder nu există.

Cod:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject Dacă A.FolderExists ("C: \ Users \ Public \ Project") Atunci MsgBox "Folder Există" Încă MsgBox "Folderul nu există" End If End Sub 

Pasul 3: Acum executați codul de mai sus și vedeți rezultatul după cum urmează,

Dosarul există în desktopul meu, astfel încât vom primi mesajul că folderul există.

VBA FileSystemObject - Exemplul # 3

De când am discutat că FSO are diverse obiecte, cum ar fi unitățile. Să aflăm cât spațiu am disponibil în unitatea mea E.

Pasul 1: Începeți cu o altă subprocedură după cum urmează,

Cod:

 Sub Newfso1 () End Sub 

Pasul 2: Acum declarați o variabilă ca FileSystemObject și setați-o la o nouă instanță, după cum urmează,

Cod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = Sub FileSystemObject New Sub 

Pasul 3: Acum, deoarece folosim proprietatea Drive, declarăm o variabilă ca tip Drive și o variabilă dublă pentru a reține datele pentru spațiu după cum urmează,

Cod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace ca Double End Sub 

Pasul 4: Acum să creăm un obiect nou de unitate, așa cum se arată mai jos,

Cod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") End Sub 

Aceasta este una dintre metodele FSO pe care le utilizăm pentru a accesa unitatea.

Pasul 5: Vom folosi o altă metodă FSO pentru a obține spațiul liber al unității și a-l stoca în variabila definită pentru stocarea spațiului de acționare,

Cod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Pasul 6: Să calculăm acum spațiul în GB după cum urmează,

Cod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) Sub final 

Pasul 7: Afișează acum valoarea stocată în spațiul Drive folosind funcția msgbox după cum urmează,

Cod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "Drive" & D & "are" & Dspace & "GB Free Space" End Sub 

Pasul 8: Executați codul de mai sus pentru a afla rezultatul de mai jos,

VBA FileSystemObject - Exemplul # 4

Acum să creăm un nou folder într-o locație specificată folosind FSO.

Pasul 1: Să începem din nou cu o altă subprocedură după cum urmează,

Cod:

 Sub Newfso2 () End Sub 

Pasul 2: Să urmăm aceiași pași și să creăm o instanță după cum urmează,

Cod:

 Sub Newfso2 () Dim A As FileSystemObject Set A = Sub FileSystemObject New Sub 

Pasul 3: Acum vom folosi metoda Create Folder pentru a crea un folder nou într-o locație specificată,

Cod:

 Sub Newfso2 () Dim A As FileSystemObject Set A = New FileSystemObject A.CreateFolder ("C: \ Users \ Public \ Project \ FSOExample") 

Pasul 4: Executați codul de mai sus și vedeți rezultatul pe desktop după cum urmează,

Am creat cu succes un nou folder în locația specificată.

Lucruri de reținut în VBA FileSystemObject

  • FSO este un instrument de aplicație API.
  • FSO nu este disponibil în mod implicit în VBA.
  • Cu FSO putem crea, modifica sau citi fișiere și foldere într-un computer.
  • De asemenea, putem folosi FSO pentru unitățile noastre de rețea.

Articole recomandate

Acesta este un ghid pentru VBA FileSystemObject. Aici vom discuta despre cum să folosiți VBA FileSystemObject în Excel împreună cu câteva exemple practice și șablonul excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Ghid complet pentru VBA Workbook
  2. Funcția INDIRECT în Excel
  3. Funcția de numărare VBA
  4. Funcția Excel XOR

Categorie: