Introduksjon til FileSystemObject

Hvorfor bruker vi VBA? Vi bruker VBA for å automatisere oppgavene våre. Normalt i excel jobber vi bare med data som finnes i rader og kolonner som er i form av tabeller eller noe. Men hva med filene og mappene som ikke er en del av Excel? Hva om vi trenger å bruke disse dataene fra en hvilken som helst fil, hvordan får vi tilgang til dem. Det er her FileSystemObject kommer godt med.

FileSystemObject eller FSO brukes til å få tilgang til systemet med filer fra datamaskinen vår. Ved å bruke dette kan vi ha tilgang til alle filmappene vi har på datamaskinen vi jobber med. FSO er i utgangspunktet et API-verktøy som brukes til å få tilgang til andre filer. Nå er dette ikke som standard til stede i VBA, som vi vil lære senere i denne artikkelen. La oss først forstå hva FSO er. Tidligere i VBA hadde vi DIR-funksjon som ble henvist til tilgang til andre filer og mapper fra en datamaskin. Kodingen for DIR-funksjonen var veldig kompleks å jobbe med. Men i FSO er ting annerledes.

Nå er det fire typer objekter som FSO kan få tilgang til, og de er som følger:

  • Drive: Som brukes for å ha tilgang til en nevnt stasjon.
  • Mappe: Dette brukes til å ha tilgang til en nevnt mappe.
  • Fil: Dette brukes til å ha tilgang til en nevnt fil.
  • Tekststrøm: Med dette objektet kan vi lese eller skrive en tekstfil.

Hvert av objektene som er oppført over har forskjellige metoder for å bruke dem. For eksempel, hvis vi vil kopiere en fil, bruker vi CopyFile-metoden eller sletter en mappe, bruker vi DeleteFolder-metoden og så videre.

Som jeg har diskutert ovenfor er FSO ikke som standard til stede i VBA, det er to metoder for å aktivere FSO i VBA.

  • Den første metoden er å sette referansen.
  • Den andre metoden er å referere til biblioteket fra koden.

Selv om den andre metoden er mer kompleks, anbefales det alltid å bruke den første metoden som er veldig enkel. La oss følge disse grunnleggende trinnene.

I VBA går du til Verktøy-fanen og går deretter til Referanser,

En veiviserboks dukker opp, velger Microsoft Scripting Runtime som vist nedenfor og trykker OK.

Nå kan vi få tilgang til FSO i VBA. La oss nå bruke dette gjennom noen eksempler og lære om det.

Hvordan bruke VBA FileSystemObject i Excel?

Nedenfor er de forskjellige eksemplene du kan bruke VBA FileSystemObject-funksjon i Excel

Du kan laste ned denne VBA FileSystemObject Excel-malen her - VBA FileSystemObject Excel Template

VBA FileSystemObject - Eksempel # 1

Før vi begynner å bruke FSO i Vba, la oss først lære å lage forekomster i VBA.

Trinn 1: Opprett en underprosedyre i undermodulen,

Kode:

 Sub Newfso () Slutt Sub 

Trinn 2: Angi en variabel som FileSystemObject som vist nedenfor,

Kode:

 Sub Newfso () Dim A As FileSystemObject End Sub 

Trinn 3: Nå må vi opprette en forekomst ettersom FSO er et objekt ved å bruke SET-setningen som vist nedenfor,

Kode:

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

Nå vil denne uttalelsen tillate oss å opprette eller endre filer eller mapper ved hjelp av FSO.

Trinn 4: Nå kan vi se IntelliSense-funksjonen etter å ha aktivert FSO. Bruk prikkoperator som følger,

Kode:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject A. Slutt Sub 

Det ga oss forskjellige alternativer ved å bruke IntelliSense-funksjonen. Slik lager vi forekomster ved hjelp av FSO.

VBA FileSystemObject - Eksempel # 2

Nå, siden vi har opprettet en forekomst i eksempel 1, la oss gå videre for å bruke den og sjekke om en fil eller mappe eksisterer eller ikke.

Trinn 1: Etter at vi har opprettet en ny FileSystemObject, bruk IF-setningen for å bestemme om en mappe eksisterer eller ikke som følger,

Kode:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject If A.FolderExists ("C: \ Users \ Public \ Project") Slutt deretter Sub 

Trinn 2: Hvis mappen eksisterer, vil vi vise mappen, og hvis ikke, ønsker vi at den skal vises.

Kode:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject Hvis A.FolderExists ("C: \ Users \ Public \ Project") Deretter MsgBox "Mappen eksisterer" Ellers MsgBox "Mappen eksisterer ikke" Slutt hvis Slutt Sub 

Trinn 3: Utfør koden ovenfor og se resultatet som følger,

Mappen eksisterer på skrivebordet mitt, så vi får beskjeden om at mappen eksisterer.

VBA FileSystemObject - Eksempel # 3

Nå siden vi diskuterte at FSO har forskjellige objekter som stasjoner. La oss finne ut hvor mye plass jeg har tilgjengelig på E-stasjonen min.

Trinn 1: Start med en annen underprosess som følger,

Kode:

 Sub Newfso1 () Slutt Sub 

Trinn 2: Nå erklær en variabel som FileSystemObject og sett den til ny instans på følgende måte,

Kode:

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

Trinn 3: Nå, siden vi bruker Drive-egenskapen, erklærer en variabel som Drive-type og en variabel som dobbel for å holde dataene for plass som følger,

Kode:

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

Trinn 4: La oss nå opprette et nytt stasjonsobjekt som vist nedenfor,

Kode:

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

Dette er en av FSO-metodene vi bruker for å få tilgang til stasjonen.

Trinn 5: Vi vil bruke en annen FSO-metode for å få ledig plass på stasjonen og lagre den i variabelen som er definert for lagring av stasjonsplass,

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 

Trinn 6: La oss nå beregne plassen 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) Slutt sub 

Trinn 7: Vis nå verdien som er lagret i for Diskplass ved å bruke msgbox-funksjonen 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 

Trinn 8: Utfør koden ovenfor for å finne ut resultatet nedenfor,

VBA FileSystemObject - Eksempel # 4

La oss nå opprette en ny mappe til et spesifisert sted ved hjelp av FSO.

Trinn 1: La oss starte med en annen underprosess som følger,

Kode:

 Sub Newfso2 () Slutt Sub 

Trinn 2: La oss følge de samme trinnene og opprette en forekomst som følger,

Kode:

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

Trinn 3: Nå bruker vi Create Folder-metoden for å opprette en ny mappe til et spesifisert sted,

Kode:

 Sub Newfso2 () Dim A As FileSystemObject Set A = New FileSystemObject A.CreateFolder ("C: \ Users \ Public \ Project \ FSOExample") Slutt Sub 

Trinn 4: Utfør koden ovenfor og se resultatet på skrivebordet som følger,

Vi har opprettet en ny mappe til det angitte stedet.

Ting å huske på i VBA FileSystemObject

  • FSO er et API-applikasjonsverktøy.
  • FSO er ikke som standard tilgjengelig i VBA.
  • Med FSO kan vi opprette, endre eller lese filer og mapper på en datamaskin.
  • Vi kan også bruke FSO for nettverksstasjonene våre.

Anbefalte artikler

Dette er en guide til VBA FileSystemObject. Her diskuterer vi hvordan du bruker VBA FileSystemObject i Excel sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Komplett guide til VBA arbeidsbok
  2. INDIREKTE funksjon i Excel
  3. VBA Count-funksjon
  4. Excel XOR-funksjon

Kategori: