VBA FileSystemObject (FSO) - Ako získať prístup k FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) funguje podobne ako FileDialog, ktorý slúži na získanie prístupu k ďalším súborom v počítači, na ktorom pracujeme. Tieto súbory môžeme tiež upravovať, čo znamená čítať alebo zapisovať do súboru. Pomocou FSO môžeme pristupovať k súborom, pracovať s nimi, upravovať súbory a priečinky. FSO je dôležitý nástroj API, ku ktorému máme prístup pomocou VBA. V rámci projektu VBA možno budeme musieť mať prístup k niekoľkým priečinkom a súborom v počítači, aby sme mohli prácu dokončiť.

Pomocou nástroja FSO môžeme urobiť veľa úloh, napríklad „skontrolovať, či je priečinok k dispozícii alebo nie,“ vytvoriť nový priečinok alebo súbory, premenovať existujúci priečinok alebo súbory, získať zoznam všetkých súborov v priečinku a tiež názvy podpriečinkov. . Nakoniec môžeme súbory kopírovať z jedného miesta na druhé.

Aj keď sú k dispozícii ďalšie funkcie pre prácu s adresármi a súbormi, FSO je najjednoduchšia metóda pre prácu s adresármi a súbormi tak, že zachováva čistý a priamy kód VBA.

Pomocou FileSystemObject môžeme pristupovať k štyrom typom objektov. Nižšie sú uvedené.

  1. Jednotka: Pomocou tohto objektu môžeme skontrolovať, či uvedená jednotka existuje alebo nie. Môžeme získať cestu, typ účelu a veľkosť podniku.
  2. Priečinok: Tento objekt nám umožňuje skontrolovať, či konkrétny priečinok existuje alebo nie. Pomocou tohto objektu môžeme vytvárať, mazať, upravovať, kopírovať priečinky.
  3. Súbor: Tento objekt nám umožňuje skontrolovať, či konkrétny súbor existuje alebo nie. Pomocou tohto objektu VBA môžeme vytvárať, mazať, upravovať, kopírovať súbory.
  4. Textový tok: Tento objekt nám umožňuje vytvárať alebo čítať textové súbory.

Všetky vyššie uvedené metódy majú svoju metódu na prácu. Na základe našich požiadaviek si môžeme zvoliť metódu každého objektu.

Ako povoliť FileSystemObject?

Nie je ľahko prístupný vo VBA. Pretože prístup k súborom a adresárom je vonkajšou úlohou programu Excel, musíme povoliť FileSystemObject. Na povzbudenie postupujte podľa nasledujúcich krokov.

Krok 1: Prejdite do ponuky Nástroje> Referencie.

Krok 2 - Vyberte možnosť „Microsoft Scripting Runtime“

Posuňte zobrazenie nadol a vyberte možnosť „Microsoft Scripting Runtime“. Po výbere možností kliknite na OK.

Teraz máme prístup k FileSystemObject (FSO) vo VBA.

Vytvorte inštanciu FileSystemObject

Keď je v knižnici objektov povolená možnosť „Microsoft Scripting Runtime“, musíme pomocou kódovania vytvoriť objekt systému súborov (FSO).

Ak chcete vytvoriť inštanciu, najskôr deklarujte premennú ako FileSystemObject.

Ako vidíme, FileSystemObject sa objaví v zozname IntelliSense vo VBA. Toto by nebolo k dispozícii skôr, ako povolíme „Microsoft Scripting Runtime“.

Pretože FSO je objekt, musíme ho nastaviť na vytvorenie novej inštancie.

Teraz máme prístup ku všetkým možnostiam FSO (FileSystemObject).

Príklady použitia VBA FileSystemObject

Príklad č. 1 - Nájdite celkový priestor na disku

Nasledujúci kód poskytne celkový priestor na disku.

Kód:

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 jednotky "C" DriveSpace = DriveSpace / 1073741824 'Týmto sa voľný priestor skonvertuje na GB DriveSpace = Round (DriveSpace, 2)' zaokrúhliť celkový priestor MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub

Členenie kódexu.

Najskôr sme vytvorili inštanciu FSO.

Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject

Ďalej sme deklarovali dve premenné.

Dim DriveName ako Drive Dim DriveSpace ako Double

Pretože DriveName je premenná Object, musíme to nastaviť na FSO, jednu z metód FSO. Pretože potrebujeme charakteristiku disku, použili sme možnosť Získať disk a spomenuli sme názov disku.

Nastaviť DriveName = MyFirstFSO.GetDrive ("C:")

Pre ďalšiu premennú DriveSpace priradíme metódu voľného miesta disku, ku ktorému pristupujeme.

DriveSpace = DriveName.FreeSpace

Vyššie uvedená rovnica nám teraz môže poskytnúť voľné miesto na jednotke „C.“ Aby sme teda ukázali výsledok v GB, rozdelili sme otvorený priestor číslom 1073741824

DriveSpace = DriveSpace / 1073741824

Ďalej číslo zaokrúhľujeme.

DriveSpace = okrúhle (DriveSpace, 2)

Nakoniec ukážte výsledok v schránke správ.

MsgBox „Drive“ & DriveName & „has“ & 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

Spustite tento kód pomocou klávesovej skratky F5 programu Excel alebo manuálne, potom uvidíte výsledok.

Príklad č. 3 - Skontrolujte, či súbor existuje alebo nie

Nasledujúci kód skontroluje, či je uvedený súbor k dispozícii alebo nie.

Kód:

Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Potom MsgBox "Uvedený súbor je k dispozícii" Inak MsgBox Súbor nie je k dispozícii „End If End Sub

Spustite tento kód manuálne alebo pomocou klávesu F5 a potom si pozrite výsledok.

Zaujímavé články...