Visual Basic for Applications:
Tekstitiedoston kirjoittaminen
Miten:
VBA tarjoaa useita menetelmiä tiedostoon kirjoittamiseen, mutta yksi suoraviivaisimmista tavoista on käyttää FileSystemObject
-oliota. Tässä on askel askeleelta opas yksinkertaisen tekstitiedoston luomiseen ja datan kirjoittamiseen siihen:
Viittaa Microsoft Scripting Runtimeen: Varmista ensin, että VBA-editorillasi on pääsy
FileSystemObject
-olioon. Mene Työkalut > Viitteet VBA-editorissa ja merkitse “Microsoft Scripting Runtime.”Luo tekstitiedosto: Seuraava VBA-koodinpätkä näyttää, kuinka luoda tekstitiedosto ja kirjoittaa rivi tekstiä siihen.
Sub WriteToFile()
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim textFile As Object
' CreateTextFile parametrit: (Tiedostonimi, Ylikirjoita, Unicode)
Set textFile = fso.CreateTextFile("C:\yourPath\example.txt", True, False)
' Kirjoita rivi tekstiä
textFile.WriteLine "Hello, VBA!"
' Sulje tiedosto
textFile.Close
End Sub
Tämä skripti luo (tai ylikirjoittaa, jos se on jo olemassa) tiedoston nimeltä example.txt
määritetyssä hakemistossa ja kirjoittaa siihen “Hello, VBA!” ennen tiedoston sulkemista muutosten tallentamiseksi.
- Esimerkkituloste:
Suoritettuasi yllä mainitun VBA-skriptin, löydät tiedoston nimeltä example.txt
, jossa on seuraava sisältö:
Hello, VBA!
Syväsukellus:
FileSystemObject
(FSO), osa Microsoft Scripting Runtime -kirjastoa, tarjoaa rikkaan joukon ominaisuuksia ja metodeja tiedosto-operaatioihin, joita menevät perinteisten VBA-tiedostonkäsittelytarjoumien ohi (esim., Open
, Print
#, Write
#). Tiedostojen käsittelyn lisäksi FSO voi myös manipuloida kansioita ja asemia, mikä tekee siitä voimakkaan työkalun tiedostojärjestelmän operaatioihin VBA:ssa.
On kuitenkin huomioitava, että vaikka FSO tarjoaa nykyaikaisemman lähestymistavan tiedosto-operaatioihin VBA:ssa, se voi tuoda lisäkuormitusta yksinkertaisiin tehtäviin verrattuna VBA:n natiiveihin tiedostonkäsittelylauseisiin. Lisäksi, koska FSO on osa ulkoista kirjastoa, siirrettävyys ja yhteensopivuus muiden järjestelmien kanssa (esim., aiemmat Office-versiot, Mac Office) voivat olla huolenaiheita.
Konteksteissa, joissa suorituskyky, yhteensopivuus tai minimaaliset ulkoiset riippuvuudet ovat kriittisiä, ohjelmoijat saattavat harkita VBA:n sisäänrakennettujen tiedostonkäsittelytekniikoiden käyttöä. Kuitenkin monimutkaisemmissa operaatioissa tai työympäristössä, joissa nämä huolenaiheet ovat hallinnassa (kuten kontrolloidussa yritysympäristössä), FileSystemObjectin edut usein voittavat sen haitat.