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

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) fungerer svarende til 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 en ny mappe eller filer, omdøb den eksisterende eller de eksisterende mapper, få listen over alle filerne i mappen og også undermappens navne . 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 kan få adgang til fire typer objekter med FileSystemObject. Nedenfor er disse.

  1. Drev: Ved hjælp af dette objekt kan vi kontrollere, om det nævnte drev eksisterer eller ej. Vi kan få stienavn, formålstype og størrelse på virksomheden.
  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 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 excelens udvendige opgave, skal vi aktivere FileSystemObject. Følg nedenstående trin for at opmuntre.

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

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

Rul ned, og vælg indstillingen 'Microsoft Scripting Runtime'. Når du har valgt indstillingerne, 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 objektbiblioteket, skal vi oprette et filsystemobjekt (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 forekomst.

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

Eksempler på brug af VBA FileSystemObject

Eksempel # 1 - Find det samlede drevplads

Nedenstående kode giver drevets samlede plads.

Kode:

Sub FSO_Example1 () Dim MyFirstFSO Som FileSystemObject Set MyFirstFSO = New FileSystemObject Dim Drive Drive Som 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)' Rund 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 indstillingen Get Drive og nævnt drevnavnet.

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

For 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 det åbne rum med 1073741824

DriveSpace = DriveSpace / 1073741824

Dernæst afrunder vi tallet.

DriveSpace = Round (DriveSpace, 2)

Vis endelig resultatet i Beskedfelt.

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

Kør denne kode gennem excel genvejstast F5 eller manuelt, og se derefter resultatet.

Eksempel # 3 - Kontroller, om filen findes eller ej

Nedenstående kode kontrollerer, om den nævnte fil er tilgængelig eller ej.

Kode:

Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Så MsgBox "Den omtalte fil er tilgængelig" Else MsgBox " Filen er ikke tilgængelig "Afslut hvis slut sub

Kør denne kode manuelt eller ved hjælp af F5-tasten, og se derefter resultatet.

Interessante artikler...