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, johon voimme käyttää VBA: ta. 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 kansion tiedostoista ja myös alikansioiden nimistä ja lopuksi voimme kopioida tiedostoja 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 polun nimen, aseman tyypin ja aseman 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 oma menetelmä työskennellä. Vaatimuksemme 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. Ota käyttöön noudattamalla alla olevia 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äobjektin (FSO) esiintymä koodaamalla.

Luo ilmentymä ilmoittamalla muuttuja ensin FileSystemObject.

Kuten näemme, 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 asetettava se luomaan uusi ilmentymä.

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

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

Voit ladata tämän VBA FileSystemObject Excel -mallin täältä - VBA FileSystemObject Excel -malli

Esimerkki # 1 - Etsi koko ajotila

Koodin alapuolella ilmoitetaan aseman koko tila.

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ää MsgBox "Drive" & DriveName & "sisältää" & DriveSpace & "GB" lopputilan 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:")

Nyt toiselle DriveSpace-muuttujalle 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 vapaan 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"

Kun suoritamme koodin manuaalisesti tai pikanäppäimen F5 kautta, niin sanomaruudussa saamme aseman “C” vapaan tilan.

Joten tietokoneellani Drive C: llä on 216,19 Gt vapaata tilaa.

Esimerkki # 2 - Tarkista onko kansio olemassa vai ei

Käytä alla olevaa koodia tarkistaaksesi, onko tietty kansio olemassa vai ei.

Jos mainittu kansio on käytettävissä, se näyttää meille viestiruudun nimellä "Mainittu kansio on käytettävissä" , jos ei, se näyttää VBA-viestiruudun nimellä "Mainittu kansio ei ole käytettävissä".

Koodi:

 Sub FSO_Example2 () Hämärtää MyFirstFSO tiedostotiedostonaSysteemiobjekti Aseta MyFirstFSO = Uusi FileSystemObject, jos MyFirstFSO.FolderExists ("D: \ Excel Files \ VBA \ VBA Files") sitten MsgBox "Mainittu kansio on käytettävissä" Muu MsgBox "Käytettävissä" Mainittu kansio ei ole 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

Koodin alla tarkistetaan, onko mainittu tiedosto käytettävissä vai ei.

Koodi:

 Sub FSO_Example3 () Hämärtää MyFirstFSO tiedostotiedostonaSysteemiobjekti Aseta MyFirstFSO = Uusi FileSystemObject, jos MyFirstFSO.FileExists ("D: \ Excel Files \ VBA \ VBA Files \ Testing File.xlsm") 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.