Uvod u FileSystemObject

Zašto koristimo VBA? VBA koristimo za automatizaciju naših zadataka. Normalno u excelu radimo samo s podacima koji su prisutni u redovima i stupcima koji su u obliku tablica ili tako nečega. Ali što je s datotekama i mapama koje nisu dio programa excel? Što ako trebamo koristiti te podatke iz bilo koje datoteke kako joj pristupimo. Ovdje vam dolazi u prilog FileSystemObject.

FileSystemObject ili FSO koristi se za pristup sistemu datoteka s našeg računala. Pomoću toga možemo imati pristup svim mapama datoteka koje imamo na računalu na kojem radimo. FSO je u osnovi API alat koji se koristi za pristup drugim datotekama. Ovo sada nije podrazumijevano u VBA, o čemu ćemo kasnije saznati u ovom članku. Da prvo razumemo što je FSO. Ranije u VBA imali smo funkciju DIR koja se odnosila na pristup drugim datotekama i mapama s računala. Kodiranje za DIR funkciju bilo je vrlo složeno. Ali u FSO-u su stvari drugačije.

Sada postoje četiri vrste objekata kojima možemo pristupiti putem FSO-a i to su kako slijedi:

  • Pogon: koji se koristi za pristup navedenom pogonu.
  • Mapa: Koristi se za pristup navedenoj mapi.
  • Datoteka: koristi se za pristup navedenoj datoteci.
  • Tekstualni tok: S ovim objektom možemo čitati ili pisati tekstualnu datoteku.

Svaki od gore navedenih objekata ima različite metode za njihovo korištenje. Na primjer, ako želimo kopirati datoteku, upotrijebit ćemo metodu CopyFile ili izbrisati mapu, koristit ćemo metodu DeleteFolder i tako dalje.

Kao što sam gore raspravljao FSO nije uobičajeno prisutan u VBA, postoje dvije metode za omogućavanje FSO u VBA.

  • Prva metoda je postavljanjem referentne vrijednosti.
  • Druga metoda je upućivanje na biblioteku iz koda.

Dok je druga metoda složenija, preporučuje se upotreba prve metode koja je vrlo jednostavna. Slijedimo ove osnovne korake.

U VBA idite na karticu Alati, a zatim idite na Reference,

Pojavit će se okvir čarobnjaka, odaberite Microsoft Scripting Runtime kao što je prikazano u nastavku i pritisnite OK.

Sada možemo pristupiti FSO-u u VBA. Sada ćemo to iskoristiti kroz neke primjere i naučiti o tome.

Kako se koristi VBA FileSystemObject u Excelu?

Ispod su sljedeći primjeri za korištenje funkcije VBA FileSystemObject u Excelu

Ovdje možete preuzeti ovaj VBA FileSystemObject Excel predložak - VBA FileSystemObject Excel predložak

VBA FileSystemObject - Primjer # 1

Prije nego što počnemo koristiti FSO u Vbi, prvo naučimo kako stvarati instance u VBA.

Korak 1: U pod modulu izradite potprogram,

Kodirati:

 Sub Newfso () Kraj Sub 

2. korak: deklarirajte varijablu kao FileSystemObject kao što je prikazano u nastavku,

Kodirati:

 Sub Newfso () Dim A kao FileSystemObject Kraj Sub 

Korak 3: Sada moramo stvoriti instancu jer je FSO objekt pomoću izraza SET kao što je prikazano u nastavku,

Kodirati:

 Sub Newfso () Dim A kao FileSystemObject Set A = New FileSystemObject End Sub 

Sada će nam ova izjava omogućiti stvaranje ili izmjenu datoteka ili mapa pomoću FSO-a.

Korak 4: Sada možemo vidjeti značajku IntelliSense nakon što je omogućio FSO. Operator točka koristiti na sljedeći način,

Kodirati:

 Sub Newfso () Dim A kao FileSystemObject Set A = New FileSystemObject A. Kraj Sub 

Dali su nam razne mogućnosti pomoću IntelliSense mogućnosti. Ovako stvaramo instance pomoću FSO-a.

VBA FileSystemObject - Primjer # 2

Budući da smo u primjeru 1 stvorili instancu, idemo dalje kako bismo je koristili i provjerili postoje li datoteka ili mapa ili ne.

Korak 1: Nakon što smo stvorili novi FileSystemObject, pomoću izraza IF odredite postoji li mapa na sljedeći način ili ne,

Kodirati:

 Sub Newfso () Dim A kao FileSystemObject Set A = New FileSystemObject Ako je A.FolderExists ("C: \ Users \ Public \ Project"), a zatim Kraj Sub 

Korak 2: Ako mapa postoji želimo da prikaže mapu postoji, a ako ne želimo da se prikaže ta mapa ne postoji.

Kodirati:

 Sub Newfso () Dim A kao FileSystemObject Set A = New FileSystemObject Ako je A.FolderExists ("C: \ Korisnici \ Public \ Project") tada MsgBox "Mapa postoji" Else MsgBox "Mapa ne postoji" End If End Sub 

Korak 3: Sada izvršite gornji kôd i vidite rezultat na sljedeći način,

Mapa postoji na mojoj radnoj površini, pa smo dobili poruku da mapa postoji.

VBA FileSystemObject - Primjer # 3

Od kada smo razgovarali o tome da FSO ima razne predmete poput pogona. Doznajmo koliko prostora imam na raspolaganju u svom E pogonu.

1. korak: započnite s drugom podprocedurom na sljedeći način:

Kodirati:

 Sub Newfso1 () Kraj Sub 

Korak 2: Sada deklarirajte varijablu kao FileSystemObject i postavite je na novu instancu na sljedeći način,

Kodirati:

 Pod Newfso1 () Dim A kao FileSystemObject skup A = Novi FileSystemObject Kraj Sub 

Korak 3: Budući da koristimo svojstvo Drive deklariramo jednu varijablu kao vrstu pogona i jednu varijablu kao dvostruku da bi se podaci za prostor smjestili na sljedeći način,

Kodirati:

 Sub Newfso1 () Dim A kao FileSystemObject skup A = novi FileSystemObject Dim D kao pogon, Dspace kao dvostruki krajnji sub 

Korak 4: Sada ćemo stvoriti novi objekt pogona kao što je prikazano u nastavku,

Kodirati:

 Sub Newfso1 () Dim A kao FileSystemObject skup A = novi FileSystemObject Dim D kao pogon, Dspace kao dvostruki skup D = A.GetDrive ("C:") Kraj pot 

Ovo je jedan od FSO metoda koji koristimo za pristup pogonu.

Korak 5: Upotrijebit ćemo drugu FSO metodu da dobijemo slobodni prostor pogona i pohranimo ga u varijablu definiranu za pohranu prostora u pogonu,

Kodirati:

 Sub Newfso1 () Dim A kao FileSystemObject skup A = novi datotečni sustavSjeb Dim D kao pogon, Dspace kao dvostruki skup D = A.GetDrive ("C:") Dspace = D.FreeSpace kraj pot 

Korak 6: Računajmo sada prostor u GB kako slijedi,

Kodirati:

 Pod Newfso1 () Dim A kao FileSystemObject skup A = novi FileSystemObject Dim D kao pogon, Dspace kao dvostruki skup D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) Kraj Sub 

Korak 7: Sada prikažite vrijednost pohranjenu u diskovnom prostoru pomoću funkcije msgbox na sljedeći način,

Kodirati:

 Pod Newfso1 () Dim A kao FileSystemObject skup A = novi FileSystemObject Dim D kao pogon, Dspace kao dvostruki skup D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = okrugli ((Dspace / 1073741824), 2) MsgBox "Pogon" i D& "ima" & Dspace i "GB slobodnog prostora" Kraj Sub 

Korak 8: Izvršite gornji kôd da biste saznali donji rezultat,

VBA FileSystemObject - Primjer # 4

Sada ćemo stvoriti novu mapu na određeno mjesto pomoću FSO.

Korak 1: Počnimo s drugom podprocedurom na sljedeći način,

Kodirati:

 Sub Newfso2 () Kraj Sub 

2. korak: slijedimo iste korake i stvorimo instancu na sljedeći način,

Kodirati:

 Pod Newfso2 () Dim A kao FileSystemObject skup A = Novi FileSystemObject Kraj Sub 

Korak 3: Sada ćemo se pomoću metode Create Folder kreirati novu mapu na određeno mjesto,

Kodirati:

 Pod Newfso2 () Dim A kao FileSystemObject skup A = Novi FileSystemObject A.CreateFolder ("C: \ Korisnici \ Public \ Project \ FSOExample") Kraj Sub 

Korak 4: Izvršite gornji kôd i vidite rezultat na radnoj površini kako slijedi,

Uspješno smo stvorili novu mapu na navedeno mjesto.

Stvari koje morate zapamtiti u VBA FileSystemObject

  • FSO je alat za primjenu API-ja.
  • FSO nije standardno dostupan u VBA.
  • Pomoću FSO-a možemo stvoriti, mijenjati ili čitati datoteke i mape na računalu.
  • FSO možemo koristiti i za mrežne pogone.

Preporučeni članci

Ovo je vodič za VBA FileSystemObject. Ovdje smo raspravljali o tome kako koristiti VBA FileSystemObject u Excelu zajedno s nekoliko praktičnih primjera i preuzeti Excel predložak. Možete i pregledati naše druge predložene članke -

  1. Kompletan vodič za VBA radnu knjižicu
  2. Indirektna funkcija u Excelu
  3. VBA count function
  4. Excel XOR funkcija

Kategorija: