VBA FreeFile

Excel VBA FreeFile

FreeFile est une fonction dans VBA qui est disponible uniquement en tant que fonction VBA et non en tant que fonction de feuille de calcul. La fonction VBA FreeFile renvoie le numéro entier unique au fichier qui est ouvert et préserve le numéro du prochain numéro de fichier disponible.

Nous ouvrons généralement des fichiers depuis notre ordinateur pour écrire quelque chose ou en lecture seule, tout en faisant référence à ces fichiers, nous devons nous référer à un nombre entier unique. La fonction VBA FreeFile nous permet de déterminer ce nombre entier unique à attribuer à l'ouverture du fichier pour lire, écrire et ouvrir des fichiers à l'aide de VBA.

Maintenant, regardez la syntaxe de l'instruction OPEN.

OPEN [Adresse de chemin de fichier] Pour [Mode à ouvrir] Comme [Numéro de fichier]

Adresse du chemin du fichier: nous devons mentionner l'adresse du fichier sur notre ordinateur que nous essayons d'ouvrir.

Mode d'ouverture: lors de l' ouverture du fichier, nous devons savoir quel type de modèle nous allons appliquer. Nous pouvons utiliser trois modes ici, «Mode d'entrée», «Mode de sortie» et «Mode d'ajout».

Mode d'entrée pour lire uniquement le fichier.

Mode de sortie pour effacer les données existantes et insérer de nouvelles données.

Mode Ajouter pour ajouter de nouvelles données tout en conservant les données existantes.

Numéro de fichier: Avec cet argument, nous pouvons faire référence au fichier que nous ouvrons. C'est là que la fonction «FreeFile» joue un rôle essentiel et renvoie le nombre entier unique.

Comment utiliser la fonction FreeFile dans Excel VBA?

Vous pouvez télécharger ce modèle Excel VBA FreeFile ici - Modèle Excel VBA FreeFile

Maintenant, regardez le code ci-dessous.

Code:

 Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Open Path For Output As FileNumber Path = "D: \ Articles \ 2019 \ File 2.txt "FileNumber = FreeFile Open Path for Output As FileNumber End Sub 

Maintenant, laissez-moi décoder le code ci-dessus pour que vous le compreniez.

J'ai d'abord déclaré deux variables.

 Dim Path As String, Dim FileNumber As Integer 

Ensuite, j'ai attribué le chemin du fichier avec son nom.

Path = "D: \ Articles \ 2019 \ File 1.txt"

Ensuite, pour une autre variable, j'ai attribué la fonction FREEFILE.

FileNumber = FreeFile

Ensuite, j'ai utilisé l'instruction Open pour ouvrir le fichier texte dans le chemin de fichier mentionné ci-dessus.

 Ouvrir le chemin pour la sortie en tant que FileNumber

Ok, maintenant je vais exécuter le code ligne par ligne en appuyant sur la touche F8 et voir la valeur de la variable «FileNumber».

Il affiche le numéro de fichier comme 1. Ainsi, la fonction de fichier gratuit réserve automatiquement ce numéro au fichier d'ouverture. Lors de l'exécution, aucun autre fichier n'est ouvert.

Maintenant, je vais continuer à exécuter la ligne suivante de code VBA et voir quel est le numéro de fichier si je passe à la ligne suivante.

Maintenant, il dit 2. La fonction FreeFile réserve donc le nombre entier unique 2 au deuxième fichier d'ouverture.

La fonction FreeFile renvoie toujours 1 si nous fermons le fichier Excel

Une chose que nous devons regarder est que la fonction VBA «FreeFile» renvoie toujours 1 si nous fermons le fichier ouvert avant d'ouvrir le deuxième fichier Excel.

Par exemple, regardez le code ci-dessous.

Code:

 Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Ouvrir le chemin pour la sortie en tant que FileNumber Fermer FileNumber Path = "D: \ Articles \ 2019 \ File 2 .txt "FileNumber = FreeFile Open Path For Output As FileNumber Fermer FileNumber End Sub 

Maintenant, je vais à nouveau exécuter le code ligne par ligne en appuyant sur la touche F8.

Il dit 1 comme d'habitude.

Maintenant, je vais passer au niveau suivant.

Même dans la deuxième tentative, il dit 1.

La raison en est que nous avons utilisé l'instruction Close file FreeFile reconnaît le fichier nouvellement ouvert comme le nouveau et renvoie le nombre entier comme 1.