VBA FileSystemObject (FSO) - Hur får jag tillgång till FileSystemObject?

Innehållsförteckning

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) fungerar som FileDialog, används för att få tillgång till andra filer på den dator vi arbetar med. Vi kan också redigera dessa filer innebär att läsa eller skriva filen. Med FSO kan vi komma åt filer, arbeta med dem, ändra filer och mappar. FSO är det viktiga API-verktyget vi kan komma åt med VBA. Som en del av VBA-projektet kan vi behöva komma åt några mappar och filer på 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 filer, byta namn på befintlig mapp eller filer, få en lista över alla filer i mappen och även undermappens namn . Slutligen kan vi kopiera filer från en plats till en annan.

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

Vi kan komma åt fyra typer av objekt med FileSystemObject. Nedan är de.

  1. Drive: Med det här objektet kan vi kontrollera om den nämnda enheten finns eller inte. Vi kan få sökväg, typ av syfte och storlek på företaget.
  2. Mapp: Detta objekt låter oss kontrollera om den specifika mappen finns eller inte. Vi kan skapa, ta bort, ändra, kopiera mappar med detta objekt.
  3. Fil: Detta objekt låter oss kontrollera om den aktuella filen existerar eller inte. Vi kan skapa, ta bort, ändra, kopiera filer med detta VBA-objekt.
  4. Textström: Detta objekt tillåter oss att skapa eller läsa textfiler.

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 aktiverar jag FileSystemObject?

Det är inte lätt tillgängligt i VBA. Eftersom åtkomst till filer och mappar är excelns externa uppgift, måste vi aktivera FileSystemObject. Följ stegen nedan för att uppmuntra.

Steg 1: Gå till Verktyg> Referenser.

Steg # 2 - Välj alternativet 'Microsoft Scripting Runtime'

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

Nu kan vi komma åt FileSystemObject (FSO) i VBA.

Skapa en instans av FileSystemObject

När alternativet 'Microsoft Scripting Runtime' är aktiverat från objektbiblioteket måste vi skapa ett filsystemobjekt (FSO) genom kodning.

För att skapa förekomsten, förklara först variabeln som FileSystemObject.

Som vi kan se visas FileSystemObject i IntelliSense-listan i VBA. Detta skulle inte ha varit tillgängligt innan vi aktiverar 'Microsoft Scripting Runtime'.

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

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

Exempel på att använda VBA FileSystemObject

Exempel # 1 - Hitta det totala utrymmet

Koden nedan ger enhetens totala utrymme.

Koda:

Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Skapa nytt enhetsobjekt DriveSpace = DriveName.FreeSpace' Detta får ledigt utrymme av enheten "C" DriveSpace = DriveSpace / 1073741824 'Detta kommer att konvertera ledigt utrymme till GB DriveSpace = Round (DriveSpace, 2)' Runda det totala utrymmet MsgBox "Drive" & DriveName & "har" & DriveSpace & "GB" End Sub

Uppdelning av koden.

Först skapade vi en instans av FSO.

Dim MyFirstFSO Som FileSystemObject Ställ in MyFirstFSO = New FileSystemObject

Därefter har vi deklarerat två variabler.

Dim DriveName Som Drive Dim DriveSpace As Double

Eftersom DriveName är en objektvariabel måste vi ställa in detta till FSO en av FSO-metoden. Eftersom vi behöver enhetens egenskaper, har vi använt alternativet Get Drive och nämnt enhetsnamnet.

Ställ in DriveName = MyFirstFSO.GetDrive ("C:")

För en annan variabel, DriveSpace, tilldelar vi metoden för ledigt utrymme för den enhet vi använder.

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 öppna utrymmet med 1073741824

DriveSpace = DriveSpace / 1073741824

Därefter rundar vi siffran.

DriveSpace = Round (DriveSpace, 2)

Slutligen, visa resultatet i Meddelandefältet.

MsgBox "Drive" & DriveName & "har" & DriveSpace & "GB"

When we run the code manually or through shortcut key F5, then in the message box, we will get the free space of the drive “C.”

So, in my computer Drive C has 216.19 GB of free space memory.

Example #2 - Check Whether the Folder Exists or Not

To check whether the particular folder exists or not, use the below code.

If the mentioned folder is available, it will show us the message box as “The Mentioned Folder is Available.” If not, it will show the VBA message box as “The Mentioned Folder is Not Available.”

Code:

Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:Excel FilesVBAVBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub

Kör den här koden genom excel-genvägen F5 eller manuellt och se sedan resultatet.

Exempel # 3 - Kontrollera om filen finns eller inte

Koden nedan kontrollerar om den nämnda filen är tillgänglig eller inte.

Koda:

Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Då MsgBox "Den nämnda filen finns" Annars MsgBox " Filen är inte tillgänglig "Avsluta om slutavs

Kör den här koden manuellt eller med F5-tangenten och se resultatet.

Intressanta artiklar...