Cómo crear y escribir en un archivo txt usando VBA

Tengo un archivo que se agrega o modifica manualmente según las entradas. Como la mayoría de los contenidos son repetitivos en ese archivo, solo cambian los valores hexadecimales, quiero convertirlo en un archivo generado por la herramienta.

Quiero escribir los códigos c que se van a imprimir en ese archivo .txt .

¿Cuál es el comando para crear un archivo .txt usando VBA, y cómo lo escribo?

Use FSO para crear el archivo y escribir en él.

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 

Vea la documentación aquí:

una manera fácil sin mucha redundancia.

  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 
 Open ThisWorkbook.Path & "\template.txt" For Output As #1 Print #1, strContent Close #1 

Para elaborar sobre la respuesta de Ben (ya que mejorar no parece estar permitido):

Si agrega una referencia a Microsoft Scripting Runtime y escribe correctamente la variable fso , puede aprovechar el autocompletado (Intellisense) y descubrir las otras excelentes funciones de FileSystemObject .

Aquí hay un módulo de ejemplo completo:

 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 "test" ' 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 
 Dim SaveVar As Object Sub Main() Console.WriteLine("Enter Text") Console.WriteLine("") SaveVar = Console.ReadLine My.Computer.FileSystem.WriteAllText("N:\A-Level Computing\2017!\PPE\SaveFile\SaveData.txt", "Text: " & SaveVar & ", ", True) Console.WriteLine("") Console.WriteLine("File Saved") Console.WriteLine("") Console.WriteLine(My.Computer.FileSystem.ReadAllText("N:\A-Level Computing\2017!\PPE\SaveFile\SaveData.txt")) Console.ReadLine() End Sub()