J'ai un fichier qui est ajouté ou modifié manuellement en fonction des entrées. Étant donné que la plupart des contenus sont répétitifs dans ce fichier, seules les valeurs hexadécimales changent. Je souhaite en faire un fichier généré par un outil.
Je veux écrire les codes c qui vont être imprimés dans ce fichier .txt.
Quelle est la commande pour créer un fichier . Txt en utilisant VBA, et comment puis-je y écrire
Utilisez FSO pour créer le fichier et y écrire.
Dim fso as Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oFile as Object
Set oFile = FSO.CreateTextFile(strPath)
oFile.WriteLine "test"
oFile.Close
Set fso = Nothing
Set oFile = Nothing
Voir la documentation ici:
_Open ThisWorkbook.Path & "\template.txt" For Output As #1
Print #1, strContent
Close #1
_
Open
Print #
_] )Close
Print
StatementWorkbook.Path
_] )un moyen facile avec beaucoup de redondance.
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim Fileout As Object
Set Fileout = fso.CreateTextFile("C:\your_path\vba.txt", True, True)
Fileout.Write "your string goes here"
Fileout.Close
Pour élaborer réponse de Ben :
Si vous ajoutez une référence à Microsoft Scripting Runtime
et saisissez correctement la variable fso , vous pouvez tirer parti de la complétude automatique (Intellisense) et découvrez les autres fonctionnalités de FileSystemObject
.
Voici un exemple de module complet:
Option Explicit
' Go to Tools -> References... and check "Microsoft Scripting Runtime" to be able to use
' the FileSystemObject which has many useful features for handling files and folders
Public Sub SaveTextToFile()
Dim filePath As String
filePath = "C:\temp\MyTestFile.txt"
' The advantage of correctly typing fso as FileSystemObject is to make autocompletion
' (Intellisense) work, which helps you avoid typos and lets you discover other useful
' methods of the FileSystemObject
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim fileStream As TextStream
' Here the actual file is created and opened for write access
Set fileStream = fso.CreateTextFile(filePath)
' Write something to the file
fileStream.WriteLine "something"
' Close it, so it is not locked anymore
fileStream.Close
' Here is another great method of the FileSystemObject that checks if a file exists
If fso.FileExists(filePath) Then
MsgBox "Yay! The file was created! :D"
End If
' Explicitly setting objects to Nothing should not be necessary in most cases, but if
' you're writing macros for Microsoft Access, you may want to uncomment the following
' two lines (see https://stackoverflow.com/a/517202/2822719 for details):
'Set fileStream = Nothing
'Set fso = Nothing
End Sub