Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) werkt vergelijkbaar met FileDialog, dat wordt gebruikt om toegang te krijgen tot andere bestanden van de computer waar we op werken. We kunnen deze bestanden ook bewerken door het bestand te lezen of te schrijven. Met FSO kunnen we toegang krijgen tot bestanden, ermee werken, bestanden en mappen wijzigen. FSO is een belangrijk API gereedschap dat we kunnen gebruiken met VBA. Als onderdeel van een VBA-project hebben we misschien toegang nodig tot een aantal mappen en bestanden op onze computer om de klus te klaren.

We kunnen veel taken uitvoeren met FSO, zoals “controleren of de map beschikbaar is of niet”, een nieuwe map of bestanden maken, de naam van een bestaande map of bestanden wijzigen, de lijst met alle bestanden in de map opvragen, en ook de namen van submappen. Tenslotte kunnen we bestanden van de ene locatie naar de andere kopiëren.

Ook al zijn er andere functies beschikbaar om met mappen en bestanden te werken, FSO is de eenvoudigste methode om met mappen en bestanden te werken door de VBA-code netjes en recht te houden.

We hebben met FileSystemObject toegang tot vier soorten Objecten. Hieronder staan die.

  1. Drive: Met behulp van dit object kunnen we controleren of de genoemde drive bestaat of niet. Wij kunnen de padnaam, het type doel, en de grootte van de onderneming krijgen.
  2. Map: Dit object stelt ons in staat om te controleren of de bepaalde map bestaat of niet. Wij kunnen mappen maken, verwijderen, wijzigen, kopiëren met behulp van dit object.
  3. Bestand: Dit object stelt ons in staat om te controleren of het specifieke bestand bestaat of niet. We kunnen bestanden maken, verwijderen, wijzigen, kopiëren met behulp van dit VBA-object.
  4. Tekststroom: Dit object stelt ons in staat om tekstbestanden te maken of te lezen.

Alle bovenstaande methoden hebben hun methode om mee te werken. Op basis van onze behoeften kunnen we de methode van elk object kiezen.

Hoe kunnen we het FileSystemObject inschakelen?

Het is niet gemakkelijk toegankelijk in VBA. Aangezien de toegang tot bestanden en mappen de buitentaak van excel is, moeten we het FileSystemObject inschakelen. Volg de onderstaande stappen om dit aan te moedigen.

Stap #1: Ga naar Tools>References.

Step #2 – Selecteer de optie ‘Microsoft Scripting Runtime’

Scroll naar beneden en selecteer de optie ‘Microsoft Scripting Runtime’. Klik na het kiezen van de opties op OK.

Nu kunnen we in VBA toegang krijgen tot het FileSystemObject (FSO).

Maak een Instance van FileSystemObject

Als de optie ‘Microsoft Scripting Runtime’ in de Objectenbibliotheek is ingeschakeld, moeten we door middel van codering een File System Object (FSO) maken.

Populaire cursussen in deze categorie

VBA-opleiding (3 cursussen, 12+ projecten)
4.6 (247 beoordelingen) 3 cursussen | 12 hands-on projecten | 43+ uur | levenslange toegang | certificaat van voltooiing

Om de instantie te maken, moet u eerst de variabele declareren als FileSystemObject.

Zoals we kunnen zien, verschijnt FileSystemObject in de IntelliSense-lijst in VBA. Dit zou niet beschikbaar zijn geweest voordat we de ‘Microsoft Scripting Runtime’ hadden ingeschakeld.’

Sinds FSO een object is, moeten we het instellen om een nieuwe instantie te maken.

Nu hebben we toegang tot alle opties van FSO(FileSystemObject).

Voorbeelden voor het gebruik van VBA FileSystemObject

U kunt dit VBA FileSystemObject Excel Sjabloon hier downloaden – VBA FileSystemObject Excel Sjabloon

Voorbeeld #1 – Zoek de totale schijfruimte

De onderstaande code geeft de totale ruimte van het station.

Code:

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

Break Down of the Code.

Eerst hebben we een instantie van FSO gemaakt.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

Daarna hebben we twee variabelen gedeclareerd.

Dim DriveName As DriveDim DriveSpace As Double

Omdat DriveName een Object-variabele is, moeten we deze instellen op FSO een van de FSO-methode. Omdat we het kenmerk van de schijf nodig hebben, hebben we de optie Get Drive gebruikt en de naam van de schijf vermeld.

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

Voor een andere variabele, DriveSpace, wijzen we de methode voor de vrije ruimte toe van de schijf waartoe we toegang hebben.

DriveSpace = DriveName.FreeSpace

Vanaf nu kan de bovenstaande vergelijking ons de vrije ruimte van de schijf “C” geven. Dus om het resultaat in GB te tonen, hebben we de open ruimte gedeeld door 1073741824

DriveSpace = DriveSpace / 1073741824

Volgende, zullen we het getal afronden.

DriveSpace = Round(DriveSpace, 2)

Tot slot, toon het resultaat in Message Box.

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

Wanneer we de code handmatig of via sneltoets F5 uitvoeren, dan krijgen we in de message box, de vrije ruimte van de drive “C.”

Op mijn computer heeft station C dus 216,19 GB vrije geheugenruimte.

Voorbeeld #2 – Controleren of de map bestaat of niet

Om te controleren of een bepaalde map bestaat of niet, gebruikt u de onderstaande code.

Als de genoemde map beschikbaar is, verschijnt het berichtvakje “De genoemde map is beschikbaar.” Zo niet, dan verschijnt in het VBA-berichtvak “De genoemde map is niet beschikbaar.”

Code:

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

Uitvoeren van deze code met de sneltoets F5 van Excel of handmatig, en vervolgens het resultaat bekijken.

Voorbeeld #3 – Controleren of het bestand al dan niet bestaat

Onderstaande code controleert of het genoemde bestand al dan niet beschikbaar is.

Code:

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

Uitvoeren van deze code met de hand of met behulp van de F5-toets, bekijk dan het resultaat.

Aanbevolen artikelen

Dit is een gids geweest voor VBA FileSystemObject. Hier leren we hoe FileSystemObject (FSO) te gebruiken in VBA om toegang te krijgen tot bestanden en mappen van de computer en praktische voorbeelden en een downloadbaar excel sjabloon. Hieronder vindt u een aantal nuttige excel VBA artikelen –

  • ME Trefwoord in VBA
  • StrComp Functie in VBA
  • StrConv Functie in VBA
  • VBA IIF
0 Aandelen

VBA Opleiding (3 Cursussen, 12+ Projecten)

  • 3 cursussen
  • 12 hands-on projecten
  • 43+ uren
  • Volledige toegang voor het leven
  • Certificaat van voltooiing

LEER MEER >>

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd.