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 i 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.

FileSystemObjectu možemo pristupiti 4 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 pogona i veličinu pogona.
  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 vlastitu 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 omogućili, 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 kad je omogućena opcija 'Microsoft Scripting Runtime' iz biblioteke Objects, trebamo stvoriti instancu File System Object (FSO) putem kodiranja.

Da biste stvorili instancu, prvo proglasite 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

Ovaj predložak VBA FileSystemObject Excel možete preuzeti ovdje - VBA FileSystemObject Excel predložak

Primjer # 1 - Pronađite ukupni prostor za pogon

Ispod koda 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 nam je potrebna karakteristika pogona, koristili smo opciju Nabavi pogon i spomenuli smo naziv pogona

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

Sada ćemo za drugu varijablu DriveSpace dodijeliti metodu slobodnog prostora za pogon kojem pristupamo.

DriveSpace = ImeNaziva.FreeSpace

Od sada nam gornja jednadžba može osloboditi prostor pogona "C". Dakle, da bismo prikazali rezultat u GB, podijelili smo slobodni 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 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 then 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 Files\VBA\VBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub 

Run this code through the excel Shortcut key F5 or manually, then see the result.

Example #3 – Check Whether the File Exists or Not

Below code will check whether the mentioned file is available or not.

Code:

 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 If End Sub 

Run this code manually or using the F5 key, then see the result.