VBA FileSystemObject (FSO) | Hogyan érhető el a FileSystemObject?

Excel VBA FileSystemObject (FSO)

A VBA FileSystemObject (FSO) a FileDialoghoz hasonlóan működik, amelyet a számítógép más fájljaihoz való hozzáféréshez használunk. Ezeket a fájlokat is szerkeszthetjük, ami azt jelenti, hogy olvassuk vagy írjuk a fájlt. Az FSO segítségével elérhetjük a fájlokat, együtt dolgozhatunk velük, módosíthatjuk a fájlokat és mappákat. Az FSO a fontos API eszköz, amelyhez hozzáférhetünk a VBA segítségével. A VBA projekt részeként előfordulhat, hogy a munka elvégzéséhez néhány mappához és fájlhoz kell hozzáférnünk a számítógépünkön.

Számos feladatot elvégezhetünk az FSO használatával, például „ellenőrizni, hogy a mappa elérhető-e vagy sem”, Új mappát vagy fájlokat létrehozni, átnevezni a meglévő mappát vagy fájlokat, megkeresni a mappában található összes fájlt és az almappák nevét, és végül fájlokat másolhatunk egyik helyről a másikra.

Még akkor is, ha más funkciók állnak rendelkezésre a mappákkal és fájlokkal való munkavégzéshez, az FSO a legegyszerűbb módszer a mappák és fájlok kezelésére azáltal, hogy a VBA kódot tiszta és egyenesen tartja.

A FileSystemObject segítségével 4 típusú objektumhoz férhetünk hozzá. Az alábbiakban azok láthatók.

  1. Meghajtó: Ezzel az objektummal ellenőrizhetjük, hogy létezik-e az említett meghajtó, vagy sem, megkaphatjuk az útvonal nevét, a meghajtó típusát és a meghajtó méretét.
  2. Mappa: Ezzel az objektummal ellenőrizhetjük, hogy létezik-e az adott mappa. Ezzel az objektummal létrehozhatunk, törölhetünk, módosíthatunk és másolhatunk mappákat.
  3. Fájl: Ezzel az objektummal ellenőrizhetjük, hogy létezik-e az adott fájl. Hozhatunk létre, törölhetünk, módosíthatunk, másolhatunk fájlokat ezzel a vba objektummal.
  4. Text Stream: Ez az objektum lehetővé teszi számunkra, hogy szöveges fájlokat hozzunk létre vagy olvassunk.

A fenti módszerek mindegyikének megvan a maga módszere. Követelményünk alapján kiválaszthatjuk az egyes objektumok módszerét.

Hogyan engedélyezhető a FileSystemObject?

A VBA-ban nem érhető el könnyen. Mivel a fájlokhoz és mappákhoz való hozzáférés az excel külső feladata, engedélyeznünk kell a FileSystemObject alkalmazást. Az engedélyezéshez kövesse az alábbi lépéseket.

1. lépés: Lépjen az Eszközök> Hivatkozások elemre.

2. lépés - Válassza a „Microsoft Scripting Runtime” opciót

Görgessen lefelé, és válassza a „Microsoft Scripting Runtime” lehetőséget. Az opciók kiválasztása után kattintson az OK gombra.

Most hozzáférhetünk a FileSystemObject (FSO) fájlhoz az vba-ban.

Hozzon létre egy példányt a FileSystemObject fájlból

Miután engedélyezte a „Microsoft Scripting Runtime” opciót az Objects könyvtárból, kódolással létre kell hoznunk a File System Object (FSO) példányát.

A példány létrehozásához először deklarálja a változót FileSystemObject néven.

Mint láthatjuk, a FileSystemObject megjelenik a VBA IntelliSense listájában. Ez nem lenne elérhető, amíg engedélyezzük a „Microsoft Scripting Runtime” alkalmazást.

Mivel az FSO egy objektum, be kell állítanunk egy új példány létrehozásához.

Most hozzáférhetünk az FSO (FileSystemObject) összes lehetőségéhez.

Példák a VBA FileSystemObject használatára

Ezt a VBA FileSystemObject Excel sablont itt töltheti le - VBA FileSystemObject Excel sablont

1. példa - Keresse meg a teljes meghajtót

Az alábbi kód megadja a meghajtó teljes területét.

Kód:

 Sub FSO_Example1 () Dim MyFirstFSO mint 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' Ez megkapja a szabad helyet a meghajtó "C" DriveSpace = DriveSpace / 1073741824 'Ez a szabad teret GB-ra konvertálja DriveSpace = Kör (DriveSpace, 2)' Az MsgBox "Drive" és a DriveName & "teljes terének kerekítése" & "DriveSpace &" GB "vége Alatti 

A kód lebontása.

Először hoztunk létre egy FSO példányt.

 Dim MyFirstFSO mint FileSystemObject Állítsa be MyFirstFSO = Új FileSystemObject

Ezután két változót deklaráltunk.

 Dim DriveName as Drive Dim DriveSpace as Double 

Mivel a DriveName egy Object változó, ezt az FSO módszer egyikének FSO-ra kell állítanunk. Mivel szükségünk van a meghajtó jellemzőire, a Get Drive opciót használtuk, és megemlítettük a meghajtó nevét

 A DriveName = MyFirstFSO.GetDrive ("C:") beállítása

Most egy másik változó DriveSpace-hez hozzárendeljük a meghajtó szabad terület metódusát, amelyhez hozzáférünk.

DriveSpace = DriveName.FreeSpace

Mostantól a fenti egyenlet szabad területet kaphat a „C” meghajtó számára. Tehát az eredmény GB-ban való megjelenítéséhez elosztottuk a szabad helyet 1073741824-gyel

DriveSpace = DriveSpace / 1073741824

Ezután kerekítjük a számot.

DriveSpace = Kerek (DriveSpace, 2)

Végül mutassa meg az eredményt az Üzenet mezőben.

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

When we run the code manually or through shortcut key F5, then in 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 then 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 Files\VBA\VBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub 

Run this code through the excel Shortcut key F5 or manually, then see the result.

Example #3 – Check Whether the File Exists or Not

Below code will check whether the mentioned file is available or not.

Code:

 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 If End Sub 

Run this code manually or using the F5 key, then see the result.