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:

  1. 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.”

  2. 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.

  1. 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.