Exempel på ASCII-tecken.
Exempel på ASCII-tecken.

Textfiler är grundläggande dokument som kan redigeras med enkla program som till exempel Notepad. Dessa filer, ibland kallade ASCII-filer, har en lång historia och används fortfarande flitigt inom databehandling. Trots sitt enkla format är textfiler ovärderliga för många tillämpningar, och de används ofta som primitiva databaser för att lagra och hantera information.

Varför textfiler är viktiga

Textfiler är inte begränsade till filändelsen .txt. De kan ha vilken filändelse som helst, och det som räknas är innehållet. En särskilt användbar typ av textfil är CSV-filer (Comma Separated Values), som gör det möjligt att organisera data i kolumner på ett effektivt sätt. Det görs genom att särskilda tecken, som kommatecken eller semikolon, fungerar som kolumnavgränsare. Med CSV-formatet kan Excel enkelt importera och exportera data, vilket gör det till en värdefull resurs för både företag och privatpersoner.

Koppla ihop Excel med textfiler via VBA

I den här artikeln tittar vi närmare på hur du kan koppla ihop Excel och textfiler med hjälp av VBA-kod. Vi går igenom ett antal kommandon som gör det möjligt att öppna, läsa och skriva till textfiler direkt från Excel.

Öppna textfiler med OPEN-kommandot

Med kommandot OPEN kan vi komma åt textfiler direkt från Excel VBA. Det finns tre grundläggande alternativ för OPEN-kommandot: Output, Append och Input. Nedan går vi igenom varje alternativ:

OUTPUT

Denna variant öppnar en angiven fil, eller skapar den om den inte finns. Om filen redan finns raderas allt tidigare innehåll.

strTextFil = "C:mintextfil.txt"
f = FreeFile
Open strTextFil For Output As #f

APPEND

Med Append öppnas en fil utan att innehållet raderas. Om filen inte finns skapas den.

strTextFil = "C:mintextfil.txt"
f = FreeFile
Open strTextFil For Append As #f

INPUT

Input-kommandot används för att läsa från en textfil utan att göra några ändringar.

strTextFil = "C:mintextfil.txt"
f = FreeFile
Open strTextFil For Input As #f

Skriva till en textfil med PRINT och WRITE

Det finns två huvudsakliga metoder för att skriva till en textfil: PRINT och WRITE.

PRINT

PRINT-kommandot skriver data direkt i textfilen utan att ta hänsyn till kolumnuppdelning.

Print #f, "Dagens datum: " & Date

WRITE

WRITE-kommandot är mycket användbart för att skapa kolumnuppdelning, vilket gör det idealiskt för att skapa CSV-filer.

Write #f, "Dagens datum: " & Date; Application.UserName

Praktiska exempel

Exempel 1: Skriva till en fil via OUTPUT

Här är ett exempel på hur du kan skapa och skriva till en textfil:

Sub Skapa_Och_Skriva_Till_Textfil()
    Dim strFilnamn As String
    Dim strSokVag As String
    Dim strTextfil As String
    Dim f As Integer

    strSokVag = "C:"
    strFilnamn = "min_textfil.txt"
    strTextfil = strSokVag & strFilnamn

    f = FreeFile
    Open strTextfil For Output As #f

    Print #f, "Dagens datum: " & Date
    Print #f, "Användare: "; Application.UserName

    Close f
End Sub

Exempel 2: Läsa in data från en textfil till Excel via INPUT

Här är ett exempel på hur du kan importera data från en ASCII-fil till ditt Excel-kalkylblad:

Sub Lasa_In_Asciifil_Till_Excel()
    Dim strFilnamn As String
    Dim strSokVag As String
    Dim strTextfil As String
    Dim strText As String
    Dim f As Integer
    Dim i As Integer

    strSokVag = "C:"
    strFilnamn = "min_textfil.txt"
    strTextfil = strSokVag & strFilnamn

    f = FreeFile
    Open strTextfil For Input As #f

    i = 1
    While Not EOF(f)
        Line Input #f, strText
        Cells(i, 1) = strText
        i = i + 1
    Wend

    Close f
End Sub

Avslutande tankar

Med hjälp av stegen ovan kan du enkelt koppla Excel till textfiler och både läsa in och skriva data. Dessa grundläggande färdigheter kan öppna upp en värld av möjligheter för databehandling och automatisering. Kom ihåg att du även kan koppla upp dig mot textfiler som är tillgängliga på nätverket eller via internet, vilket ytterligare ökar din flexibilitet och dina möjligheter inom databehandling.