Visual Basic for Applications:
Arbeide med CSV

Hvordan:

Visual Basic for Applications (VBA) forenkler arbeidet med CSV-filer gjennom innebygde funksjoner og metoder som sømløst tillater lesing fra og skriving til disse filene. Nedenfor er eksempler som illustrerer grunnleggende operasjoner med CSV-filer.

Lese en CSV-fil:

Sub ReadCSV()
    Dim filePath As String
    filePath = "C:\example.csv"
    
    Open filePath For Input As #1
    
    Do Until EOF(1)
        Dim line As String
        Line Input #1, line
        Dim dataFields() As String
        dataFields = Split(line, ",")
        
        'Behandle dataFields-arrayet etter behov
        Debug.Print Join(dataFields, ";") 'Eksempel på output som viser konvertering fra komma til semikolon
    Loop
    
    Close #1
End Sub

Skrive til en CSV-fil:

Sub WriteCSV()
    Dim filePath As String
    filePath = "C:\output.csv"
    Dim dataToWrite As String
    dataToWrite = "ID,Navn,Alder" & vbCrLf & "1,John Doe,30" & vbCrLf & "2,Jane Doe,29"
    
    Open filePath For Output As #1
    Print #1, dataToWrite
    Close #1
End Sub

Eksempel på output i output.csv:

ID,Navn,Alder
1,John Doe,30
2,Jane Doe,29

Dypdykk

Historisk sett har CSV-filer vært en enkel metode for å lagre tabelldata i tekstformat. Enkelheten i strukturen, hvor hver linje tilsvarer én datarad og hvert felt innenfor en rad er adskilt med et komma, er både CSVs styrke og begrensning. Formatet støtter ikke datatyper på en nativ måte, noe som betyr at all data lagres som tekststrenger, og byrden av å konvertere data til korrekt type faller på programmereren.

I Visual Basic for Applications håndteres arbeid med CSV-filer stort sett gjennom grunnleggende filoperasjoner, som vist i de tidligere eksemplene. Det er ingen direkte støtte for CSV-tolking som i mer moderne språk (for eksempel Pythons csv-modul), noe som gir mer kontroll og bekvemmelighet når man håndterer CSV-data.

For mer komplekse operasjoner eller ved arbeid med store CSV-filer, kan programmerere finne bedre alternativer utenfor ren VBA, som å benytte eksterne biblioteker eller bruke andre programmeringsspråk utstyrt med mer sofistikerte CSV-håndteringsevner. Imidlertid, for enkle oppgaver relatert til CSV-filer, er VBAs rett frem tilnærming ofte tilstrekkelig og enkel å implementere, og tilbyr en rask løsning for Excel-baserte applikasjoner eller annen automatisering av Microsoft Office-programvare.