Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) fungerar på samma sätt som FileDialog, som används för att få tillgång till andra filer på datorn vi arbetar på. Vi kan också redigera dessa filer betyder läsa eller skriva filen. Med hjälp av FSO kan vi få tillgång till filer, arbeta med dem, ändra filer och mappar. FSO är ett viktigt API-verktyg som vi har tillgång till med VBA. Som en del av VBA-projektet kan vi behöva komma åt några mappar och filer i vår dator för att få jobbet gjort.

Vi kan göra många uppgifter genom att använda FSO som ”att kontrollera om mappen är tillgänglig eller inte”, Skapa en ny mapp eller nya filer, byta namn på en befintlig mapp eller befintliga filer, få en lista över alla filer i mappen och även namn på undermappar. Slutligen kan vi kopiera filer från en plats till en annan.

Även om det finns andra funktioner tillgängliga för att arbeta med mappar och filer är FSO den enklaste metoden att arbeta med mappar och filer genom att hålla VBA-koden snygg och rak.

Vi har tillgång till fyra typer av objekt med FileSystemObject. Nedan följer dessa.

  1. Drive: Med hjälp av det här objektet kan vi kontrollera om den nämnda enheten finns eller inte. Vi kan få fram sökvägsnamn, typ av ändamål och storlek på företaget.
  2. Mapp: Med detta objekt kan vi kontrollera om den aktuella mappen finns eller inte. Vi kan skapa, ta bort, ändra och kopiera mappar med hjälp av det här objektet.
  3. File: Med det här objektet kan vi kontrollera om den aktuella filen finns eller inte. Vi kan skapa, ta bort, ändra, kopiera filer med hjälp av detta VBA-objekt.
  4. Textström:

Alla ovanstående metoder har sin metod att arbeta med. Baserat på våra krav kan vi välja metod för varje objekt.

Hur man aktiverar FileSystemObject?

Det är inte lätt tillgängligt i VBA. Eftersom åtkomst till filer och mappar är den yttre uppgiften i Excel måste vi aktivera FileSystemObject. För att uppmuntra följer du nedanstående steg.

Steg #1: Gå till Verktyg>Referenser.

Steg #2 – Välj alternativet ”Microsoft Scripting Runtime”

Rulla nedåt och välj alternativet ”Microsoft Scripting Runtime”. När du har valt alternativen klickar du på OK.

Nu kan vi få tillgång till FileSystemObject (FSO) i VBA.

Skapa en instans av FileSystemObject

När alternativet ”Microsoft Scripting Runtime” har aktiverats från objektsbiblioteket måste vi skapa ett File System Object (FSO) genom kodning.

Populär kurs i denna kategori

VBA-utbildning (3 kurser, 12+ projekt)
4.6 (247 betyg) 3 kurser | 12 praktiska projekt | 43+ timmar | full livstidstillgång | Certificate of Completion

För att skapa instansen deklarerar du först variabeln som FileSystemObject.

Som vi kan se visas FileSystemObject i IntelliSense-listan i VBA. Detta skulle inte ha funnits tillgängligt innan vi aktiverade ”Microsoft Scripting Runtime.”

Då FSO är ett objekt måste vi ställa in det för att skapa en ny instans.

Nu har vi tillgång till alla alternativ för FSO(FileSystemObject).

Exempel på hur man använder VBA FileSystemObject

Du kan ladda ner den här VBA FileSystemObject Excel-mallen här – VBA FileSystemObject Excel-mall

Exempel #1 – Hitta totalt utrymme på enheten

Underliggande kod ger det totala utrymmet på enheten.

Kod:

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

Kodbrytning.

Först skapade vi en instans av FSO.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

Nästan har vi deklarerat två variabler.

Dim DriveName As DriveDim DriveSpace As Double

Då DriveName är en objektsvariabel måste vi ställa in denna till FSO en av FSO-metoden. Eftersom vi behöver enhetens egenskap har vi använt alternativet Get Drive och nämnt enhetens namn.

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

För en annan variabel, DriveSpace, kommer vi att tilldela metoden för ledigt utrymme för den enhet vi får tillgång till.

DriveSpace = DriveName.FreeSpace

Från och med nu kan ovanstående ekvation ge oss ledigt utrymme för enheten ”C”. Så för att visa resultatet i GB har vi delat det fria utrymmet med 1073741824

DriveSpace = DriveSpace / 1073741824

Nästan kommer vi att avrunda talet.

DriveSpace = Round(DriveSpace, 2)

Slutligt, visa resultatet i meddelandefältet.

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

När vi kör koden manuellt eller med hjälp av snabbkommandotangenten F5, så kommer vi i meddelandefältet att få det fria utrymmet för enheten ”C”.”

Så, i min dator har enhet C 216,19 GB ledigt minne.

Exempel #2 – Kontrollera om mappen finns eller inte

För att kontrollera om en viss mapp finns eller inte använder du följande kod.

Om den nämnda mappen är tillgänglig kommer den att visa oss meddelanderutan som ”The Mentioned Folder is Available”. Om inte, visas VBA-meddelanderutan som ”The Mentioned Folder is Not Available.”

Kod:

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 den här koden med Excel-genvägstangenten F5 eller manuellt och se sedan resultatet.

Exempel #3 – Kontrollera om filen finns eller inte

Nedanstående kod kommer att kontrollera om den nämnda filen finns tillgänglig eller inte.

Kod:

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 den här koden manuellt eller med hjälp av F5-tangenten och se sedan resultatet.

Rekommenderade artiklar

Det här har varit en guide för VBA FileSystemObject. Här lär vi oss hur man använder FileSystemObject (FSO) i VBA för att komma åt filer och mappar från datorn samt praktiska exempel och en nedladdningsbar Excel-mall. Nedan hittar du några användbara Excel VBA-artiklar –

  • ME Nyckelord i VBA
  • StrComp-funktionen i VBA
  • StrConv. Funktion i VBA
  • VBA IIF
0 aktier

VBA-utbildning (3 kurser, 12+ projekt)

  • 3 kurser
  • 12 praktiska projekt
  • 43+ timmar
  • Fullständig livstidstillgång
  • Slutcertifikat

LÄS MER >>

Lämna ett svar

Din e-postadress kommer inte publiceras.