VBA FileSystemObject (FSO) - Kako pristupiti FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) radi slično FileDialogu, koristi se za pristup drugim datotekama računala na kojem radimo. Također možemo uređivati ​​ove datoteke, što znači čitati ili pisati datoteku. Korištenjem FSO-a možemo pristupiti datotekama, raditi s njima, mijenjati datoteke i mape. FSO je važan API alat kojem možemo pristupiti s VBA. Kao dio VBA projekta možda ćemo trebati pristupiti nekoliko mapa i datoteka na računalu da bismo obavili posao.

Mnogo zadataka možemo obaviti pomoću FSO-a poput "provjeriti je li mapa dostupna ili ne", stvoriti novu mapu ili datoteke, preimenovati postojeću mapu ili datoteke, dobiti popis svih datoteka u mapi, kao i imena podmapa. . Konačno, možemo kopirati datoteke s jednog mjesta na drugo.

Iako postoje druge funkcije dostupne za rad s mapama i datotekama, FSO je najjednostavnija metoda za rad s mapama i datotekama održavanjem VBA koda urednim i ravnim.

S FileSystemObject možemo pristupiti četiri vrste Objekata. Ispod su oni.

  1. Pogon: Pomoću ovog objekta možemo provjeriti postoji li spomenuti pogon ili ne. Možemo dobiti naziv puta, vrstu svrhe i veličinu poduzeća.
  2. Mapa: Ovaj nam objekt omogućuje provjeru postoji li određena mapa ili ne. Pomoću ovog objekta možemo stvarati, brisati, mijenjati, kopirati mape.
  3. Datoteka: Ovaj nam objekt omogućuje provjeru postoji li određena datoteka ili ne. Pomoću ovog VBA objekta možemo stvarati, brisati, mijenjati, kopirati datoteke.
  4. Tekstualni tok: Ovaj objekt omogućuje nam stvaranje ili čitanje tekstualnih datoteka.

Sve gore navedene metode imaju svoju metodu za rad. Na temelju naših zahtjeva možemo odabrati metodu svakog predmeta.

Kako omogućiti FileSystemObject?

Nije lako dostupan u VBA. Budući da je pristup datotekama i mapama vanjski zadatak Excela, moramo omogućiti FileSystemObject. Da biste potaknuli, slijedite korake u nastavku.

1. korak: Idite na Alati> Reference.

Korak # 2 - Odaberite opciju 'Microsoft Scripting Runtime'

Pomaknite se prema dolje i odaberite opciju "Microsoft Scripting Runtime". Nakon odabira opcija, kliknite na U redu.

Sada možemo pristupiti FileSystemObject (FSO) u VBA.

Stvorite instancu FileSystemObject

Jednom kada je omogućena opcija 'Microsoft Scripting Runtime' iz biblioteke Objects, trebamo stvoriti objekt datotečnog sustava (FSO) pomoću kodiranja.

Da biste stvorili instancu, prvo deklarirajte varijablu kao FileSystemObject.

Kao što vidimo, FileSystemObject pojavljuje se na popisu IntelliSense u VBA. Ovo ne bi bilo dostupno prije nego što omogućimo 'Microsoftovo izvršavanje skripti'.

Budući da je FSO objekt, moramo ga postaviti za stvaranje nove instance.

Sada možemo pristupiti svim opcijama FSO (FileSystemObject).

Primjeri za upotrebu VBA FileSystemObject

Primjer # 1 - Pronađite ukupni prostor za pogon

Kôd u nastavku dat će ukupan prostor pogona.

Kodirati:

Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Stvori novi pogon objekt DriveSpace = DriveName.FreeSpace' Ovo će dobiti slobodan prostor pogona "C" DriveSpace = DriveSpace / 1073741824 'Ovo će pretvoriti slobodni prostor u GB DriveSpace = Round (DriveSpace, 2)' Zaokružite ukupan prostor MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Pod

Slomiti kodeks.

Prvo smo stvorili primjerak FSO-a.

Zatamni MyFirstFSO kao FileSystemObject Postavi MyFirstFSO = Novi FileSystemObject

Dalje, proglasili smo dvije varijable.

Dim DriveName As Drive Dim DriveSpace As Double

Budući da je DriveName Object varijabla, moramo to postaviti na FSO jednu od FSO metoda. Budući da su nam potrebne karakteristike pogona, koristili smo opciju Nabavi pogon i spomenuli naziv pogona.

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

Za drugu varijablu, DriveSpace, dodijelit ćemo metodu slobodnog prostora za pogon kojem pristupamo.

DriveSpace = ImeNaziva.FreeSpace

Od sada nam gornja jednadžba može osloboditi prostor pogona "C." Da bismo pokazali rezultat u GB, podijelili smo otvoreni prostor s 1073741824

DriveSpace = DriveSpace / 1073741824

Dalje ćemo zaokružiti broj.

DriveSpace = Round (DriveSpace, 2)

Napokon, rezultat pokažite u okviru za poruke.

MsgBox "Drive" & DriveName & "has" & 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

Pokrenite ovaj kôd kroz excel tipku prečaca F5 ili ručno, a zatim pogledajte rezultat.

Primjer # 3 - Provjerite postoji li datoteka ili ne

Kôd u nastavku provjerit će je li spomenuta datoteka dostupna ili ne.

Kodirati:

Pod FSO_Example3 () Zatamni MyFirstFSO kao FileSystemObject Postavi MyFirstFSO = Novi FileSystemObject Ako MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Zatim MsgBox "Spomenuta datoteka je dostupna" Drugi spomenut Datoteka nije dostupna "End If End Sub

Pokrenite ovaj kod ručno ili pomoću tipke F5, a zatim pogledajte rezultat.

Zanimljivi članci...