Inleiding tot FileSystemObject

Waarom gebruiken we VBA? We gebruiken VBA om onze taken te automatiseren. Normaal gesproken werken we bij excel alleen met gegevens in rijen en kolommen in de vorm van tabellen of zoiets. Maar hoe zit het met de bestanden en mappen die geen deel uitmaken van Excel? Wat als we die gegevens uit elk bestand moeten gebruiken, hoe komen we er dan bij? Dit is waar FileSystemObject van pas komt.

FileSystemObject of FSO wordt gebruikt om toegang te krijgen tot het systeem van bestanden vanaf onze computer. Hiermee kunnen we toegang krijgen tot alle bestandsmappen die we hebben op de computer waar we aan werken. FSO is eigenlijk een API-tool die wordt gebruikt om toegang te krijgen tot andere bestanden. Nu is dit niet standaard aanwezig in VBA, wat we later in dit artikel zullen leren. Laten we eerst begrijpen wat FSO is. Eerder in VBA hadden we de DIR-functie die werd aangeduid om toegang te krijgen tot andere bestanden en mappen vanaf een computer. De codering voor de DIR-functie was erg complex om mee te werken. Maar in FSO zijn de dingen anders.

Nu zijn er vier soorten objecten waartoe we toegang hebben via FSO en deze zijn als volgt:

  • Drive: die wordt gebruikt om toegang te hebben tot een genoemde drive.
  • Map: Dit wordt gebruikt om toegang te hebben tot een genoemde map.
  • Bestand: Dit wordt gebruikt om toegang te hebben tot een genoemd bestand.
  • Tekststream: met dit object kunnen we een tekstbestand lezen of schrijven.

Elk van de hierboven genoemde objecten heeft verschillende methoden om ze te gebruiken. Als we bijvoorbeeld een bestand willen kopiëren, gebruiken we de methode CopyFile of verwijderen we een map, gebruiken we de methode DeleteFolder enzovoort.

Zoals ik hierboven heb besproken, is FSO niet standaard aanwezig in VBA, er zijn twee methoden om FSO in VBA in te schakelen.

  • De eerste methode is door de referentie in te stellen.
  • De tweede methode is om vanuit de code naar de bibliotheek te verwijzen.

Hoewel de tweede methode complexer is, wordt het altijd aanbevolen om de eerste methode te gebruiken, die erg eenvoudig is. Laten we deze basisstappen volgen.

Ga in VBA naar het tabblad Hulpprogramma's en ga vervolgens naar Verwijzingen,

Er verschijnt een wizardvenster, selecteer Microsoft Scripting Runtime zoals hieronder weergegeven en druk op OK.

Nu hebben we toegang tot FSO in VBA. Laten we dit nu door enkele voorbeelden gebruiken en er meer over leren.

Hoe VBA FileSystemObject in Excel te gebruiken?

Hieronder staan ​​de verschillende voorbeelden om de VBA FileSystemObject-functie in Excel te gebruiken

U kunt deze VBA FileSystemObject Excel-sjabloon hier downloaden - VBA FileSystemObject Excel-sjabloon

VBA FileSystemObject - Voorbeeld # 1

Voordat we FSO in Vba gaan gebruiken, moeten we eerst leren hoe we instanties in VBA kunnen maken.

Stap 1: maak in de submodule een subprocedure,

Code:

 Sub Newfso () Einde Sub 

Stap 2: Declareer een variabele als FileSystemObject zoals hieronder getoond,

Code:

 Sub Newfso () Dim A als FileSystemObject End Sub 

Stap 3: Nu moeten we een instantie maken omdat FSO een object is met behulp van de SET-instructie zoals hieronder wordt weergegeven,

Code:

 Sub Newfso () Dim A als FileSystemObject Set A = Nieuw FileSystemObject End Sub 

Met deze verklaring kunnen we nu bestanden of mappen maken of wijzigen met behulp van FSO.

Stap 4: Nu kunnen we de IntelliSense-functie zien na het inschakelen van FSO. Gebruik de puntoperator als volgt,

Code:

 Sub Newfso () Dim A als FileSystemObject Set A = Nieuw FileSystemObject A. Einde Sub 

Het gaf ons verschillende opties met behulp van de IntelliSense-functie. Dit is hoe we instanties maken met behulp van FSO.

VBA FileSystemObject - Voorbeeld # 2

Nu we een exemplaar in Voorbeeld 1 hebben gemaakt, laten we verder gaan om het te gebruiken en controleren of een bestand of map bestaat of niet.

Stap 1: Nadat we een nieuw FileSystemObject hebben gemaakt, gebruikt u de instructie IF om als volgt te bepalen of een map bestaat of niet,

Code:

 Sub Newfso () Dim A als FileSystemObject Set A = Nieuw FileSystemObject Als A.FolderExists ("C: \ Users \ Public \ Project") dan Sub beëindigen 

Stap 2: Als de map bestaat, willen we de map weergeven en zo niet, dan willen we dat die map niet bestaat.

Code:

 Sub Newfso () Dim A als FileSystemObject Set A = Nieuw FileSystemObject Als A.FolderExists ("C: \ Users \ Public \ Project") Dan MsgBox "De map bestaat" Else MsgBox "De map bestaat niet" Einde als Einde Sub 

Stap 3: Voer nu de bovenstaande code uit en zie het resultaat als volgt,

De map bestaat op mijn bureaublad, dus we krijgen het bericht dat de map bestaat.

VBA FileSystemObject - Voorbeeld # 3

Nu we hebben besproken dat FSO verschillende objecten heeft, zoals schijven. Laten we eens kijken hoeveel ruimte ik beschikbaar heb in mijn E-schijf.

Stap 1: Start als volgt met een andere subprocedure,

Code:

 Sub Newfso1 () Einde Sub 

Stap 2: Declareer nu een variabele als FileSystemObject en stel deze als volgt in op een nieuwe instantie,

Code:

 Sub Newfso1 () Dim A als FileSystemObject Set A = Nieuw FileSystemObject End Sub 

Stap 3: Omdat we nu de eigenschap Drive gebruiken, declareert u één variabele als Drive-type en één variabele als dubbel om de gegevens als volgt te bewaren,

Code:

 Sub Newfso1 () Dim A als FileSystemObject Set A = Nieuw FileSystemObject Dim D als schijf, Dspace als Double End Sub 

Stap 4: Laten we nu een nieuw schijfobject maken, zoals hieronder wordt weergegeven,

Code:

 Sub Newfso1 () Dim A als FileSystemObject Set A = Nieuw FileSystemObject Dim D als schijf, Dspace als dubbele set D = A.GetDrive ("C:") End Sub 

Dit is een van de FSO-methoden die we gebruiken om toegang tot de schijf te krijgen.

Stap 5: We zullen een andere FSO-methode gebruiken om de vrije ruimte van de schijf op te halen en op te slaan in de variabele die is gedefinieerd voor het opslaan van de schijfruimte,

Code:

 Sub Newfso1 () Dim A als FileSystemObject Set A = Nieuw FileSystemObject Dim D als schijf, Dspace als dubbele set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Stap 6: Laten we nu de ruimte in GB als volgt berekenen,

Code:

 Sub Newfso1 () Dim A als FileSystemObject Set A = Nieuw FileSystemObject Dim D als schijf, Dspace als dubbele set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) Einde Sub 

Stap 7: Geef nu de waarde weer die is opgeslagen in Drive-ruimte met behulp van de msgbox-functie als volgt,

Code:

 Sub Newfso1 () Dim A als FileSystemObject Set A = Nieuw FileSystemObject Dim D als schijf, Dspace als dubbele set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "The Drive" & D & "heeft" & Dspace & "GB free Space" End Sub 

Stap 8: Voer de bovenstaande code uit om het onderstaande resultaat te achterhalen,

VBA FileSystemObject - Voorbeeld # 4

Laten we nu een nieuwe map maken naar een opgegeven locatie met behulp van FSO.

Stap 1: Laten we opnieuw beginnen met een andere subprocedure als volgt,

Code:

 Sub Newfso2 () Einde Sub 

Stap 2: Laten we dezelfde stappen volgen en een instantie als volgt maken,

Code:

 Sub Newfso2 () Dim A als FileSystemObject Set A = Nieuw FileSystemObject End Sub 

Stap 3: Nu gebruiken we de methode Map maken om een ​​nieuwe map op een opgegeven locatie te maken,

Code:

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

Stap 4: Voer de bovenstaande code uit en bekijk het resultaat op het bureaublad als volgt,

We hebben met succes een nieuwe map op de opgegeven locatie gemaakt.

Dingen om te onthouden in VBA FileSystemObject

  • FSO is een API-toepassingstool.
  • FSO is standaard niet beschikbaar in VBA.
  • Met FSO kunnen we bestanden en mappen op een computer maken, wijzigen of lezen.
  • We kunnen ook FSO gebruiken voor onze netwerkschijven.

Aanbevolen artikelen

Dit is een handleiding voor VBA FileSystemObject. Hier bespreken we hoe VBA FileSystemObject in Excel te gebruiken, samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Volledige gids voor VBA-werkmap
  2. INDIRECTE functie in Excel
  3. VBA-telfunctie
  4. Excel XOR-functie

Categorie: