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ů, například „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 . Nakonec 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 čtyřem typům objektů. Níže jsou ty.

  1. Jednotka: Pomocí tohoto objektu můžeme zkontrolovat, zda uvedená jednotka existuje nebo ne. Můžeme získat cestu, typ účelu a velikost podniku.
  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. Pomocí tohoto objektu VBA můžeme vytvářet, mazat, upravovat a kopírovat soubory.
  4. Textový proud: Tento objekt nám umožňuje vytvářet nebo číst textové soubory.

Všechny výše uvedené metody mají svou metodu pro práci. Na základě našich požadavků 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 povzbudit, 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 objekt systému souborů (FSO).

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

Jak vidíme, FileSystemObject se objeví 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

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

Níže uvedený kód poskytne celkový prostor jednotky.

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. Jelikož potřebujeme charakteristiku disku, použili jsme možnost Získat disk a zmínili jsme název disku.

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

U další proměnné 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 otevřený prostor čí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“

When we run the code manually or through shortcut key F5, then in the message box, we will get the free space of the drive “C.”

So, in my computer Drive C has 216.19 GB of free space memory.

Example #2 - Check Whether the Folder Exists or Not

To check whether the particular folder exists or not, use the below code.

If the mentioned folder is available, it will show us the message box as “The Mentioned Folder is Available.” If not, it will show the VBA message box as “The Mentioned Folder is Not Available.”

Code:

Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:Excel FilesVBAVBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" 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 jako 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.

Zajímavé články...