Úvod do FileSystemObject

Prečo používame VBA? Na automatizáciu našich úloh používame VBA. Normálne pracujeme iba s údajmi v riadkoch a stĺpcoch, ktoré sú vo forme tabuliek alebo podobne. Ale čo súbory a priečinky, ktoré nie sú súčasťou programu Excel? Čo ak potrebujeme tieto údaje použiť z ľubovoľného súboru, ako k nim pristupujeme. To je miesto, kde FileSystemObject príde vhod.

FileSystemObject alebo FSO sa používa na prístup k systému súborov z nášho počítača. Pomocou tohto môžeme získať prístup ku všetkým zložkám súborov, ktoré máme v počítači, na ktorom pracujeme. FSO je v podstate nástroj API, ktorý sa používa na prístup k iným súborom. Teraz to nie je predvolene prítomné vo VBA, ktoré sa dozvieme ďalej v tomto článku. Poďme najprv pochopiť, čo je spoločnosť FSO. Na začiatku programu VBA sme mali funkciu DIR, ktorá sa používala na prístup k iným súborom a priečinkom z počítača. Kódovanie funkcie DIR bolo veľmi zložité. Ale v FSO sú veci rôzne.

Teraz existujú štyri typy objektov, ku ktorým máme prístup prostredníctvom FSO, a sú to tieto:

  • Jednotka: ktorá sa používa na prístup k uvedenej jednotke.
  • Priečinok: Používa sa na prístup k uvedenému priečinku.
  • Súbor: Používa sa na prístup k uvedenému súboru.
  • Textový tok: S týmto objektom môžeme čítať alebo zapisovať textový súbor.

Každý z vyššie uvedených objektov má na ich použitie odlišné metódy. Napríklad, ak chceme kopírovať súbor, použijeme metódu CopyFile alebo odstránime priečinok, použijeme metódu DeleteFolder a tak ďalej.

Ako som už uviedol vyššie, FSO nie je predvolene prítomný vo VBA, existujú dve metódy, ako povoliť FSO vo VBA.

  • Prvou metódou je nastavenie referencie.
  • Druhou metódou je odkazovať na knižnicu z kódu.

Zatiaľ čo druhá metóda je zložitejšia, vždy sa odporúča použiť prvú metódu, ktorá je veľmi jednoduchá. Postupujme podľa týchto základných krokov.

Vo VBA prejdite na kartu Nástroje a potom prejdite na Odkazy,

Objaví sa okno sprievodcu, vyberte možnosť Microsoft Scripting Runtime, ako je to znázornené nižšie, a stlačte tlačidlo OK.

Teraz máme prístup k FSO vo VBA. Teraz to využijeme na niekoľkých príkladoch a naučíme sa o tom.

Ako používať VBA FileSystemObject v Exceli?

Nižšie sú uvedené rôzne príklady použitia funkcie VBA FileSystemObject v Exceli

Túto šablónu Excel VBA FileSystemObject si môžete stiahnuť tu - VBA FileSystemObject Excel Template

VBA FileSystemObject - Príklad č. 1

Predtým, ako začneme používať FSO vo Vba, najprv sa naučme, ako vytvárať inštancie vo VBA.

Krok 1: V čiastkovom module vytvorte čiastkový postup,

kód:

 Sub Newfso () Koniec Sub 

Krok 2: Vyhláste premennú ako FileSystemObject, ako je uvedené nižšie,

kód:

 Sub Newfso () Dim A ako FileSystemObject End Sub 

Krok 3: Teraz musíme vytvoriť inštanciu, pretože FSO je objekt pomocou príkazu SET, ako je to znázornené nižšie,

kód:

 Sub Newfso () Dim A ako FileSystemObject Set A = Nový FileSystemObject End Sub 

Toto vyhlásenie nám teraz umožní vytvárať alebo upravovať súbory alebo priečinky pomocou servera FSO.

Krok 4: Po povolení funkcie FSO teraz uvidíme funkciu IntelliSense. Operátor bodiek použite nasledovne,

kód:

 Sub Newfso () Dim A ako FileSystemObject Set A = New FileSystemObject A. End Sub 

Vďaka funkcii IntelliSense sme získali rôzne možnosti. Takto vytvárame inštancie pomocou FSO.

VBA FileSystemObject - Príklad č. 2

Odkedy sme vytvorili inštanciu v príklade 1, prejdeme ďalej na jej použitie a skontrolujte, či súbor alebo priečinok existuje alebo nie.

Krok 1: Po vytvorení nového súboru FileSystemObject použite príkaz IF na zistenie, či priečinok existuje alebo nie, ako je uvedené ďalej,

kód:

 Sub Newfso () Dim A ako FileSystemObject Set A = New FileSystemObject Ak A.FolderExists ("C: \ Users \ Public \ Project"), potom End Sub 

Krok 2: Ak priečinok existuje, chceme zobraziť priečinok a ak nechceme, aby tento priečinok neexistoval.

kód:

 Sub Newfso () Dim A ako FileSystemObject Set A = New FileSystemObject Ak A.FolderExists ("C: \ Users \ Public \ Project"), potom MsgBox "Zložka existuje" Else MsgBox "Zložka neexistuje" End if End Sub 

Krok 3: Teraz vykonajte vyššie uvedený kód a pozrite si výsledok takto,

Priečinok na mojej pracovnej ploche existuje, takže dostaneme správu, že tento priečinok existuje.

VBA FileSystemObject - Príklad č. 3

Teraz, keď sme diskutovali, že spoločnosť FSO má rôzne objekty, napríklad jednotky. Zistime, koľko miesta mám k dispozícii na jednotke E.

Krok 1: Začnite iným podprogramom nasledovne:

kód:

 Sub Newfso1 () End Sub 

Krok 2: Teraz deklarujte premennú ako FileSystemObject a nastavte ju na novú inštanciu nasledovne:

kód:

 Sub Newfso1 () Dim A ako FileSystemObject Set A = Nový FileSystemObject End Sub 

Krok 3: Teraz, keď používame vlastnosť Drive, deklarujeme jednu premennú ako typ jednotky a jednu premennú ako dvojnásobnú, aby sme uchovali údaje pre priestor nasledujúcim spôsobom:

kód:

 Sub Newfso1 () Dim A ako FileSystemObject Set A = New FileSystemObject Dim D ako Drive, Dspace ako Double End Sub 

Krok 4: Teraz vytvorme nový objekt jednotky, ako je to znázornené nižšie,

kód:

 Sub Newfso1 () Dim A ako FileSystemObject Set A = New FileSystemObject Dim D ako Drive, Dspace As Double Set D = A.GetDrive ("C:") End Sub 

Toto je jedna z metód FSO, ktoré používame na prístup k jednotke.

Krok 5: Na získanie voľného miesta na disku použijeme inú metódu FSO a uložíme ho do premennej definovanej na uloženie priestoru na disku,

kód:

 Sub Newfso1 () Dim A ako FileSystemObject Set A = New FileSystemObject Dim D ako Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Krok 6: Teraz vypočítajme medzeru v GB takto,

kód:

 Sub Newfso1 () Dim A ako FileSystemObject Set A = New FileSystemObject Dim D ako Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) End Sub 

Krok 7: Teraz zobrazte hodnotu uloženú v priestore disku pomocou funkcie msgbox nasledovne:

kód:

 Sub Newfso1 () Dim A ako FileSystemObject Set A = New FileSystemObject Dim D ako Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "The Drive" & D & "má" & Dspace & "GB free Space" End Sub 

Krok 8: Spustením vyššie uvedeného kódu zistite výsledok nižšie,

VBA FileSystemObject - Príklad č. 4

Teraz vytvorme nový priečinok do určeného umiestnenia pomocou FSO.

Krok 1: Znovu začnime ďalším podprogramom,

kód:

 Sub Newfso2 () Koniec Sub 

Krok 2: Postupujme podľa rovnakých krokov a vytvoríme inštanciu nasledovne:

kód:

 Sub Newfso2 () Dim A ako FileSystemObject Set A = Nový FileSystemObject End Sub 

Krok 3: Teraz použijeme metódu Vytvoriť priečinok na vytvorenie nového priečinka na určené miesto,

kód:

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

Krok 4: Spustite vyššie uvedený kód a pozrite si výsledok na pracovnej ploche takto,

Úspešne sme vytvorili nový priečinok do určeného umiestnenia.

Čo je potrebné pamätať vo VBA FileSystemObject

  • FSO je aplikačný nástroj API.
  • FSO nie je v predvolenom nastavení k dispozícii vo VBA.
  • Pomocou FSO môžeme vytvárať, upravovať alebo čítať súbory a priečinky v počítači.
  • FSO môžeme tiež použiť pre naše sieťové disky.

Odporúčané články

Toto je sprievodca súborom VBA FileSystemObject. Tu diskutujeme o tom, ako používať VBA FileSystemObject v Exceli spolu s niekoľkými praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Kompletný sprievodca zošitom VBA
  2. NEPRIAME Funkcia v Exceli
  3. Funkcia počítania VBA
  4. Funkcia Excel XOR

Kategórie: