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

Excel VBA FileSystemObject (FSO)

A VBA FileSystemObject (FSO) hasonlóan működik, mint a FileDialog, 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”, létrehozni egy új mappát vagy fájlokat, átnevezni a meglévő mappát vagy fájlokat, megkapni a mappában található összes fájl listáját és az almappák nevét . Végül átmásolhatjuk a fájlokat 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.

Négyféle objektumhoz férhetünk hozzá a FileSystemObject segítségével. Az alábbiakban azok láthatók.

  1. Meghajtó: Ezzel az objektummal ellenőrizhetjük, hogy létezik-e az említett meghajtó. Megkaphatjuk a vállalkozás elérési útját, célját és 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. Ezzel a VBA-objektummal fájlokat hozhatunk létre, törölhetünk, módosíthatunk, másolhatunk.
  4. Szövegfolyam: 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. Igényeink 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. A bátorításhoz 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' opciót. Az opciók kiválasztása után kattintson az OK gombra.

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

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

Miután engedélyezte az Objektumok könyvtárból a „Microsoft Scripting Runtime” opciót, kódolással létre kell hoznunk egy fájlrendszer objektumot (FSO).

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 érhető el, 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

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

The below code will give the total space of the drive.

Code:

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

Break Down of the Code.

First, we created an instance of FSO.

Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject

Next, we have declared two variables.

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, ezért a Get Drive opciót használtuk, és megemlítettük a meghajtó nevét.

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

Egy másik változó, a DriveSpace számára 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 területet 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" és DriveName & "rendelkezik" & 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

Futtassa ezt a kódot az excel F5 gyorsbillentyűjén keresztül vagy manuálisan, majd tekintse meg az eredményt.

3. példa - Ellenőrizze, hogy a fájl létezik-e vagy sem

Az alábbi kód ellenőrzi, hogy az említett fájl elérhető-e vagy sem.

Kód:

Sub FSO_Example3 () Dim MyFirstFSO, mint FileSystemObject Set MyFirstFSO = Új FileSystemObject, ha MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm"), majd MsgBox "Az említett fájl elérhető" Else MsgBox " A fájl nem érhető el "Vége, ha Vége al

Futtassa ezt a kódot manuálisan vagy az F5 billentyű segítségével, majd tekintse meg az eredményt.

érdekes cikkek...