Úvod do FileSystemObject

Proč používáme VBA? Používáme VBA k automatizaci našich úkolů. Normálně ve Excelu pracujeme pouze s daty přítomnými v řádcích a sloupcích, které jsou ve formě tabulek nebo tak něco. Ale co soubory a složky, které nejsou součástí Excelu? Co když potřebujeme použít tato data z jakéhokoli souboru, jak k nim přistupujeme. Zde se hodí FileSystemObject.

FileSystemObject nebo FSO se používá pro přístup k systému souborů z našeho počítače. Tímto způsobem získáme přístup ke všem složkám souborů, které máme v počítači, na kterém pracujeme. FSO je v podstatě nástroj API, který se používá k přístupu k jiným souborům. Teď to není ve výchozím nastavení ve VBA, což se dozvíte dále v tomto článku. Nejprve pochopíme, co je to FSO. Dříve ve VBA jsme měli funkci DIR, která byla odkazována na přístup k dalším souborům a složkám z počítače. Kódování funkce DIR bylo velmi složité. Ale v FSO jsou věci jiné.

Nyní existují čtyři typy objektů, ke kterým máme přístup prostřednictvím FSO, a jsou to následující:

  • Drive: Který se používá k přístupu k uvedené jednotce.
  • Složka: Slouží k přístupu k uvedené složce.
  • Soubor: Slouží k přístupu k uvedenému souboru.
  • Text Stream: Pomocí tohoto objektu můžeme číst nebo psát textový soubor.

Každý z výše uvedených objektů má různé způsoby, jak je použít. Pokud například chceme kopírovat soubor, použijeme metodu CopyFile nebo odstraníme složku, použijeme metodu DeleteFolder atd.

Jak jsem již zmínil výše, FSO ve výchozím nastavení ve VBA není přítomen, existují dvě metody, jak povolit FSO ve VBA.

  • První metodou je nastavení reference.
  • Druhou metodou je odkazovat knihovnu z kódu.

Zatímco druhá metoda je složitější, vždy se doporučuje použít první metodu, která je velmi jednoduchá. Podívejme se na tyto základní kroky.

Ve VBA přejděte na kartu Nástroje a poté přejděte na Odkazy,

Zobrazí se okno průvodce, vyberte možnost Microsoft Scripting Runtime, jak je ukázáno níže, a stiskněte tlačítko OK.

Nyní můžeme přistupovat k FSO ve VBA. Nyní to využijeme na několika příkladech a naučíme se o tom.

Jak používat VBA FileSystemObject v Excelu?

Níže jsou uvedeny různé příklady použití funkce VBA FileSystemObject v Excelu

Tuto šablonu Excel VBA FileSystemObject si můžete stáhnout zde - VBA FileSystemObject Excel Template

VBA FileSystemObject - Příklad č. 1

Než začneme používat FSO ve Vba, nejprve se naučme, jak vytvářet instance ve VBA.

Krok 1: V dílčím modulu vytvořte dílčí postup,

Kód:

 Sub Newfso () End Sub 

Krok 2: Deklarujte proměnnou jako FileSystemObject, jak je ukázáno níže,

Kód:

 Sub Newfso () Dim A jako FileSystemObject End Sub 

Krok 3: Nyní musíme vytvořit instanci, protože FSO je objekt pomocí příkazu SET, jak je uvedeno níže,

Kód:

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

Nyní nám toto prohlášení umožní vytvářet nebo upravovat soubory nebo složky pomocí FSO.

Krok 4: Po aktivaci funkce FSO nyní můžeme vidět funkci IntelliSense. Použijte tečkový operátor následujícím způsobem,

Kód:

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

Díky funkci IntelliSense nám to poskytlo různé možnosti. Takto vytváříme instance pomocí FSO.

VBA FileSystemObject - Příklad č. 2

Od té doby, co jsme vytvořili instanci v příkladu 1, pojďme ji dále používat a zkontrolujte, zda soubor nebo složka existuje nebo ne.

Krok 1: Poté, co jsme vytvořili nový FileSystemObject, použijte příkaz IF k určení, zda složka existuje nebo ne, takto,

Kód:

 Sub Newfso () Dim A jako FileSystemObject Set A = New FileSystemObject Pokud A.FolderExists ("C: \ Users \ Public \ Project"), pak End Sub 

Krok 2: Pokud složka existuje, chceme složku zobrazit a pokud ji nechceme zobrazit, tato složka neexistuje.

Kód:

 Sub Newfso () Dim A jako FileSystemObject Set A = New FileSystemObject Pokud A.FolderExists ("C: \ Users \ Public \ Project"), pak MsgBox "Složka existuje" Else MsgBox "Složka neexistuje" End if End Sub 

Krok 3: Nyní spusťte výše uvedený kód a podívejte se na výsledek takto,

Složka na ploše existuje, takže dostaneme zprávu, že tato složka existuje.

VBA FileSystemObject - Příklad č. 3

Nyní, když jsme diskutovali, že FSO má různé objekty, jako jsou jednotky. Pojďme zjistit, kolik místa mám k dispozici na mé E jednotce.

Krok 1: Začněte dalším podprogramem následujícím způsobem,

Kód:

 Sub Newfso1 () End Sub 

Krok 2: Nyní deklarujte proměnnou jako FileSystemObject a nastavte ji na novou instanci následujícím způsobem,

Kód:

 Sub Newfso1 () Dim A jako FileSystemObject Set A = New FileSystemObject End Sub 

Krok 3: Nyní, když používáme vlastnost Drive, deklarujeme jednu proměnnou jako typ Drive a jednu proměnnou jako double pro uchovávání dat pro prostor následujícím způsobem,

Kód:

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

Krok 4: Nyní vytvořme nový objekt jednotky, jak je znázorněno níže,

Kód:

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

Toto je jedna z metod FSO, které používáme pro přístup k jednotce.

Krok 5: Použijeme jinou metodu FSO, abychom získali volné místo na disku a uložili jej do proměnné definované pro uložení místa na disku,

Kód:

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

Krok 6: Nyní vypočtěte prostor v GB následujícím způsobem,

Kód:

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

Krok 7: Nyní zobrazte hodnotu uloženou pro místo na disku pomocí funkce msgbox,

Kód:

 Sub Newfso1 () Dim A jako FileSystemObject Set A = New FileSystemObject Dim D jako 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: Provedením výše uvedeného kódu zjistíte výsledek níže,

VBA FileSystemObject - Příklad č. 4

Nyní vytvořme novou složku do určeného umístění pomocí FSO.

Krok 1: Začněme znovu dalším podprogramem následujícím způsobem,

Kód:

 Sub Newfso2 () End Sub 

Krok 2: Postupujte stejným způsobem a vytvořte instanci následujícím způsobem,

Kód:

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

Krok 3: Nyní použijeme metodu Create Folder k vytvoření nové složky do určeného umístění,

Kód:

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

Krok 4: Spusťte výše uvedený kód a podívejte se na výsledek na ploše následujícím způsobem,

Úspěšně jsme vytvořili novou složku do zadaného umístění.

Co si pamatovat ve VBA FileSystemObject

  • FSO je aplikační nástroj API.
  • FSO není ve výchozím nastavení k dispozici ve VBA.
  • S FSO můžeme vytvářet, upravovat nebo číst soubory a složky v počítači.
  • Můžeme také použít FSO pro naše síťové jednotky.

Doporučené články

Toto je průvodce VBA FileSystemObject. Zde diskutujeme o tom, jak používat VBA FileSystemObject v Excelu spolu s několika praktickými příklady a šablonou Excel ke stažení. Můžete si také prohlédnout naše další doporučené články -

  1. Kompletní průvodce sešitem VBA
  2. NEPRIAME Funkce v Excelu
  3. Funkce počítání VBA
  4. Funkce Excel XOR

Kategorie: