Koppla Excel till textfiler med VBA: Guide och exempel

Först publicerad:

| © ExcelKungen.com

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

Textfiler är grundläggande dokument som kan redigeras med enkla program som t.ex. 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 applikationer, och de används ofta som primitiva databaser för att lagra och hantera information.

Varför textfiler är viktiga

Textfiler är inte bara begränsade till filändelsen .txt. De kan ha vilket suffix som helst, och det som verkligen räknas är innehållet. En särskilt användbar typ av textfil är CSV-filer (Comma Separated Values), som tillåter effektiv organisering av data i kolumner. Detta åstadkoms genom att speciella tecken som kommatecken eller semikolon agerar kolumnavdelare. Genom att använda 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 kommer vi att titta närmare på hur du kan koppla ihop Excel och textfiler med hjälp av VBA-kod. Vi kommer att utforska 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 få åtkomst till 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 kommer allt tidigare innehåll att raderas.

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

APPEND

Med Append öppnas en fil utan att radera dess innehåll. 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 att skriva till en textfil: PRINT och WRITE.

PRINT

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

Print #f, "Dagens datum: " & Date

WRITE

WRITE-kommandot är mycket användbart för att skapa kolumnuppdelningar, 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 ovanstående steg 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 möjligheter inom databehandling.

Populära artiklar

Dagens tips

Relaterade artiklar