VBA FileSystemObject (FSO) | Jak získat přístup k FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) funguje podobně jako FileDialog, který slouží k získání přístupu k dalším souborům počítače, na kterém pracujeme. Můžeme také tyto soubory upravit, tj. Číst nebo zapisovat soubor. 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 možná budeme muset získat přístup k několika složkám a souborům v našem počítači, abychom mohli práci dokončit.

Pomocí FSO můžeme udělat mnoho úkolů jako „zkontrolovat, zda je složka k dispozici 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.

I když jsou k dispozici další funkce pro práci se složkami a soubory, FSO je nejjednodušší způsob práce se složkami a soubory tím, že udržuje VBA kód čistý a přímý.

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

  1. Jednotka: Pomocí tohoto objektu můžeme zkontrolovat, zda uvedená jednotka existuje či nikoli, můžeme získat cestu, typ jednotky a velikost jednotky.
  2. Složka: Tento objekt nám umožňuje zkontrolovat, zda konkrétní složka existuje či nikoli. Pomocí tohoto objektu můžeme vytvářet, mazat, upravovat, kopírovat složky.
  3. Soubor: Tento objekt nám umožňuje zkontrolovat, zda konkrétní soubor existuje či nikoli. Můžeme vytvářet, mazat, upravovat, kopírovat soubory pomocí tohoto objektu vba.
  4. Textový proud: Tento objekt nám umožňuje vytvářet nebo číst textové soubory.

Všechny výše uvedené metody mají vlastní metodu pro práci. Na základě našeho požadavku můžeme zvolit metodu každého objektu.

Jak povolit FileSystemObject?

Není snadno přístupný ve VBA. Vzhledem k tomu, že přístup k souborům a složkám je vnější úlohou aplikace Excel, musíme povolit FileSystemObject. Chcete-li povolit, postupujte podle následujících kroků.

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

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 OK.

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

Vytvořte instanci FileSystemObject

Jakmile je v knihovně objektů povolena možnost „Microsoft Scripting Runtime“, musíme pomocí kódování vytvořit instanci objektu systému souborů (FSO).

Chcete-li vytvořit instanci, nejprve deklarujte proměnnou jako FileSystemObject.

Jak vidíme, FileSystemObject se objevuje v seznamu IntelliSense ve VBA. To by nebylo k dispozici, než povolíme 'Microsoft Scripting Runtime'.

Protože FSO je objekt, musíme jej nastavit tak, aby vytvořil novou instanci.

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

Příklady použití VBA FileSystemObject

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

Příklad č. 1 - Najděte celkový prostor na disku

Níže uvedený kód udává celkový prostor 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ím se volné místo převede na GB DriveSpace = Round (DriveSpace, 2)' zaokrouhlit celkový prostor MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub 

Rozdělení kódu.

Nejprve jsme vytvořili instanci FSO.

 Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject

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

 Dim DriveName jako Drive Dim DriveSpace jako Double 

Protože DriveName je proměnná Object, musíme to nastavit na FSO, jednu z metod FSO. Protože potřebujeme charakteristiku disku, použili jsme možnost Získat disk a zmínili jsme název disku

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

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

DriveSpace = DriveName.FreeSpace

Od této chvíle nám výše uvedená rovnice může dostat volné místo pro jednotku „C“. Abychom ukázali výsledek v GB, rozdělili jsme volné místo číslem 1073741824

DriveSpace = DriveSpace / 1073741824

Dále zaokrouhlíme číslo.

DriveSpace = Round (DriveSpace, 2)

Nakonec ukažte výsledek v okně zpráv.

MsgBox „Drive“ & DriveName & „has“ & DriveSpace & „GB“

Když spustíme kód ručně nebo pomocí klávesové zkratky F5, pak v okně se zprávou získáme volné místo na jednotce „C“.

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

Příklad č. 2 - Zkontrolujte, zda složka existuje nebo ne

Chcete-li zkontrolovat, zda konkrétní složka existuje nebo ne, použijte níže uvedený kód.

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

Kód:

 Sub FSO_Example2 () Dim MyFirstFSO jako FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists ("D: \ Excel Files \ VBA \ VBA Files") Then MsgBox "Uvedená složka je k dispozici" Jinak MsgBer "Zmínka" End If End Sub 

Spusťte tento kód pomocí klávesové zkratky aplikace Excel F5 nebo ručně a podívejte se na výsledek.

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

Níže uvedený 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 Mendeded File is Available" The Else MsgB Soubor není k dispozici „End If End Sub 

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


$config[zx-auto] not found$config[zx-overlay] not found