Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) fungerer på samme måde som FileDialog, der 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, som vi kan få adgang til med VBA. Som en del af VBA-projektet kan vi have brug for at få adgang til nogle få mapper og filer i vores computer for at få arbejdet gjort.

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

Selv om der er andre funktioner til rådighed til at arbejde med mapper og filer, er FSO 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 findes eller ej. Vi kan få fat i virksomhedens pathname, formålstype og størrelse.
  2. Mappe: Dette objekt giver os mulighed for at kontrollere, om den pågældende mappe findes eller ej. Vi kan oprette, slette, ændre og kopiere mapper ved hjælp af dette objekt.
  3. File: Dette objekt giver os mulighed for at kontrollere, om den pågældende fil findes eller ej. Vi kan oprette, slette, ændre, kopiere filer ved hjælp af dette VBA-objekt.
  4. Text Stream: Vi kan oprette, slette, ændre, kopiere filer ved hjælp af dette VBA-objekt: Dette objekt giver os mulighed for at oprette eller læse tekstfiler.

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

Hvordan aktiverer man FileSystemObject?

Det er ikke let tilgængeligt i VBA. Da adgang til filer og mapper er den ydre opgave i excel, skal vi aktivere FileSystemObject. For at opmuntre skal du følge nedenstående trin.

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

Strin 2 – Vælg ‘Microsoft Scripting Runtime’-indstillingen

Rul ned, og vælg ‘Microsoft Scripting Runtime’-indstillingen. Når du har valgt indstillingerne, skal du klikke på OK.

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

Opret en instans af FileSystemObject

Når indstillingen ‘Microsoft Scripting Runtime’ er aktiveret fra objektsbiblioteket, skal vi oprette et File System Object (FSO) ved hjælp af kodning.

Populært kursus i denne kategori

VBA-uddannelse (3 Kurser, 12+ projekter)
4.6 (247 bedømmelser) 3 kurser | 12 praktiske projekter | 43+ timer | fuld livstidsadgang | certifikat for fuldførelse

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

Som vi kan se, vises FileSystemObject i 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 indstillingerne 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 den samlede drevplads

Den nedenstående kode vil give den samlede plads på drevet.

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 'This will get the free space of the drive "C" DriveSpace = DriveSpace / 1073741824 'This will convert the free space to GB DriveSpace = Round(DriveSpace, 2) 'Round the total space MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"End Sub

Kodeopdeling af koden.

Først har vi oprettet en instans af FSO.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

Dernæst har vi erklæret to variabler.

Dim DriveName As DriveDim DriveSpace As Double

Da DriveName er en Object-variabel, skal vi sætte denne til FSO en af FSO-metoden. Da vi har brug for drevets egenskab, har vi brugt muligheden Get Drive og nævnt drevnavnet.

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

For en anden variabel, DriveSpace, tildeler vi fripladsmetoden for det drev, vi har adgang til.

DriveSpace = DriveName.FreeSpace

Som nu kan ovenstående ligning få os friplads for drevet “C”. Så for at vise resultatet i GB har vi divideret den frie plads med 1073741824

DriveSpace = DriveSpace / 1073741824

Næst vil vi afrunde tallet.

DriveSpace = Round(DriveSpace, 2)

Slutteligt vil vi vise resultatet i beskedboksen.

MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"

Når vi kører koden manuelt eller via genvejstasten F5, så vil vi i beskedboksen få den frie plads på drevet “C.”

Så i min computer har drev C 216,19 GB ledig plads hukommelse.

Eksempel #2 – Kontroller, om mappen findes eller ej

For at kontrollere, om den pågældende mappe findes eller ej, skal du bruge nedenstående kode.

Hvis den nævnte mappe er tilgængelig, vil den vise os beskedboksen som “The Mentioned Folder is Available” (Den nævnte mappe er tilgængelig). Hvis ikke, vises VBA-meddelelsesboksen som “The Mentioned Folder is Not Available.”

Kode:

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 IfEnd Sub

Kør denne kode via excel-genvejstasten F5 eller manuelt, og se derefter resultatet.

Eksempel nr. 3 – Kontroller, om filen findes eller ej

Med nedenstående kode kontrolleres det, 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") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End IfEnd Sub

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

Anbefalede artikler

Dette har været en vejledning til VBA FileSystemObject. Her lærer vi at bruge FileSystemObject (FSO) i VBA til at få adgang til filer og mapper fra computeren samt praktiske eksempler og en excel-skabelon, der kan downloades. Nedenfor kan du finde nogle nyttige excel VBA-artikler –

  • ME Nøgleord i VBA
  • StrComp-funktion i VBA
  • StrConv Funktion i VBA
  • VBA IIF
0 Aktier

VBA-uddannelse (3 kurser, 12+ projekter)

  • 3 kurser
  • 12 praktiske projekter
  • 43+ timer
  • Fuld livstidsadgang
  • Afslutningsbevis

LÆS MERE >>

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.