Introduktion till FileSystemObject

Varför använder vi VBA? Vi använder VBA för att automatisera våra uppgifter. Normalt i Excel arbetar vi bara med data som finns i rader och kolumner som är i form av tabeller eller något. Men hur är det med filerna och mapparna som inte ingår i Excel? Vad händer om vi behöver använda den informationen från vilken fil som helst, hur får vi åt dem. Det är här FileSystemObject är praktiskt.

FileSystemObject eller FSO används för att komma åt filsystemet från vår dator. Med detta kan vi få tillgång till alla filmappar som vi har på datorn vi arbetar med. FSO är i princip ett API-verktyg som används för att komma åt andra filer. Nu är detta inte som standard i VBA vilket vi kommer att lära oss senare i den här artikeln. Låt oss först förstå vad FSO är. Tidigare i VBA hade vi DIR-funktion som hänvisades till åtkomst till andra filer och mappar från en dator. Kodningen för DIR-funktionen var mycket komplex att arbeta med. Men i FSO är saker annorlunda.

Nu finns det fyra typer av objekt som vi kan komma åt med FSO och de är som följer:

  • Drive: Som används för att ha åtkomst till en nämnd enhet.
  • Mapp: Detta används för att få åtkomst till en nämnd mapp.
  • Fil: Detta används för att få åtkomst till en nämnd fil.
  • Textström: Med detta objekt kan vi läsa eller skriva en textfil.

Var och en av de objekt som listas ovan har olika metoder för att använda dem. Om vi ​​till exempel vill kopiera en fil använder vi CopyFile-metoden eller tar bort en mapp kommer vi att använda DeleteFolder-metoden och så vidare.

Som jag har diskuterat ovan är FSO inte som standard i VBA, det finns två metoder för att aktivera FSO i VBA.

  • Den första metoden är genom att ställa in referensen.
  • Den andra metoden är att hänvisa till biblioteket från koden.

Medan den andra metoden är mer komplex rekommenderas det alltid att använda den första metoden som är mycket enkel. Låt oss följa dessa grundläggande steg.

I VBA, gå till fliken Verktyg och gå sedan till Referenser,

En guide kommer att dyka upp, välj Microsoft Scripting Runtime som visas nedan och tryck på OK.

Nu kan vi komma åt FSO i VBA. Låt oss nu använda detta genom några exempel och lära oss om det.

Hur använder man VBA FileSystemObject i Excel?

Nedan är de olika exemplen att använda VBA FileSystemObject-funktion i Excel

Du kan ladda ner denna VBA FileSystemObject Excel-mall här - VBA FileSystemObject Excel Mall

VBA FileSystemObject - Exempel 1

Innan vi börjar använda FSO i Vba, låt oss först lära oss att skapa instanser i VBA.

Steg 1: Skapa en delprocedur i undermodulen,

Koda:

 Sub Newfso () Slut Sub 

Steg 2: Förklara en variabel som FileSystemObject som visas nedan,

Koda:

 Sub Newfso () Dim A As FileSystemObject End Sub 

Steg 3: Nu måste vi skapa en instans eftersom FSO är ett objekt med SET-uttalandet som visas nedan,

Koda:

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

Nu kommer detta uttalande att vi kan skapa eller ändra filer eller mappar med FSO.

Steg 4: Nu kan vi se IntelliSense-funktionen efter aktivering av FSO. Använd punktoperatör enligt följande,

Koda:

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

Det gav oss olika alternativ med IntelliSense-funktionen. Så här skapar vi instanser med FSO.

VBA FileSystemObject - Exempel # 2

Nu eftersom vi har skapat en instans i exempel 1 låt oss gå vidare för att använda den och kontrollera om en fil eller mapp finns eller inte.

Steg 1: När vi har skapat ett nytt FileSystemObject, använd IF-sats för att avgöra om en mapp finns eller inte enligt följande,

Koda:

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

Steg 2: Om mappen finns så vill vi visa mappen finns och om inte vill vi att den ska visas att mappen inte finns.

Koda:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject If A.FolderExists ("C: \ Users \ Public \ Project") Sedan MsgBox "Mappen existerar" Annars MsgBox "Mappen existerar inte" Sluta om End Sub 

Steg 3: Kör nu ovanstående kod och se resultatet på följande sätt,

Mappen finns på mitt skrivbord så vi får meddelandet att mappen finns.

VBA FileSystemObject - Exempel # 3

Nu eftersom vi diskuterade att FSO har olika objekt som enheter. Låt oss ta reda på hur mycket utrymme jag har tillgängligt i min E-enhet.

Steg 1: Börja med en annan delprocedur enligt följande,

Koda:

 Sub Newfso1 () Slut Sub 

Steg 2: Förklara nu en variabel som FileSystemObject och ställ in den till ny instans enligt följande,

Koda:

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

Steg 3: Nu eftersom vi använder egenskapen Drive förklarar en variabel som Drive-typ och en variabel som dubbel för att hålla data för utrymme enligt följande,

Koda:

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

Steg 4: Låt oss nu skapa ett nytt enhetsobjekt som visas nedan,

Koda:

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

Detta är en av FSO-metoderna vi använder för att komma åt enheten.

Steg 5: Vi kommer att använda en annan FSO-metod för att få hårets lediga utrymme och lagra den i den variabel som definieras för lagring av frekvensomriktaren

Koda:

 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 

Steg 6: Låt oss nu beräkna utrymmet i GB enligt följande,

Koda:

 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) Avsluta under 

Steg 7: Visa nu värdet som lagras i Drive-utrymmet med hjälp av msgbox-funktionen enligt följande

Koda:

 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 

Steg 8: Kör ovanstående kod för att ta reda på resultatet nedan,

VBA FileSystemObject - Exempel 4

Låt oss nu skapa en ny mapp till en specificerad plats med FSO.

Steg 1: Låt oss börja med en annan delprocess enligt följande,

Koda:

 Sub Newfso2 () Slut Sub 

Steg 2: Låt oss följa samma steg och skapa en instans som följer,

Koda:

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

Steg 3: Nu använder vi Skapa mappmetod för att skapa en ny mapp till en angiven plats,

Koda:

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

Steg 4: Kör ovanstående kod och se resultatet på skrivbordet enligt följande,

Vi har skapat en ny mapp till den angivna platsen.

Saker att komma ihåg i VBA FileSystemObject

  • FSO är ett API-applikationsverktyg.
  • FSO är inte som standard tillgängligt i VBA.
  • Med FSO kan vi skapa, modifiera eller läsa filer och mappar på en dator.
  • Vi kan också använda FSO för våra nätverksenheter.

Rekommenderade artiklar

Detta är en guide till VBA FileSystemObject. Här diskuterar vi hur man använder VBA FileSystemObject i Excel tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Komplett guide till VBA-arbetsbok
  2. INDIREKT Funktion i Excel
  3. VBA Count-funktion
  4. Excel XOR-funktion

Kategori: