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 TemplateVBA 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 -
- Komplett guide til VBA arbeidsbok
- INDIREKTE funksjon i Excel
- VBA Count-funksjon
- Excel XOR-funksjon