VBA FileSystemObject (FSO) - Kuinka käyttää FileSystemObjectia?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) toimii samalla tavalla kuin FileDialog, jota käytetään pääsemään muihin työskentelemämme tietokoneen tiedostoihin. Voimme myös muokata näitä tiedostoja tarkoittaa tiedoston lukemista tai kirjoittamista. FSO: n avulla voimme käyttää tiedostoja, työskennellä niiden kanssa, muokata tiedostoja ja kansioita. FSO on tärkeä API-työkalu, jota voimme käyttää VBA: lla. Osana VBA-projektia meidän on ehkä käytettävä muutamia kansioita ja tiedostoja tietokoneellamme työn saamiseksi.

Voimme tehdä monia tehtäviä käyttämällä FSO: ta, kuten "tarkistaa, onko kansio käytettävissä vai ei", luoda uusi kansio tai tiedostot, nimetä uudelleen olemassa oleva kansio tai tiedostot, saada luettelo kaikista kansiossa olevista tiedostoista ja myös alikansioiden nimet . Lopuksi voimme kopioida tiedostot paikasta toiseen.

Vaikka kansioiden ja tiedostojen kanssa on muitakin toimintoja, FSO on helpoin tapa työskennellä kansioiden ja tiedostojen kanssa pitämällä VBA-koodi siistinä ja suorana.

FileSystemObject-ohjelmalla voimme käyttää neljää tyyppiä objekteja. Alla ovat ne.

  1. Asema: Tämän objektin avulla voimme tarkistaa, onko mainittu asema olemassa vai ei. Voimme saada yrityksen polun nimen, tarkoituksen tyypin ja koon.
  2. Kansio: Tämän objektin avulla voimme tarkistaa, onko tietty kansio olemassa vai ei. Voimme luoda, poistaa, muokata, kopioida kansioita tämän objektin avulla.
  3. Tiedosto: Tämän objektin avulla voimme tarkistaa, onko tietty tiedosto olemassa vai ei. Voimme luoda, poistaa, muokata, kopioida tiedostoja tällä VBA-objektilla.
  4. Tekstivirta: Tämän objektin avulla voimme luoda tai lukea tekstitiedostoja.

Kaikilla yllä olevilla menetelmillä on menetelmä. Vaatimusten perusteella voimme valita kunkin objektin menetelmän.

Kuinka FileSystemObject otetaan käyttöön?

Se ei ole helposti saatavilla VBA: ssa. Koska tiedostojen ja kansioiden käyttäminen on Excelin ulkopuolinen tehtävä, meidän on sallittava FileSystemObject. Kannusta noudattamalla seuraavia ohjeita.

Vaihe 1: Siirry Työkalut> Viitteet.

Vaihe # 2 - Valitse Microsoft Scripting Runtime -vaihtoehto

Vieritä alaspäin ja valitse Microsoft Scripting Runtime -vaihtoehto. Kun olet valinnut vaihtoehdot, napsauta OK.

Nyt voimme käyttää FileSystemObjectia (FSO) VBA: ssa.

Luo FileSystemObject-ilmentymä

Kun Microsoft Scripting Runtime -vaihtoehto on otettu käyttöön Objektikirjastosta, meidän on luotava tiedostojärjestelmäobjekti (FSO) koodaamalla.

Luo ilmentymä ilmoittamalla muuttuja ensin FileSystemObject- muotoon .

Kuten voimme nähdä, FileSystemObject näkyy VBA: n IntelliSense-luettelossa. Tätä ei olisi käytettävissä, ennen kuin otamme Microsoft Scripting Runtime -ominaisuuden käyttöön.

Koska FSO on objekti, meidän on määritettävä se uuden ilmentymän luomiseksi.

Nyt voimme käyttää kaikkia FSO: n (FileSystemObject) vaihtoehtoja.

Esimerkkejä VBA FileSystemObject -ohjelman käytöstä

Esimerkki # 1 - Etsi koko ajotila

Alla oleva koodi antaa aseman kokonaistilan.

Koodi:

Sub FSO_Example1 () Hämärtää MyFirstFSO FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Create new drive object DriveSpace = DriveName.FreeSpace' Tämä vapauttaa tilaa aseman "C" DriveSpace = DriveSpace / 1073741824 'Tämä muuntaa vapaan tilan GB DriveSpace = pyöreäksi (DriveSpace, 2)' Pyöristää koko tilan MsgBox "Drive" ja DriveName & "sisältää" & DriveSpace & "GB" End Sub

Pura koodi.

Ensinnäkin loimme FSO: n esiintymän.

Hämärtää MyFirstFSO nimellä FileSystemObject Aseta MyFirstFSO = Uusi FileSystemObject

Seuraavaksi olemme ilmoittaneet kaksi muuttujaa.

Himmennä DriveName as -asemana Hämärä DriveSpace kaksinkertaisena

Koska DriveName on Object-muuttuja, meidän on asetettava tämä FSO-menetelmäksi. Koska tarvitsemme aseman ominaisuuksia, olemme käyttäneet Get Drive -vaihtoehtoa ja maininneet aseman nimen.

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

Toiselle muuttujalle, DriveSpace, määritämme käyttämäsi aseman vapaan tilan menetelmän.

DriveSpace = DriveName.FreeSpace

Tästä lähtien yllä oleva yhtälö voi saada meille vapaan tilan asemasta "C." Joten tuloksen näyttämiseksi gigatavuina olemme jakaneet avoimen tilan 1073741824: llä

DriveSpace = DriveSpace / 1073741824

Seuraavaksi pyöristämme numeron.

DriveSpace = pyöreä (DriveSpace, 2)

Näytä lopuksi tulos Viestiruudussa.

MsgBox "Drive" & DriveName & "sisältää" & 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

Suorita tämä koodi Excelin pikanäppäimen F5 kautta tai manuaalisesti, niin näet tuloksen.

Esimerkki # 3 - Tarkista onko tiedosto olemassa vai ei

Alla oleva koodi tarkistaa, onko mainittu tiedosto käytettävissä vai ei.

Koodi:

Ala FSO_Example3 () Hämärtää MyFirstFSO tiedostotiedostonaSysteemiobjekti Aseta MyFirstFSO = Uusi FileSystemObject, jos MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") ja sitten MsgBox "Mainittu tiedosto on käytettävissä" Else MsgBox " Tiedosto ei ole käytettävissä "End If End Sub

Suorita tämä koodi manuaalisesti tai F5-näppäimellä ja katso sitten tulos.

Mielenkiintoisia artikkeleita...