VBA - Visual Basic for Applications

⌘K
  1. Home
  2. VBA – Visual Basic ...
  3. Snippets di codice
  4. Salva file di testo

Salva file di testo

Memorizzare dati su un file di testo

Tempo di lettura: 2 minuti

Molto spesso capita di dovere memorizzare delle informazioni su un file esterno al foglio di Excel magari semplicemente scrivendo un file di testo contenente le informazioni.

Un file di testo ha solitamente una estensione di tipo .TXT e verrà riconosciuto dal sistema come tale.

E’ utile notare che anche i file CSV, XML, JSON e HTML sono a tutti gli effetti dei file di testo ma hanno una struttura ben definita quindi dobbiamo tenerne conto se vogliamo scrivere questo tipo di file.

Sub Salva_File_di_Testo(ByVal NomeFile As String, ByVal Testo As String)
    Dim FN As Integer
    
    FN = FreeFile
    Open NomeFile For Output As #FN
    Print #FN, Testo
    Close #FN
End Sub

L’istruzione FreeFile viene chiamata per trovare il primo numero (di tipo integer) del canale di scrittura libero. Successivamente verrà utilizzato questo numero per aprire il canale (Open), scrivere (Print) e per chiudere il canale (Close).

Per utilizzare la routine basterà richiamarla (utilizzando il suo nome) passandogli come parametri il nome del file da scrivere sul disco con tutto il suo percorso completo e il testo da scrivere contenuto all’interno di una stringa.

Quindi, per fare un esempio, se vogliamo scrivere il testo “ABC” all’interno del file NomeDelFile.txt dentro il percorso D:\ dovremo scrivere il seguente codice

Salva_File_di_Testo ("D:\NomeDelFile.txt" , "ABC")

Se ad esempio abbiamo una stringa chiamata CSV contenente delle informazioni organizzate e strutturate secondo il protocollo CSV e vogliamo memorizzarlo su di un file non dovremo fare altro che utilizzare la routine Salva_File_di_Testo indicano il nome del file e la stringa da scrivere come nell’esempio successivo

Sub Pulsante1_Click()
    Dim CSV As String
    
    CSV = "100;30;ABC;4,21;"
    CSV = CSV & vbNewLine
    CSV = CSV & "210;44;XYZ;5,04;"
    
    Call Salva_File_di_Testo("C:\Users\pippo\Desktop\TEST.CSV", CSV)
End Sub

Questa semplice routine, inserita all’interno di un evento click di un pulsante, dichiara una variabile CSV alla quale poi aggiunge due righe formattate secondo lo standard CSV europeo.

vbNewLine serve per poter mandare a capo la stringa altrimenti verrebbe scritta tutta in modo consecutivo.

L’ultima riga richiama la funzione Salva_File_di_Testo passandogli il nome del file, l’estensione e il percorso che in questo caso ( a titolo di esempio) è nel desktop dell’utente. Ovviamente questo percorso e il nome andranno cambiati con quelli che volete.

ATTENZIONE: Per poter scrivere su un percorso dovete avere i diritti (come utente) per farlo. Se ad esempio provate a scrivere sul percorso principale del disco principale (C:\) riceverete un errore perché il sistema, per motivi si sicurezza, vi impedirà di scrivere in questo particolare punto.

Per poter scrivere (e gestire) correttamente un file in formato CSV, XML, JSON e HTML, dovete conoscerne la struttura e rispettare una serie di regole.

Se volete approfondire questo potente linguaggio di programmazione potete leggere i nostri libri o frequentare i nostri corsi su questi temi.