Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) toimii samalla tavalla kuin FileDialogi, jota käytetään pääsemään käsiksi muihin tietokoneen tiedostoihin, joissa työskentelemme. Voimme myös muokata näitä tiedostoja tarkoittaa tiedoston lukemista tai kirjoittamista. FSO:n avulla voimme käyttää tiedostoja, käsitellä niitä, muokata tiedostoja ja kansioita. FSO on tärkeä API-työkalu, jota voimme käyttää VBA:n avulla. Osana VBA-projektia meidän on ehkä päästävä käsiksi muutamiin kansioihin ja tiedostoihin tietokoneessamme, jotta saamme työn tehtyä.

Voimme tehdä monia tehtäviä FSO:n avulla, kuten ”tarkistaa, onko kansio käytettävissä vai ei”, luoda uuden kansion tai tiedostoja, nimetä olemassa olevan kansion tai tiedostojen nimet uudelleen, saada luettelon kaikista kansiossa olevista tiedostoista ja myös alikansioiden nimet. Lopuksi voimme kopioida tiedostoja paikasta toiseen.

Ja vaikka kansioiden ja tiedostojen kanssa työskentelyyn on olemassa muitakin toimintoja, FSO on helpoin tapa työskennellä kansioiden ja tiedostojen kanssa pitämällä VBA-koodin siistinä ja suorana.

FileSystemObjectin avulla pääsemme käsiksi neljään erityyppiseen objektiin. Alla ovat ne.

  1. Drive: Tämän objektin avulla voimme tarkistaa, onko mainittu asema olemassa vai ei. Voimme saada yrityksen polunnimen, käyttötarkoituksen tyypin ja koon.
  2. Folder: Tämän objektin avulla voimme tarkistaa, onko kyseinen kansio olemassa vai ei. Voimme luoda, poistaa, muokata ja 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 käyttämällä tätä VBA-objektia.
  4. Tekstivirta: Tämän objektin avulla voimme luoda tai lukea tekstitiedostoja.

Kaikkiin edellä mainittuihin menetelmiin on oma metodinsa. Vaatimustemme perusteella voimme valita kunkin objektin metodin.

Miten FileSystemObject otetaan käyttöön?

Se ei ole helposti käytettävissä VBA:ssa. Koska tiedostojen ja kansioiden käyttäminen on excelin ulkoinen tehtävä, meidän on otettava FileSystemObject käyttöön. Kannustamista varten noudata alla olevia vaiheita.

Vaihe #1: Siirry kohtaan Työkalut>Referenssit.

Vaihe #2 – Valitse ’Microsoft Scripting Runtime’-vaihtoehto

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

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

Create an Instance of FileSystemObject

Kun ’Microsoft Scripting Runtime’-vaihtoehto on otettu käyttöön Objektit-kirjastosta, meidän on luotava tiedostojärjestelmäobjekti (File System Object, FSO) koodaamalla.

Suosittu kurssi tässä kategoriassa

VBA-koulutus (3 kurssia, 12+ projektia)
4.6 (247 arviota) 3 kurssia | 12 käytännön projektia | 43+ tuntia | Täysi elinikäinen käyttöoikeus | Valmistumistodistus

Luoaksesi instanssin, ilmoita ensin muuttuja FileSystemObject.

Kuten näemme, FileSystemObject näkyy VBA:n IntelliSense-luettelossa. Tämä ei olisi ollut käytettävissä ennen kuin otimme käyttöön ’Microsoft Scripting Runtimen’.

Sen vuoksi, että FSO on objekti, meidän on asetettava se luomaan uusi instanssi.

Nyt pääsemme käsiksi kaikkiin FSO:n (FileSystemObject) asetuksiin.

Esimerkkejä VBA FileSystemObjectin käytöstä

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

Esimerkki nro 1 – Aseman kokonaistilan etsiminen

Alhaalla olevasta koodista saat aseman kokonaistilan.

Koodi:

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

Koodin purkaminen.

Luotiin ensin FSO:n instanssi.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

Seuraavaksi olemme julistaneet kaksi muuttujaa.

Dim DriveName As DriveDim DriveSpace As Double

Koska DriveName on Object-muuttuja, meidän on asetettava se FSO-menetelmän yhteen FSO-olioon. Koska tarvitsemme aseman ominaisuuden, olemme käyttäneet Get Drive -vaihtoehtoa ja maininneet aseman nimen.

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

Toiselle muuttujalle, DriveSpace, määrittelemme sen aseman vapaan tilan menetelmän, johon olemme pääsemässä käsiksi.

DriveSpace = DriveName.FreeSpace

Yllä olevalla yhtälöllä saamme nyt aseman ”C” vapaan tilan. Joten näyttääksemme tuloksen GB:nä olemme jakaneet vapaan tilan luvulla 1073741824

DriveSpace = DriveSpace / 1073741824

Seuraavaksi pyöristämme luvun.

DriveSpace = Round(DriveSpace, 2)

Viimeiseksi näytämme tuloksen viestiruudussa.

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

Kun suoritamme koodin manuaalisesti tai pikanäppäimellä F5, niin viestiruudussa saamme aseman ”C” vapaan tilan.”

Tietokoneessani asemalla C on siis 216,19 Gt vapaata muistitilaa.

Esimerkki #2 – Tarkista, onko kansio olemassa vai ei

Tarkistaaksesi, onko tietty kansio olemassa vai ei, käytä alla olevaa koodia.

Jos mainittu kansio on käytettävissä, se näyttää meille viestiruudussa ”Mainittu kansio on käytettävissä”. Jos ei, se näyttää VBA-viestiruudun muodossa ”The Mentioned Folder is Not Available.”

Koodi:

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

Suorita tämä koodi excelin pikavalintanäppäimellä F5 tai manuaalisesti ja katso tulos.

Esimerkki #3 – Tarkista, onko tiedosto olemassa vai ei

Alla olevalla koodilla tarkistetaan, onko mainittu tiedosto saatavilla vai ei.

Koodi:

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

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

Suositeltavat artikkelit

Tässä on ollut opas VBA:n tiedostojärjestelmäkohteeseen. Tässä opitaan, miten FileSystemObjectin (FSO) avulla VBA:ssa päästään käsiksi tiedostoihin ja kansioihin tietokoneelta sekä käytännön esimerkkejä ja ladattava excel-malli. Alta löydät joitakin hyödyllisiä Excel VBA -artikkeleita –

  • ME-avainsana VBA:ssa
  • StrComp-funktio VBA:ssa
  • StrConv Funktio VBA:ssa
  • VBA IIF
0 osaketta

VBA-koulutus (3 kurssia, 12+ projektia)

  • 3 kurssia
  • 12 käytännön projektia
  • 43+ tuntia
  • Täysi elinikäinen käyttöoikeus
  • Valmistumistodistus

LISÄTIETOJA >>

Jätä vastaus

Sähköpostiosoitettasi ei julkaista.