Come determinare se un file esiste

Durante la programmazione delle macro, potrebbe essere necessario determinare se un particolare file esiste sul disco. Ad esempio, lo scopo della macro potrebbe essere quello di aprire e leggere da un file di testo. Prima di farlo, ti consigliamo di verificare se il file esiste, per evitare errori.

La seguente funzione VBA può essere utilizzata per verificare l’esistenza di un file. Tutto quello che devi fare è passargli il nome completo del file come una stringa e la macro restituirà True (se il file esiste) o False (in caso contrario).

 

Function FileEsiste(FileName As String) As Boolean
     FileEsiste = (Dir(FileName) <> "")
End Function

 

 

Questa funzione utilizza la funzione Dir, che controlla la presenza di un file in una directory. Se il file esiste, Dir restituisce il percorso completo del file. La condizione True/False della funzione viene derivata confrontando ciò che Dir restituisce con una stringa vuota. Se viene restituito qualcosa, il file esiste perché Dir non restituisce una stringa vuota.

È possibile utilizzare la funzione in modo simile al seguente:

 

If FileEsiste("c:\myfile.txt") Then
     '
     ' Metti qui le tue istruzioni
     '
Else
     MsgBox "Il file non esiste"
End If

 

 

Giovanni, ad esempio, ha una colonna di numeri di fattura in un foglio di lavoro. Ha una directory in rete in cui il personale salva il PDF della fattura e gli assegna un nome utilizzando lo stesso numero di fattura presente nel foglio di lavoro. Ogni numero di fattura nel foglio di lavoro dovrebbe avere un PDF con il nome corrispondente nella directory di rete. Giovanni sta cercando un modo, all’interno di Excel, per controllare e verificare che esista realmente un PDF per ciascun numero di fattura.

Utilizzando la funzione illustrata in precedenza, dovresti scrivere la seguente funzione definita dall’utente:

 

Function FileEsiste1(sPath As String)
    FileEsiste1 = Dir(sPath) <> ""
End Function

 

La routine restituisce semplicemente un valore True o False, a seconda che il file specificato esista o meno. Il valore passato alla funzione deve includere un percorso completo e un nome file. Ad esempio, se la specifica del file (compreso il percorso) fosse nella cella A1, potresti utilizzare quanto segue in una cella:

=FileEsiste1(A1)

 

Potresti, tuttavia, non voler inserire il nome del percorso completo nella cella. In tal caso potresti specificarlo proprio nella formula, in questo modo:

=FileEsiste1("c:\il\tuo\percorso\" & A1 & ".pdf")

 

Naturalmente, potresti invece specificare il percorso nella funzione definita dall’utente:

 

Function FileEsiste2(sFile As String)
    sPath = "c:\il\tuo\percorso\" & sFile & ".pdf"
    FileEsiste2 = Dir(sPath) <> ""
End Function

 

Con tale funzione potresti facilmente creare una formula nel tuo foglio di lavoro che “contrassegnerebbe” eventuali fatture mancanti dalla directory:

=SE(FileEsiste2(A1);"";"Fattura Mancante")

 

 

 

Tags: , , ,

Ti è stato utile?