Introduktion til FileSystemObject

Hvorfor bruger vi VBA? Vi bruger VBA til at automatisere vores opgaver. Normalt i excel arbejder vi kun med data, der findes i rækker og kolonner, der er i form af tabeller eller noget. Men hvad med de filer og mapper, som ikke er en del af Excel? Hvad hvis vi skal bruge disse data fra en hvilken som helst fil, hvordan får vi adgang til dem. Det er her FileSystemObject er praktisk.

FileSystemObject eller FSO bruges til at få adgang til filsystemet fra vores computer. Ved hjælp af dette kan vi få adgang til alle de filmapper, vi har på den computer, vi arbejder på. FSO er dybest set et API-værktøj, der bruges til at få adgang til andre filer. Nu er dette ikke som standard til stede i VBA, som vi lærer senere i denne artikel. Lad os først forstå, hvad FSO er. Tidligere i VBA havde vi DIR-funktion, der blev henvist til adgang til andre filer og mapper fra en computer. Kodningen til DIR-funktion var meget kompleks at arbejde med. Men i FSO er tingene forskellige.

Nu er der fire typer objekter, som vi kan få adgang til af FSO, og de er som følger:

  • Drev: Som bruges til at få adgang til et nævnt drev.
  • Mappe: Dette bruges til at få adgang til en nævnt mappe.
  • Fil: Dette bruges til at få adgang til en nævnt fil.
  • Tekststrøm: Med dette objekt kan vi læse eller skrive en tekstfil.

Hvert af ovenstående objekter har forskellige metoder til at bruge dem. For eksempel, hvis vi vil kopiere en fil, bruger vi CopyFile-metoden eller sletter en mappe, bruger vi DeleteFolder-metoden og så videre.

Som jeg har diskuteret ovenfor er FSO som standard ikke til stede i VBA, der er to metoder til at aktivere FSO i VBA.

  • Den første metode er gennem indstilling af referencen.
  • Den anden metode er at henvise til biblioteket fra koden.

Mens den anden metode er mere kompleks, anbefales det altid at bruge den første metode, der er meget enkel. Lad os følge disse grundlæggende trin.

I VBA skal du gå til fanen Værktøjer og derefter gå til Referencer,

Der åbnes en guide med guiden, vælg Microsoft Scripting Runtime som vist nedenfor og tryk på OK.

Nu kan vi få adgang til FSO i VBA. Lad os nu bruge dette gennem nogle eksempler og lære om det.

Sådan bruges VBA FileSystemObject i Excel?

Nedenfor er de forskellige eksempler til brug af VBA FileSystemObject-funktion i Excel

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

VBA FileSystemObject - Eksempel # 1

Før vi begynder at bruge FSO i Vba, lad os først lære at oprette tilfælde i VBA.

Trin 1: Opret en subprocedure i undermodulet,

Kode:

 Sub Newfso () End Sub 

Trin 2: Angiv en variabel som FileSystemObject som vist nedenfor,

Kode:

 Sub Newfso () Dim A As FileSystemObject End Sub 

Trin 3: Nu skal vi oprette en instans, da FSO er et objekt ved hjælp af SET-sætningen som vist nedenfor,

Kode:

 Sub Newfso () Dim A Som FileSystemObject Set A = New FileSystemObject End Sub 

Nu giver denne erklæring os mulighed for at oprette eller ændre filer eller mapper ved hjælp af FSO.

Trin 4: Nu kan vi se IntelliSense-funktionen efter aktivering af FSO. Brug punktoperatør som følger,

Kode:

 Sub Newfso () Dim A Som FileSystemObject Set A = New FileSystemObject A. End Sub 

Det gav os forskellige muligheder ved hjælp af IntelliSense-funktionen. Dette er, hvordan vi opretter tilfælde ved hjælp af FSO.

VBA FileSystemObject - Eksempel # 2

Nu, da vi har oprettet en forekomst i eksempel 1, lad os gå videre til at bruge den og kontrollere, om der findes en fil eller mappe eller ej.

Trin 1: Når vi har oprettet en ny FileSystemObject, skal du bruge IF-sætning til at bestemme, om en mappe findes eller ikke som følger,

Kode:

 Sub Newfso () Dim A Som FileSystemObject Set A = New FileSystemObject Hvis A.FolderExists ("C: \ Users \ Public \ Project") Afslut derefter Sub 

Trin 2: Hvis mappen findes, vil vi have vist mappe, og hvis ikke, ønsker vi, at den skal vises, at mappen ikke findes.

Kode:

 Sub Newfso () Dim A Som FileSystemObject Set A = New FileSystemObject Hvis A.FolderExists ("C: \ Users \ Public \ Project") Derefter MsgBox "Mappen findes" Ellers MsgBox "Mappen findes ikke" Slut hvis slut sub 

Trin 3: Udfør nu ovenstående kode og se resultatet som følger,

Mappen findes på mit skrivebord, så vi får beskeden om, at mappen findes.

VBA FileSystemObject - eksempel # 3

Nu da vi diskuterede, at FSO har forskellige objekter såsom drev. Lad os finde ud af, hvor meget plads jeg har til rådighed i mit E-drev.

Trin 1: Start med en anden underprocedure som følger,

Kode:

 Sub Newfso1 () End Sub 

Trin 2: Angiv nu en variabel som FileSystemObject og indstil den til ny instans som følger,

Kode:

 Sub Newfso1 () Dim A Som FileSystemObject Set A = New FileSystemObject End Sub 

Trin 3: Nu, da vi bruger egenskaben Drev, erklærer vi en variabel som drevtype og en variabel som dobbelt for at holde dataene for plads som følger,

Kode:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace Som Double End Sub 

Trin 4: Lad os nu oprette et nyt drevobjekt som vist nedenfor,

Kode:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace Som Double Set D = A.GetDrive ("C:") End Sub 

Dette er en af ​​FSO-metoderne, vi bruger til at få adgang til drevet.

Trin 5: Vi vil bruge en anden FSO-metode til at få drevets frie plads og gemme det i den variabel, der er defineret til opbevaring af drevpladsen,

Kode:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Trin 6: Lad os nu beregne pladsen i GB som følger,

Kode:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) Afslut under 

Trin 7: Vis nu den værdi, der er gemt i Drive-plads ved hjælp af msgbox-funktionen som følger,

Kode:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "The Drive" & D & "har" & Dspace & "GB free Space" End Sub 

Trin 8: Udfør ovenstående kode for at finde ud af nedenstående resultat,

VBA FileSystemObject - Eksempel # 4

Lad os nu oprette en ny mappe til en specificeret placering ved hjælp af FSO.

Trin 1: Lad os igen starte med en anden underprocedure som følger,

Kode:

 Sub Newfso2 () End Sub 

Trin 2: Lad os følge de samme trin og oprette en forekomst som følger,

Kode:

 Sub Newfso2 () Dim A Som FileSystemObject Set A = New FileSystemObject End Sub 

Trin 3: Nu bruger vi Opret mappemetode til at oprette en ny mappe til et bestemt sted,

Kode:

 Sub Newfso2 () Dim A As FileSystemObject Set A = New FileSystemObject A.CreateFolder ("C: \ Brugere \ Offentligt \ Projekt \ FSOExample") Slutt Sub 

Trin 4: Udfør ovenstående kode, og se resultatet på skrivebordet som følger,

Vi har oprettet en ny mappe til det angivne sted.

Ting at huske i VBA FileSystemObject

  • FSO er et API-applikationsværktøj.
  • FSO er som standard ikke tilgængelig i VBA.
  • Med FSO kan vi oprette, ændre eller læse filer og mapper på en computer.
  • Vi kan også bruge FSO til vores netværksdrev.

Anbefalede artikler

Dette er en guide til VBA FileSystemObject. Her diskuterer vi, hvordan man bruger VBA FileSystemObject i Excel sammen med nogle praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. Komplet guide til VBA-arbejdsbog
  2. INDIREKT Funktion i Excel
  3. VBA Count-funktion
  4. Excel XOR-funktion

Kategori: