Ú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 TemplateVBA 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 -
- Kompletný sprievodca zošitom VBA
- NEPRIAME Funkcia v Exceli
- Funkcia počítania VBA
- Funkcia Excel XOR