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.