VBA FileSystemObject (FSO) | Hvordan få tilgang til FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) fungerer i likhet med FileDialog, brukes til å få tilgang til andre filer på datamaskinen vi jobber med. Vi kan også redigere disse filene betyr å lese eller skrive filen. Ved å bruke FSO kan vi få tilgang til filer, jobbe med dem, endre filer og mapper. FSO er det viktige API-verktøyet vi kan få tilgang til med VBA. Som en del av VBA-prosjektet må vi kanskje få tilgang til noen mapper og filer på datamaskinen vår for å få jobben gjort.

Vi kan gjøre mange oppgaver ved å bruke FSO som "å sjekke om mappen er tilgjengelig eller ikke", Opprette ny mappe eller filer, gi nytt navn til den eksisterende mappen eller filene, få listen over alle filene i mappen og også navn på undermapper, og til slutt kan vi kopiere filer fra ett sted til et annet.

Selv om det er andre funksjoner tilgjengelig for å jobbe med mapper og filer, er FSO den enkleste metoden for å jobbe med mapper og filer ved å holde VBA-koden ryddig og rett.

Vi har tilgang til 4 typer objekter med FileSystemObject. Nedenfor er de.

  1. Drive: Ved hjelp av dette objektet kan vi sjekke om den nevnte stasjonen eksisterer eller ikke, vi kan få stienavn, type stasjon og størrelse på stasjonen.
  2. Mappe: Dette objektet lar oss sjekke om den bestemte mappen eksisterer eller ikke. Vi kan opprette, slette, endre, kopiere mapper ved hjelp av dette objektet.
  3. Fil: Dette objektet lar oss sjekke om den bestemte filen eksisterer eller ikke. Vi kan opprette, slette, endre, kopiere filer ved hjelp av dette vba-objektet.
  4. Tekststrøm: Dette objektet lar oss lage eller lese tekstfiler.

Alle metodene ovenfor har sin egen metode å jobbe med. Basert på vårt krav kan vi velge metoden for hvert objekt.

Hvordan aktivere FileSystemObject?

Det er ikke lett tilgjengelig i VBA. Siden tilgang til filer og mapper er den ytre oppgaven til excel, må vi aktivere FileSystemObject. Følg trinnene nedenfor for å aktivere.

Trinn 1: Gå til Verktøy> Referanser.

Trinn 2 - Velg alternativet 'Microsoft Scripting Runtime'

Rull ned og velg alternativet 'Microsoft Scripting Runtime'. Når du har valgt alternativene, klikker du på OK.

Nå kan vi få tilgang til FileSystemObject (FSO) i vba.

Opprett en forekomst av FileSystemObject

Når alternativet 'Microsoft Scripting Runtime' er aktivert fra Objects-biblioteket, må vi opprette forekomsten av File System Object (FSO) gjennom koding.

For å opprette forekomsten, erklær først variabelen som FileSystemObject.

Som vi kan se vises FileSystemObject i IntelliSense-listen i VBA. Dette ville ikke ha vært tilgjengelig før vi aktiverer 'Microsoft Scripting Runtime'.

Siden FSO er et objekt, må vi sette det for å opprette en ny forekomst.

Nå kan vi få tilgang til alle alternativene til FSO (FileSystemObject).

Eksempler på bruk av VBA FileSystemObject

Du kan laste ned denne VBA FileSystemObject Excel-malen her - VBA FileSystemObject Excel-mal

Eksempel nr. 1 - Finn den totale stasjonsplassen

Koden nedenfor vil gi total plass på stasjonen.

Kode:

 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' Dette vil få ledig plass av stasjonen "C" DriveSpace = DriveSpace / 1073741824 'Dette vil konvertere ledig plass til GB DriveSpace = Round (DriveSpace, 2)' Rund den totale plassen MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Under 

Nedbryt koden.

Først opprettet vi en forekomst av FSO.

 Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject

Deretter har vi deklarert to variabler.

 Dim DriveName Som Drive Dim DriveSpace As Double 

Siden DriveName er en objektvariabel, må vi sette dette til FSO en av FSO-metoden. Siden vi trenger egenskapen til stasjonen, har vi brukt Get Drive-alternativet og nevnt stasjonsnavnet

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

Nå for en annen variabel DriveSpace, vil vi tildele metoden ledig plass på stasjonen vi får tilgang til.

DriveSpace = DriveName.FreeSpace

Fra nå av kan ovenstående ligning gi oss ledig plass til stasjonen "C". Så for å vise resultatet i GB har vi delt ledig plass med 1073741824

DriveSpace = DriveSpace / 1073741824

Deretter runder vi tallet.

DriveSpace = Round (DriveSpace, 2)

Vis til slutt resultatet i Message Box.

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.