Visual Basic for Applications:
Lavorare con CSV

Come fare:

Visual Basic for Applications (VBA) semplifica il lavoro con i file CSV attraverso funzioni e metodi integrati che consentono senza problemi la lettura e la scrittura di questi file. Di seguito sono illustrati esempi che mostrano le operazioni di base con i file CSV.

Leggere un file CSV:

Sub LeggiCSV()
    Dim percorsoFile As String
    percorsoFile = "C:\esempio.csv"
    
    Open percorsoFile For Input As #1
    
    Do Until EOF(1)
        Dim linea As String
        Line Input #1, linea
        Dim campiDati() As String
        campiDati = Split(linea, ",")
        
        'Elaborare l'array campiDati come necessario
        Debug.Print Join(campiDati, ";") 'Esempio di output che mostra la conversione da virgole a punto e virgola
    Loop
    
    Close #1
End Sub

Scrivere su un file CSV:

Sub ScriviCSV()
    Dim percorsoFile As String
    percorsoFile = "C:\output.csv"
    Dim datiDaScrivere As String
    datiDaScrivere = "ID,Nome,Età" & vbCrLf & "1,John Doe,30" & vbCrLf & "2,Jane Doe,29"
    
    Open percorsoFile For Output As #1
    Print #1, datiDaScrivere
    Close #1
End Sub

Output di esempio in output.csv:

ID,Nome,Età
1,John Doe,30
2,Jane Doe,29

Approfondimento

Storicamente, i file CSV sono stati un metodo semplice per memorizzare dati tabellari in un formato di testo. La semplicità della sua struttura, in cui ogni linea corrisponde a un record di dati e ogni campo all’interno di un record è separato da una virgola, è sia il punto di forza che il limite del CSV. Il formato non supporta nativamente i tipi di dati, il che significa che tutti i dati sono memorizzati come stringhe, e l’onere di convertire i dati nel tipo corretto ricade sul programmatore.

In Visual Basic for Applications, la gestione dei file CSV si svolge principalmente attraverso operazioni sui file di base, come mostrato negli esempi precedenti. Non esiste un supporto diretto per l’analisi dei CSV come in linguaggi più moderni (ad esempio, il modulo csv di Python), che offre più controllo e comodità nella gestione dei dati CSV.

Per operazioni più complesse o quando si lavora con file CSV di grandi dimensioni, gli sviluppatori potrebbero trovare alternative migliori al di fuori del puro VBA, come sfruttare librerie esterne o utilizzare altri linguaggi di programmazione dotati di capacità di gestione CSV più sofisticate. Tuttavia, per compiti semplici relativi ai file CSV, l’approccio diretto di VBA è spesso sufficiente e facile da implementare, offrendo una soluzione rapida per applicazioni basate su Excel o per l’automazione di altri software Microsoft Office.