Excel VBA FreeFile

Con quale frequenza essendo un utente Excel, apri un file e lavori sullo stesso? Molto frequentemente, vero? È di nuovo possibile automatizzare le attività di apertura del file in Excel utilizzando un potente strumento VBA che consente di scrivere macro e alla fine automatizza tutte le attività a partire dall'apertura di un file da una determinata posizione per utilizzarlo, salvarlo e chiuderlo sullo stesso sentiero. Mentre si parla di automatizzare il processo di apertura e chiusura dei file tramite VBA, diventa molto importante indicizzare il file in modo che il sistema possa identificare quale file utilizzare al momento dell'esecuzione. All'interno di VBA abbiamo una funzione denominata FreeFile che serve a questo scopo.

Cos'è la funzione VBA FreeFile?

VBA FreeFile è una funzione classificata nella funzione VBA che consente al sistema di riservare un numero per l'apertura del file successivo in Output input file VBA per un'esperienza di codifica fluida e la riduzione di bug inutili nel codice. Quando apri un file tramite il file IO VBA (input / output), diventa assolutamente obbligatorio assegnare un numero univoco a quel file perché potresti avere più file nella posizione che stai per utilizzare per leggere, scrivere e aprire lo scopo attraverso il tuo codice. Come fa il sistema a sapere quale file tra tutti quelli che vuoi aprire? La funzione VBA FreeFile identifica il numero univoco assegnato al file e lo rende disponibile per l'apertura, la lettura o la scrittura in VBA.

La sintassi per la funzione FreeFile è la seguente:

Questa funzione accetta solo un argomento RangeNumber che ha i valori standard come zero (0) e uno (1). Se si specifica zero, il numero di file verrà assegnato in modo graduale attraverso l'intervallo di numeri da 1 a 255 per ciascun file aperto. Se ne specifichi uno, il numero di file verrà assegnato in modo graduale nell'intervallo da 256 a 511 per ciascun file aperto. Se non viene specificato alcun RangeNumber, per impostazione predefinita verrà considerato zero.

Come utilizzare la funzione FreeFile in Excel VBA?

Di seguito sono riportati i diversi esempi per utilizzare la funzione FreeFile in Excel VBA.

Puoi scaricare questo modello VBA FreeFile Excel qui - Modello VBA FreeFile Excel

VBA FreeFile - Esempio n. 1

Seguire i passaggi seguenti per utilizzare la funzione FreeFile in Excel VBA.

Passaggio 1: Apri un nuovo Visual Basic Editor (VBE) facendo clic sul pulsante Visual Basic nella scheda Sviluppatore presente nel tuo file Excel o premendo contemporaneamente il tasto Alt + F11 .

Passaggio 2: inserire un nuovo modulo nel VBE. Fai clic sul pulsante Inserisci . Seleziona Modulo dall'elenco di opzioni disponibili in Inserisci.

Passaggio 3: definire una nuova procedura secondaria che può contenere la macro.

Codice:

 Esempio secondario_1 () Fine sottotitolo 

Passaggio 4: definire due nuove variabili, file_1 e file_2 come numero intero. Queste due variabili conterranno i numeri che assegniamo a ciascun file che apriamo nella macro.

Codice:

 Esempio secondario_1 () Dim file_1 Come intero Dim file_2 Come intero Fine Sottotitolo 

Passaggio 5: utilizzare l'operatore di assegnazione per assegnare il valore intero 1 alla variabile file_1 con l'aiuto di VBA FreeFile.

Codice:

 Esempio secondario_1 () Dim file_1 come intero Dim file_2 come intero file_1 = FreeFile End Sub 

Passaggio 6: ora utilizza l'istruzione Open che può essere utilizzata per aprire un file in VBA.

Codice:

 Esempio secondario_1 () Dim file_1 Come intero Dim file_2 Come intero file_1 = FreeFile Apri "D: \ Excel Content Writing \ TextFile_1.txt" Per output come file_1 End Sub 

Qui, abbiamo specificato il percorso in cui si trova il file. L'istruzione For offre opzioni come come si desidera aprire il file (ad es. Come output) e l'istruzione As specifica il numero di file che abbiamo specificato usando l'istruzione FreeFile.

Passaggio 7: seguire i passaggi 5 e 6 per assegnare un nuovo numero al secondo file tramite la variabile file_2 e aprirlo .

Codice:

 Esempio secondario_1 () Dim file_1 Come intero Dim file_2 Come intero file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Per output come file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" Per Output Come file_2 End Sub 

Passo 8: Ora, vorremmo vedere i numeri che in realtà sono assegnati a entrambi i file di testo. È possibile eseguire ciascuna riga una per una con l'aiuto del tasto F8. Tuttavia, l'output non sarà visibile per te. Né nel file Excel né nella finestra immediata. Aggiungere la seguente istruzione MsgBox che visualizza una finestra di messaggio con i numeri per ciascun file.

Codice:

 Esempio secondario_1 () Dim file_1 Come intero Dim file_2 Come intero file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Per output come file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" Per Output Come file_2 MsgBox "Il valore per file_1 è:" & file_1 & Chr (13) & "Il valore per file_2 è:" & file_2 End Sub 

In questa riga di codice, la prima riga della finestra di messaggio conterrà il testo "valore per file_1 è:" e il valore numerico assegnato utilizzando la funzione FreeFile. Chr (13) consente di visualizzare la riga successiva. La riga successiva della finestra di messaggio mostrerà "Il valore per file_2 è:" e il numero assegnato al secondo file.

Passaggio 9: eseguire questo codice premendo il pulsante Esegui o premendo il tasto F5.

Ecco come la funzione FreeFile ti consente di assegnare il numero al file che stai per aprire, leggere, chiudere tramite VBA.

VBA FreeFile - Esempio n. 2

Se chiudiamo il file che apriamo ogni volta, il nuovo file che apriremo avrà sempre un numero seriale come 1 ogni volta che viene aperto. Seguire i passaggi seguenti per vederlo.

Passaggio 1: definire una nuova procedura secondaria che può contenere la macro.

Codice:

 Sub Esempio_2 () End Sub 

Passaggio 2: definire due variabili file_1 e file_2 come numero intero all'interno della sotto-procedura appena definita.

Codice:

 Sub Esempio_2 () Dim file_1 Come intero Dim file_2 Come intero Fine Sottotitolo 

Passo 3: Ora, usa FreeFile per assegnare un numero al file dato e l'istruzione Open per aprire quel file attraverso la posizione in cui lo abbiamo.

Codice:

 Sub Esempio_2 () Dim file_1 Come intero Dim file_2 Come intero file_1 = FreeFile Apri "D: \ Excel Content Writing \ TextFile_1.txt" Per output come file_1 End Sub 

Passaggio 4: utilizzare un'istruzione MsgBox per aggiungere una finestra di messaggio per il numero dei primi file.

Codice:

 Sub Esempio_2 () Dim file_1 Come intero Dim file_2 Come intero file_1 = FreeFile Apri "D: \ Excel Content Writing \ TextFile_1.txt" Per output come file_1 MsgBox "Il valore per file_1 è:" & file_1 End Sub 

Passaggio 5: utilizzare un'istruzione Chiudi per chiudere il primo file aperto tramite VBA.

Codice:

 Sub Esempio_2 () Dim file_1 Come intero Dim file_2 Come intero file_1 = FreeFile Apri "D: \ Excel Content Writing \ TextFile_1.txt" Per output come file_1 MsgBox "Il valore per file_1 è:" & file_1 Chiudi file_1 Fine sub 

Passaggio 6: Ora, seguire la stessa procedura del passaggio 5, passaggio 6, passaggio 7, ma per il secondo file. Include l'assegnazione del valore alla variabile file_2 mediante la funzione FreeFile e l'apertura con l'aiuto dell'istruzione Open, utilizzando MsgBox per visualizzare il numero del file per il secondo file e infine chiudere il secondo file.

Codice:

 Sub Esempio_2 () Dim file_1 Come intero Dim file_2 Come intero file_1 = FreeFile Apri "D: \ Excel Content Writing \ TextFile_1.txt" Per output come file_1 MsgBox "Il valore per file_1 è:" & file_1 Chiudi file_1 file_2 = FreeFile Apri "D : \ Excel Content Writing \ TextFile_2.txt "Per output come file_2 MsgBox" Il valore per file_2 è: "& file_2 Chiudi file_2 End Sub 

Passaggio 7: eseguire questo codice premendo il pulsante Esegui o F5.

La prima finestra di messaggio rappresenta il valore di file_1 che sembra essere 1. La seconda finestra di messaggio rappresenta il valore di file_2 che sembra essere anche 1. Questa modifica è presente perché abbiamo usato l'istruzione close per chiudere i file uno per uno. A causa di ciò, durante l'avvio di un nuovo file, ogni volta che il vecchio file e il suo numero vengono eliminati dalla memoria di sistema e il file successivo verrà considerato come un nuovo file con numeri che iniziano da 1.

Cose da ricordare

  • FreeFile restituisce un numero intero univoco per ogni file che apriamo, leggiamo, chiudiamo tramite IO file VBA.
  • FreeFile ha due valori per l'argomento RangeNumber (che è facoltativo). Lo zero di solito assegna il numero compreso tra 1 e 255 e uno assegna i numeri da 256 a 511.

Articoli consigliati

Questa è una guida a VBA FreeFile. Qui discutiamo di come la funzione FreeFile ti consente di assegnare il numero al file che stai per aprire, leggere, chiudere tramite Excel VBA insieme ad esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Il file di controllo VBA esiste | Modello di Excel
  2. Sottoscrizione VBA fuori intervallo (esempi)
  3. Funzione GetObject in Excel VBA
  4. Come utilizzare il formato numerico in VBA?
  5. VBA Environ

Categoria: