Como criar e gravar em um arquivo txt usando o VBA

Eu tenho um arquivo que é adicionado ou modificado manualmente com base nas inputs. Como a maioria dos conteúdos é repetitiva nesse arquivo, apenas os valores hexadecimais estão mudando, quero torná-lo um arquivo gerado pela ferramenta.

Eu quero escrever os códigos c que serão impressos nesse arquivo .txt .

Qual é o comando para criar um arquivo .txt usando o VBA e como eu escrevo nele

Use o FSO para criar o arquivo e gravar nele.

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 

Veja a documentação aqui:

uma maneira fácil sem muita redundância.

  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 a resposta de Ben (já que melhorar não parece ser permitido):

Se você adicionar uma referência ao Microsoft Scripting Runtime e digitar corretamente a variável fso, poderá aproveitar o preenchimento automático (Intellisense) e descobrir os outros ótimos resources do FileSystemObject .

Aqui está um módulo de exemplo 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()