Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) funguje podobně jako FileDialog, slouží k přístupu k dalším souborům počítače, na kterém pracujeme. Tyto soubory můžeme také upravovat, což znamená číst nebo zapisovat do souboru. Pomocí FSO můžeme přistupovat k souborům, pracovat s nimi, upravovat soubory a složky. FSO je důležitý nástroj API, ke kterému můžeme přistupovat pomocí VBA. V rámci projektu VBA můžeme pro svou práci potřebovat přístup k několika složkám a souborům v počítači.

Pomocí FSO můžeme provádět mnoho úloh, například „zkontrolovat, zda je složka dostupná, nebo ne“, vytvořit novou složku nebo soubory, přejmenovat stávající složku nebo soubory, získat seznam všech souborů ve složce a také názvy podsložek. A konečně můžeme kopírovat soubory z jednoho umístění do druhého.

Přestože jsou k dispozici i jiné funkce pro práci se složkami a soubory, FSO je nejjednodušší metodou práce se složkami a soubory, protože udržuje kód VBA přehledný a jasný.

Pomocí FileSystemObject můžeme přistupovat ke čtyřem typům objektů. Níže jsou uvedeny.

  1. Jednotka: Pomocí tohoto objektu můžeme zkontrolovat, zda uvedená jednotka existuje nebo ne. Pomocí tohoto objektu můžeme zkontrolovat, zda daná složka existuje, nebo ne. Pomocí tohoto objektu můžeme vytvářet, mazat, upravovat, kopírovat složky.
  2. Soubor: Tento objekt nám umožňuje zjistit, zda daný soubor existuje, nebo ne. Pomocí tohoto objektu VBA můžeme vytvářet, mazat, upravovat, kopírovat soubory.
  3. Textový proud: Pomocí tohoto objektu VBA můžeme vytvářet, mazat, upravovat, kopírovat soubory: Tento objekt nám umožňuje vytvářet nebo číst textové soubory.

Všechny výše uvedené metody mají svůj způsob práce. Na základě našich požadavků můžeme zvolit metodu každého objektu.

Jak povolit objekt FileSystemObject?

V prostředí VBA není snadno přístupný. Protože přístup k souborům a složkám je vnější úlohou excelu, musíme FileSystemObject povolit. Pro povzbuzení postupujte podle níže uvedených kroků.

Krok #1: Přejděte na Nástroje>Reference.

Krok #2 – Vyberte možnost „Microsoft Scripting Runtime“

Přejděte dolů a vyberte možnost „Microsoft Scripting Runtime“. Po výběru možností klikněte na tlačítko OK.

Nyní můžeme ve VBA přistupovat k objektu FileSystemObject (FSO).

Vytvoření instance objektu FileSystemObject

Po povolení možnosti ‚Microsoft Scripting Runtime‘ z knihovny objektů musíme pomocí kódování vytvořit objekt File System Object (FSO).

Oblíbené kurzy v této kategorii

Školení VBA (3 kurzy, 12+ projektů)
4.6 (247 hodnocení) 3 kurzy | 12 praktických projektů | 43+ hodin | Plný doživotní přístup | Certifikát o absolvování

Pro vytvoření instance nejprve deklarujte proměnnou jako FileSystemObject.

Jak vidíme, FileSystemObject se objeví v seznamu IntelliSense ve VBA. To by nebylo k dispozici, dokud bychom nepovolili „Microsoft Scripting Runtime.“

Protože FSO je objekt, musíme mu nastavit vytvoření nové instance.

Nyní máme přístup ke všem možnostem FSO(FileSystemObject).

Příklady použití VBA FileSystemObject

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

Příklad č. 1 – zjištění celkového místa na disku

Níže uvedený kód vám poskytne celkové místo 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 of the drive "C" DriveSpace = DriveSpace / 1073741824 'This will convert the free space to GB DriveSpace = Round(DriveSpace, 2) 'Round the total space MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"End Sub

Rozklad kódu:

Nejprve jsme vytvořili instanci FSO.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

Dále jsme deklarovali dvě proměnné.

Dim DriveName As DriveDim DriveSpace As Double

Jelikož DriveName je objektová proměnná, musíme ji nastavit na jednu z metod FSO. Protože potřebujeme charakteristiku disku, použili jsme volbu Get Drive a uvedli jméno disku.

Set DriveName = MyFirstFSO.GetDrive("C:")

Do další proměnné, DriveSpace, přiřadíme metodu volného místa disku, ke kterému přistupujeme.

DriveSpace = DriveName.FreeSpace

Podle výše uvedené rovnice můžeme získat volné místo disku „C“. Abychom tedy mohli zobrazit výsledek v GB, vydělili jsme volné místo číslem 1073741824

DriveSpace = DriveSpace / 1073741824

Dále číslo zaokrouhlíme.

DriveSpace = Round(DriveSpace, 2)

Nakonec zobrazíme výsledek v okně zpráv.

MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"

Pokud kód spustíme ručně nebo prostřednictvím klávesové zkratky F5, pak v okně zpráv získáme volné místo jednotky „C“.“

Takže v mém počítači má jednotka C 216,19 GB volného místa paměti.

Příklad č. 2 – Kontrola, zda složka existuje či nikoliv

Pro kontrolu, zda daná složka existuje či nikoliv, použijte následující kód.

Pokud je uvedená složka k dispozici, zobrazí se nám okno se zprávou „Uvedená složka je k dispozici“. Pokud ne, zobrazí se okno se zprávou VBA jako „Zmíněná složka není k dispozici.“

Kód:

Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:\Excel Files\VBA\VBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End IfEnd Sub

Spustíme tento kód prostřednictvím klávesové zkratky F5 aplikace Excel nebo ručně a uvidíme výsledek.

Příklad č. 3 – Zkontrolujte, zda soubor existuje, nebo ne

Následující kód zkontroluje, zda je uvedený soubor k dispozici, nebo ne.

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") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End IfEnd Sub

Spusťte tento kód ručně nebo pomocí klávesy F5 a pak se podívejte na výsledek.

Doporučené články

Toto byl průvodce VBA FileSystemObject. Dozvíme se zde, jak používat FileSystemObject (FSO) ve VBA pro přístup k souborům a složkám z počítače a praktické příklady a šablonu Excelu ke stažení. Níže najdete několik užitečných článků o excelu VBA –

  • Klíčové slovoME ve VBA
  • FunkceStrComp ve VBA
  • StrConv Funkce ve VBA
  • VBA IIF
0 Akcie

Školení VBA (3 kurzy, 12+ projektů)

  • 3 kurzy
  • 12 praktických projektů
  • 43+ hodin
  • Plný doživotní přístup
  • Certifikát o absolvování

VÍCE INFORMACÍ >>

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna.