VBA FileSystemObject (FSO) | Sådan får du adgang til FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) fungerer som FileDialog, bruges til at få adgang til andre filer på den computer, vi arbejder på. Vi kan også redigere disse filer betyder læse eller skrive filen. Ved hjælp af FSO kan vi få adgang til filer, arbejde med dem, ændre filer og mapper. FSO er det vigtige API-værktøj, vi kan få adgang til med VBA. Som en del af VBA-projektet skal vi muligvis få adgang til et par mapper og filer på vores computer for at få arbejdet gjort.

Vi kan udføre mange opgaver ved at bruge FSO som "at kontrollere, om mappen er tilgængelig eller ej", Opret ny mappe eller filer, omdøbe den eksisterende mappe eller filer, få listen over alle filerne i mappen og også undermappens navne, og endelig kan vi kopiere filer fra et sted til et andet.

Selv der er andre funktioner til rådighed til at arbejde med mapper og filer, FSO er den nemmeste metode til at arbejde med mapper og filer ved at holde VBA-koden pæn og lige.

Vi har adgang til 4 typer objekter med FileSystemObject. Nedenfor er disse.

  1. Drev: Ved hjælp af dette objekt kan vi kontrollere, om det nævnte drev findes eller ej, vi kan få stienavn, drevtype og drevets størrelse.
  2. Mappe: Dette objekt giver os mulighed for at kontrollere, om den bestemte mappe findes eller ej. Vi kan oprette, slette, ændre, kopiere mapper ved hjælp af dette objekt.
  3. Fil: Dette objekt giver os mulighed for at kontrollere, om den bestemte fil findes eller ej. Vi kan oprette, slette, ændre, kopiere filer ved hjælp af dette vba-objekt.
  4. Tekststrøm: Dette objekt giver os mulighed for at oprette eller læse tekstfiler.

Alle ovenstående metoder har deres egen metode at arbejde med. Baseret på vores krav kan vi vælge metoden for hvert objekt.

Sådan aktiveres FileSystemObject?

Det er ikke let tilgængeligt i VBA. Da adgang til filer og mapper er den udvendige opgave for excel, er vi nødt til at aktivere FileSystemObject. Følg nedenstående trin for at aktivere.

Trin # 1: Gå til Værktøjer> Referencer.

Trin # 2 - Vælg indstillingen 'Microsoft Scripting Runtime'

Rul ned og vælg 'Microsoft Scripting Runtime'. Efter valg af indstillinger skal du klikke på OK.

Nu kan vi få adgang til FileSystemObject (FSO) i vba.

Opret en forekomst af FileSystemObject

Når indstillingen 'Microsoft Scripting Runtime' er aktiveret fra Objects-biblioteket, skal vi oprette forekomsten af ​​File System Object (FSO) gennem kodning.

For at oprette forekomsten skal du først erklære variablen som FileSystemObject.

Som vi kan se vises FileSystemObject på IntelliSense-listen i VBA. Dette ville ikke have været tilgængeligt, før vi aktiverede 'Microsoft Scripting Runtime'.

Da FSO er et objekt, skal vi indstille det til at oprette en ny instans.

Nu kan vi få adgang til alle mulighederne for FSO (FileSystemObject).

Eksempler på brug af VBA FileSystemObject

Du kan downloade denne VBA FileSystemObject Excel-skabelon her - VBA FileSystemObject Excel-skabelon

Eksempel # 1 - Find det samlede drevplads

Nedenstående kode giver drevets samlede plads.

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:") 'Opret nyt drevobjekt DriveSpace = DriveName.FreeSpace' Dette får fri plads af drevet "C" DriveSpace = DriveSpace / 1073741824 'Dette konverterer den ledige plads til GB DriveSpace = Round (DriveSpace, 2)' Rundt den samlede plads MsgBox "Drive" & DriveName & "har" & DriveSpace & "GB" End Sub 

Opdeling af koden.

Først oprettede vi en forekomst af FSO.

 Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject

Dernæst har vi deklareret to variabler.

 Dim DriveName Som Drive Dim DriveSpace som dobbelt 

Da DriveName er en objektvariabel, skal vi indstille dette til FSO en af ​​FSO-metoden. Da vi har brug for karakteristikken ved drevet, har vi brugt Get Drive-indstillingen og nævnt drevnavnet

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

Nu til en anden variabel DriveSpace tildeler vi metoden ledig plads på det drev, vi har adgang til.

DriveSpace = DriveName.FreeSpace

Fra nu af kan ovenstående ligning give os ledig plads til drevet "C". Så for at vise resultatet i GB har vi delt den ledige plads med 1073741824

DriveSpace = DriveSpace / 1073741824

Dernæst afrunder vi tallet.

DriveSpace = Round (DriveSpace, 2)

Vis endelig resultatet i Beskedfelt.

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.