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 en ny mappe eller nye filer, gi nytt navn til den eksisterende mappen eller filene, få listen over alle filene i mappen, og også navn på undermapper . 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 fire typer objekter med FileSystemObject. Nedenfor er de.
- Drive: Ved hjelp av dette objektet kan vi sjekke om nevnte stasjon eksisterer eller ikke. Vi kan få stienavn, type formål og størrelse på bedriften.
- 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.
- 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.
- Tekststrøm: Dette objektet lar oss lage eller lese tekstfiler.
Alle metodene ovenfor har sin metode å jobbe med. Basert på våre 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 Excel-oppgaven utenfor, må vi aktivere FileSystemObject. Følg trinnene nedenfor for å oppmuntre.
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 et filsystemobjekt (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
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 & "har" & DriveSpace & "GB" End Under

Bryt ned av 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:")
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 ligningen ovenfor gi oss ledig plass til stasjonen "C." Så for å vise resultatet i GB, har vi delt den åpne plassen med 1073741824
DriveSpace = DriveSpace / 1073741824
Deretter runder vi tallet.
DriveSpace = Round (DriveSpace, 2)
Vis til slutt resultatet i Message Box.
MsgBox "Drive" & DriveName & "har" & 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

Kjør denne koden gjennom excel snarvei F5 eller manuelt, og se deretter resultatet.

Eksempel 3 - Sjekk om filen eksisterer eller ikke
Koden nedenfor vil sjekke om den nevnte filen er tilgjengelig eller ikke.
Kode:
Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Deretter MsgBox "Den nevnte filen er tilgjengelig" Else MsgBox " Filen er ikke tilgjengelig "Slutt hvis slutt sub

Kjør denne koden manuelt eller ved å bruke F5-tasten, og se resultatet.
