
Ett excelmakro är en sparad serie instruktioner som Excel kan köra åt dig med ett klick eller ett kortkommando. Allt du annars gör för hand, steg för steg, kan makrot utföra på en gång. Därför används makron framför allt för att automatisera repetitiva arbetsmoment, som att formatera samma rapport varje dag eller rensa och flytta data på samma sätt varje vecka.
Här går vi igenom vad ett makro egentligen är: hur det fungerar, var det sparas, var ordet kommer ifrån och vad du bör känna till innan du börjar köra makron i dina egna arbetsböcker.
Så fungerar ett makro
Ta ett vanligt exempel. Varje morgon klistrar du in gårdagens försäljning i ett nytt blad. Sedan gör du samma sak som alla andra dagar: fetstil på rubrikerna, tusentalsavgränsare på beloppen, anpassad kolumnbredd och en summarad längst ner. Det tar kanske fem minuter, men det blir många timmar på ett år. Ett makro kan göra samma jobb med ett klick eller ett kortkommando.
I exemplet nedan ser du hur rapporten kan se ut när makrot har kört. Data är samma som du klistrade in, men formateringen och totalsumman har makrot lagt till.

Det finns två sätt att skapa ett sådant makro:
- Spela in det. Med makroinspelaren (Utvecklare > Spela in makro, eller Visa > Makron > Spela in makro) gör du formateringen en gång medan Excel tittar på. Varje steg du tar sparas, och sedan kan du köra om alltihop när du vill.
- Skriva det själv. Du öppnar VBA-redigeraren med Alt+F11 och skriver instruktionerna i VBA (Visual Basic for Applications), det programspråk som är inbyggt i Excel. En rad som
Range("D2:D7").NumberFormat = "#,##0"sätter till exempel talformatet på beloppen.
Resultatet blir detsamma oavsett vilket sätt du väljer. Excel sparar makrot som VBA-kod. Ett inspelat makro kan du alltså öppna i redigeraren, läsa och ändra i efteråt. Många lär sig VBA just på det sättet: de spelar in, tittar på koden och justerar den.
Med makron går jobbet snabbare och blir likadant varje gång, och risken för slarvfel minskar när du slipper göra samma moment för hand.
Var går då gränsen mellan ett makro och ett VBA-program? Den är flytande. Ett makro är oftast en kort kodsnutt för ett avgränsat moment, som formateringen ovan. Om du bygger vidare på det, så att koden också hämtar data, kontrollerar den och exporterar resultatet till företagets redovisningssystem, har makrot i praktiken vuxit till ett fullskaligt program. Det är fortfarande samma VBA-kod, men i större skala.
Var sparas makrot?
Koden till ett makro sparas normalt i den arbetsbok där du skapade det. Tänk bara på att en vanlig arbetsbok i formatet .xlsx inte kan innehålla makron. Om du sparar som .xlsx varnar Excel för att VBA-koden inte kan sparas, och fortsätter du tas makrona bort. Spara därför arbetsboken som Excel-arbetsbok med stöd för makron (.xlsm) via Arkiv > Spara som.
Ett makro som ligger i en vanlig arbetsbok kan bara köras när den filen är öppen. Vill du ha makrot tillgängligt i alla arbetsböcker finns två alternativ:
- Den personliga makroarbetsboken: en dold arbetsbok som öppnas automatiskt när Excel startar. I äldre versioner hette den Personal.xls, i moderna versioner heter den
Personal.xlsb. När du spelar in ett makro kan du välja att lagra det där. - Ett tillägg (add-in): en arbetsbok som sparats i formatet
.xlamoch aktiveras under Excel-tillägg. Det passar bra när du vill dela makron med kollegor eller samla verktyg som du använder ofta.
Varifrån kommer ordet makro?
Ordet makro kommer inte från Excel. Det är äldre än så och har sitt ursprung i datavetenskapens makroinstruktion: en enda instruktion som expanderar till en hel serie mindre instruktioner när den körs. Förledet kommer från grekiskans makros, som betyder stor eller lång. Ett makro är alltså en ”stor” instruktion som ersätter många små.
Tanken passar bra in på Excel. Du startar ett makro med ett klick eller ett kortkommando, och Excel utför sedan alla steg som makrot innehåller, ett efter ett.
Excel hade makron långt innan VBA fanns. De första versionerna använde ett eget makrospråk, i dag kallat Excel 4.0-makron eller XLM, där instruktionerna skrevs i särskilda makroblad. VBA kom med Excel 5 och ersatte med tiden det gamla språket. Därför är det VBA som avses när vi i dag talar om excelmakron.
Exempel på vad makron används till
Ett makro passar bäst för uppgifter som du gör ofta och på samma sätt varje gång. Några vanliga exempel:
- Formatera rapporter: sätt kolumnbredder, talformat, rubriker och färger på en ny rapport med ett enda klick.
- Importera data: hämta in data från till exempel en Access-databas eller en textfil direkt till ett kalkylblad.
- Skicka en pivottabell med e-post: låt makrot kopiera en pivottabell till ett nytt e-postmeddelande i Outlook, färdigt att skickas.
- Rensa och sammanställa data: ta bort tomma rader och dubbletter, och samla data från flera blad på ett och samma blad.
Gemensamt för exemplen är att du själv slipper klicka dig igenom samma steg om och om igen. Tiden du sparar kan du lägga på att analysera resultatet i stället.
Bra att veta innan du kör makron
Makron sparar mycket tid, men det finns några saker du bör känna till innan du börjar köra dem på riktiga filer.
Ångra fungerar inte efter ett makro
När ett makro körs töms Excels Ångra-lista. Du kan alltså inte trycka Ctrl+Z för att backa det makrot har ändrat, och inte heller det du gjorde precis innan. Därför är det en god vana att:
- spara arbetsboken innan du kör ett makro, så att du kan stänga utan att spara om resultatet blev fel
- testa nya makron på en kopia av filen tills du vet att de gör det du tänkt dig
Makron kan innehålla skadlig kod
Ett makro kan göra nästan allt du själv kan göra i Excel, och mer därtill: radera data, ändra filer på datorn eller hämta saker från internet. Därför har makron länge använts för att sprida skadlig kod. Av det skälet blockerar Excel som standard makron i filer som kommer från internet, till exempel bifogade filer i e-post eller filer du laddat ner. Aktivera bara makron i filer du vet varifrån de kommer och litar på.
Kommer mina makron att fungera i framtiden?
VBA-makron har fungerat i en lång rad Excelversioner, och ett makro som skrevs för många år sedan går oftast att köra utan ändringar i dag. VBA stöds fortfarande i skrivbordsversionen av Excel för Windows och Mac. Däremot körs VBA-makron inte i Excel för webben. Du kan öppna och redigera en .xlsm-fil i webbläsaren, men för att köra makrot behöver du öppna filen i skrivbordsappen.
Lär dig mer om excelmakron
Vill du komma igång med att skapa egna makron rekommenderar vi vår videokurs Makro-skolan. Den börjar från grunden, med makroinspelaren och VBA-redigeraren, och visar steg för steg hur du bygger makron som fungerar.
Det bästa sättet att lära sig är att öva på något du faktiskt gör i jobbet. Välj en uppgift du upprepar varje vecka, till exempel att formatera en rapport eller rensa en export, och försök automatisera den så snart du har lärt dig grunderna. Då lär du dig snabbare och sparar dessutom tid direkt.
💡 Ytterligare läsning
Fungerar inte allt som tänkt kan en genomgång av Vanliga problem med inspelade makron och hur du löser dem hjälpa dig vidare.