Visual Basic for Applications:
Skriva en textfil

Hur man gör:

VBA erbjuder flera metoder för att skriva till en fil, men ett av de enklaste sätten är att använda FileSystemObject. Här är en steg-för-steg-guide för att skapa en enkel textfil och skriva data till den:

  1. Referera till Microsoft Scripting Runtime: Först, se till att din VBA-redigerare har tillgång till FileSystemObject. Gå till Verktyg > Referenser i VBA-redigeraren och markera “Microsoft Scripting Runtime.”

  2. Skapa en textfil: Följande VBA-kodsnutt visar hur man skapar en textfil och skriver en rad text i den.

Sub WriteToFile()
    Dim fso As FileSystemObject
    Set fso = New FileSystemObject
    
    Dim textFile As Object
    ' CreateTextFile parametrar: (Filnamn, Skriv över, Unicode)
    Set textFile = fso.CreateTextFile("C:\yourPath\example.txt", True, False)
    
    ' Skriv en rad text
    textFile.WriteLine "Hej, VBA!"
    
    ' Stäng filen
    textFile.Close
End Sub

Detta skript skapar (eller skriver över om den redan finns) en fil med namnet example.txt i den angivna katalogen och skriver “Hej, VBA!” i den innan filen stängs för att spara ändringarna.

  1. Exempelutdata:

Efter att ha kört ovanstående VBA-skript kommer du att hitta en fil med namnet example.txt med följande innehåll:

Hej, VBA!

Fördjupning:

FileSystemObject (FSO), en del av Microsoft Scripting Runtime-biblioteket, erbjuder en rik uppsättning egenskaper och metoder för filoperationer, vilket går utöver vad traditionell VBA-filhantering erbjuder (t.ex. Open, Print #, Write #). Förutom hantering av filer kan FSO också manipulera mappar och enheter, vilket gör det till ett kraftfullt verktyg för filsystemoperationer inom VBA.

Det är dock värt att notera att även om FSO presenterar ett modernare tillvägagångssätt för filoperationer i VBA, kan det introducera overhead för enkla uppgifter jämfört med VBAs inbyggda filehanteringsanvisningar. Dessutom, eftersom FSO är en del av ett externt bibliotek, kan portabilitet och kompatibilitet med andra system (t.ex. tidigare versioner av Office, Mac Office) vara oroande.

I sammanhang där prestanda, kompatibilitet eller minimikrav på externa beroenden är kritiska kan programmerare överväga att använda VBAs inbyggda tekniker för filhantering. Dock, för mer komplexa operationer eller när man arbetar i en miljö där dessa bekymmer är mindre (som i en kontrollerad företagsinställning), uppväger fördelarna med FileSystemObject ofta dess nackdelar.