Hoe maak je een txt-bestand aan en schrijf je ernaar met VBA

Ik heb een bestand dat handmatig wordt toegevoegd of gewijzigd op basis van de invoer. Aangezien de meeste inhoud in dat bestand repetitief is, veranderen alleen de hex-waarden, ik wil er een door een tool gegenereerd bestand van maken.

Ik wil de c-codes die worden afgedrukt in dat .txt-bestand schrijven.

Wat is de opdracht om een .txt-bestand te maken met VBA en hoe schrijf ik ernaar


Antwoord 1, autoriteit 100%

Om uit te weiden over Bens antwoord:

Als u een verwijzing naar Microsoft Scripting Runtimetoevoegt en de variabele fsocorrect typt, kunt u profiteren van automatisch aanvullen(Intellisense) en ontdekken de andere geweldige functies van FileSystemObject.

Hier is een complete voorbeeldmodule:

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

Antwoord 2, autoriteit 94%

Gebruik FSO om het bestand te maken en ernaar te schrijven.

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    

Bekijk hier de documentatie:


Antwoord 3, autoriteit 90%

Open ThisWorkbook.Path & "\template.txt" For Output As #1
Print #1, strContent
Close #1

Meer informatie:


Antwoord 4, autoriteit 65%

een gemakkelijke manier zonder veel redundantie.

   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

Antwoord 5

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()

Other episodes