VBA - Écrire dans un fichier texte

Table des matières

Ce didacticiel montrera comment écrire dans des fichiers texte à l'aide de VBA.

Écrire dans un fichier texte

Les codes ci-dessous utilisent le FileSystemObject. Pour l'utiliser, vous devrez définir une référence à la bibliothèque d'exécution du script VB.

Écrire dans un nouveau fichier texte

Avec le CréerFichierTexte méthode de FileSystemObject vous pouvez créer puis ajouter du contenu à un fichier texte :

123456789 Sous-FSOCreateAndWriteToTextFile()Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")Définir FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")FileToCreate.Write "ligne de test"FichierPourCréer.FermerFin du sous-marin

Veuillez noter que le contenu ne sera pas entouré de guillemets.

Écrire dans un fichier texte existant

Pour écrire dans un fichier texte existant, vous pouvez utiliser le OuvrirFichierTexte méthode de FileSystemObject avec Pour écrire mode.

123456789 Sous-FSOWriteToTextFile()Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")Définir FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForWriting)FileToWrite.Write "ligne de test"FichierVersEcrire.FermerFin du sous-marin

Veuillez noter que vous n'avez pas nécessairement besoin de FileSystemObject pour écrire dans un fichier texte existant. L'exemple ci-dessus est illustré d'une autre manière dans ce code ci-dessous (voir un autre exemple dans la section Plage de données vers fichier texte) :

123456789 Sous WriteToTextFile()Dim FileName As StringFileName = "C:\Test\TestFile.txt"Ouvrir le nom de fichier pour la sortie en tant que #1Imprimer #1, "ligne de test"Fermer #1Fin du sous-marin

Veuillez noter que l'utilisation de la commande Write au lieu de Print entraînera le contenu ajouté entre guillemets. Avoir les deux commandes dans votre macro

12 Écrivez #1, "tester la ligne #1"Imprimer #1, "tester la ligne #2"

donnera un fichier texte comme celui-ci :

Programmation VBA | Le générateur de code fonctionne pour vous !

Ajouter au fichier texte

En changeant le mode dans le code ci-dessus en ForAppending, une ligne peut être ajoutée à la fin du fichier texte :

1 Définir FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)

Méthode WriteLine

Cette méthode ajoute la chaîne d'entrée en tant que ligne distincte au contenu existant.

Méthode d'écriture

La chaîne d'entrée est ajoutée sur la même ligne que le contenu existant.

Fatigué de rechercher des exemples de code VBA ? Essayez AutoMacro !

Écrire des lignes vierges

Cette méthode prend le nombre de lignes vides à écrire dans le fichier texte en tant que paramètre.

Ce code ci-dessous illustre la différence entre les différentes méthodes d'écriture :

12345678910111213 Sous WriteMethods()Dim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")Définir FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForAppending)FileToWrite.Write « ligne de test 1 »FileToWrite.Write "ligne de test #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "ligne de test n°3"FileToWrite.WriteLine "ligne de test n°4"FichierVersEcrire.FermerFin du sous-marin

Et le résultat :

Programmation VBA | Le générateur de code fonctionne pour vous !

Plage de données dans un fichier texte

Si vous souhaitez exporter une plage de données de votre feuille de calcul dans un fichier texte, vous pouvez utiliser ce code :

12345678910111213141516171819 Sub OutputToTextFile()Dim FileName As String, LineText As StringDim MyRange As Range, i, jFileName = "C:\Test\TestFile.txt" 'vous pouvez spécifier ici le nom du fichier texte que vous souhaitez créerOuvrir le nom de fichier pour la sortie en tant que #1Set MyRange = Range("data") 'il suppose que vous avez une plage de données nommée "data" sur votre feuille de calculPour i = 1 à MyRange.Rows.CountPour j = 1 à MyRange.Columns.CountLineText = IIf(j = 1, "", LineText & ",") & MyRange.Cells(i, j) 'le fichier texte créé aura un séparateur virgulej suivantPrint #1, LineText 'en utilisant la commande Write au lieu de Print entraînera l'apparition de vos données entre guillemets dans le fichier texte de sortieEnsuite jeFermer #1Fin du sous-marin

Tableau vers fichier texte

Vous pouvez également enregistrer votre tableau de données dans un fichier texte comme celui-ci :

12345678910111213141516 Sub SaveArrayToTextFile()Dim MyArray comme varianteDim FSO en tant que nouvel objet FileSystemDéfinir FSO = CreateObject("Scripting.FileSystemObject")MonTableau = Tableau(Tableau("00", "01"), Tableau("10", "11"), Tableau("20", "21"))Définir FileToCreate = FSO.CreateTextFile("C:\Test\TestFile.txt")Pour n = 0 à UBound(MyArray)FileToCreate.WriteLine MonTableau(n)(0) & "," & MonTableau(n)(1)ProchainFichierPourCréer.FermerFin du sous-marin

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave