Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

A VBA FileSystemObject (FSO) a FileDialoghoz hasonlóan működik, és arra szolgál, hogy hozzáférjünk a számítógép más fájljaihoz, amelyeken dolgozunk. Ezeket a fájlokat szerkeszthetjük is, ami a fájl olvasását vagy írását jelenti. Az FSO segítségével hozzáférhetünk a fájlokhoz, dolgozhatunk velük, módosíthatjuk a fájlokat és mappákat. Az FSO az a fontos API eszköz, amelyhez a VBA-val hozzáférhetünk. A VBA projekt részeként szükségünk lehet arra, hogy hozzáférjünk néhány mappához és fájlhoz a számítógépünkön, hogy elvégezzük a munkát.

Az FSO használatával számos feladatot elvégezhetünk, például “ellenőrizhetjük, hogy a mappa elérhető-e vagy sem”, új mappát vagy fájlokat hozhatunk létre, átnevezhetjük a meglévő mappát vagy fájlokat, megkaphatjuk a mappában lévő összes fájl listáját, valamint az almappák nevét. Végül pedig fájlokat másolhatunk egyik helyről a másikra.

Még ha más funkciók is rendelkezésre állnak a mappákkal és fájlokkal való munkához, az FSO a legegyszerűbb módszer a mappákkal és fájlokkal való munkához, mivel a VBA-kód rendezett és egyenes marad.

A FileSystemObject segítségével négyféle objektumhoz férhetünk hozzá. Az alábbiak ezek.

  1. Drive: Ezzel az objektummal ellenőrizhetjük, hogy az említett meghajtó létezik-e vagy sem. Megkaphatjuk a vállalkozás elérési útvonalát, rendeltetésének típusát és méretét.
  2. Folder: Ezzel az objektummal ellenőrizhetjük, hogy az adott mappa létezik-e vagy sem. Ezzel az objektummal létrehozhatunk, törölhetünk, módosíthatunk, másolhatunk mappákat.
  3. Fájl: Ezzel az objektummal ellenőrizhetjük, hogy az adott fájl létezik-e vagy sem. Ezzel a VBA objektummal létrehozhatunk, törölhetünk, módosíthatunk, másolhatunk fájlokat.
  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. Igényeink alapján választhatjuk ki az egyes objektumok módszerét.

Hogyan engedélyezzük a FileSystemObjectet?

Ez nem könnyen hozzáférhető a VBA-ban. Mivel a fájlok és mappák elérése az excel külső feladata, engedélyeznünk kell a FileSystemObjectet. Az ösztönzéshez kövesse az alábbi lépéseket.

1. lépés: Menjen az Eszközök>Referenciák

2. lépés – Válassza ki 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 elérhetjük a FileSystemObjectet (FSO) a VBA-ban.

Create an Instance of FileSystemObject

Miután a ‘Microsoft Scripting Runtime’ opciót engedélyeztük az Objects könyvtárból, kódolással létre kell hoznunk egy File System Objectet (FSO).

Népszerű tanfolyam ebben a kategóriában

VBA képzés (3 tanfolyam, 12+ projekt)
4.6 (247 értékelés) 3 tanfolyam | 12 gyakorlati projekt | 43+ óra | Teljes élethosszig tartó hozzáférés | Tanúsítvány a befejezésről

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

Mint látjuk, a FileSystemObject megjelenik a VBA IntelliSense listájában. Ez nem lett volna elérhető, mielőtt engedélyeztük volna a ‘Microsoft Scripting Runtime’-t.’

Mivel az FSO egy objektum, be kell állítanunk, hogy új példányt hozzunk létre.

Most elérhetjük az FSO(FileSystemObject) összes opcióját.

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

Ez a VBA FileSystemObject Excel sablon letölthető innen – VBA FileSystemObject Excel sablon

Példa #1 – Find the Total Drive Space

Az alábbi kód megadja a meghajtó teljes tárhelyét.

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

A kód lebontása.

Először is létrehoztuk az FSO egy példányát.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

Második lépésként két változót deklaráltunk.

Dim DriveName As DriveDim DriveSpace As Double

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

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

A másik változóhoz, a DriveSpace-hez az általunk elérhető meghajtó szabad hely módszerét rendeljük.

DriveSpace = DriveName.FreeSpace

A fenti egyenlet segítségével megkapjuk a “C” meghajtó szabad helyét. Tehát ahhoz, hogy az eredményt GB-ban jelenítsük meg, a szabad helyet elosztottuk 1073741824-gyel

DriveSpace = DriveSpace / 1073741824

A következő lépésben kerekítjük a számot.

DriveSpace = Round(DriveSpace, 2)

Végül az eredményt megjelenítjük az üzenőmezőben.

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

Ha a kódot kézzel vagy az F5 gyorsbillentyűvel futtatjuk, akkor az üzenőmezőben megkapjuk a “C” meghajtó szabad helyét.”

Az én számítógépemen tehát a C meghajtó 216,19 GB szabad memóriaterülettel rendelkezik.

Példa #2 – Annak ellenőrzése, hogy létezik-e a mappa vagy sem

Az alábbi kóddal ellenőrizhetjük, hogy az adott mappa létezik-e vagy sem.

Ha az említett mappa elérhető, akkor megjelenik számunkra az “Az említett mappa elérhető” üzenetmező. Ha nem, akkor a VBA üzenőmezőben a “The Mentioned Folder is Not Available.”

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

Futtassa ezt a kódot az excel F5 gyorsbillentyűvel vagy kézzel, majd nézze meg az eredményt.

Példa #3 – Annak ellenőrzése, 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 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

Futtassa ezt a kódot kézzel vagy az F5 billentyűvel, majd nézze meg az eredményt.

Javasolt cikkek

Ez volt az útmutató a VBA FileSystemObject. Itt megtanuljuk, hogyan használjuk a FileSystemObjectet (FSO) a VBA-ban, hogy elérjük a fájlokat és mappákat a számítógépről, valamint gyakorlati példákat és egy letölthető excel-sablont. Az alábbiakban néhány hasznos excel VBA cikket talál –

  • ME kulcsszó a VBA-ban
  • StrComp függvény a VBA-ban
  • StrConv Funkció a VBA-ban
  • VBA IIF
0 részvény

VBA képzés (3 tanfolyam, 12+ projekt)

  • 3 tanfolyam
  • 12 gyakorlati projekt
  • 43+ óra
  • Teljes életre szóló hozzáférés
  • Teljesítési bizonyítvány

TOVÁBBI TUDÁS >>

Leave a Reply

Az e-mail-címet nem tesszük közzé.