Hur du spelar in ett makro i Excel

  • Dela Detta
Michael Brown

Steg-för-steg-handledning för nybörjare om hur man spelar in, visar, kör och sparar ett makro. Du får också lära dig hur makron fungerar i Excel.

Makroer är ett utmärkt sätt att automatisera repetitiva uppgifter i Excel. Om du gör samma saker om och om igen kan du registrera dina rörelser som ett makro och tilldela det en kortkommando. Nu kan du få alla registrerade åtgärder utförda automatiskt med en enda knapptryckning!

    Hur du spelar in ett makro i Excel

    Precis som andra VBA-verktyg finns Excel-makron på Utvecklare som är dold som standard. Så det första du behöver göra är att lägga till fliken Utvecklare i Excel-bandet.

    För att spela in ett makro i Excel gör du så här:

    1. På den Utvecklare på fliken Kod grupp, klickar du på Spela in makro knapp.

      Alternativt kan du klicka på Spela in makro knappen på vänster sida av Status bar:

      Om du föredrar att arbeta med tangentbordet i stället för musen trycker du på följande tangentsekvens Alt , L , R (en efter en, inte alla tangenter samtidigt).

    2. I Spela in makro I dialogrutan som visas konfigurerar du makroets huvudparametrar:
      • I Makro namn Ange ett namn för makrot. Försök att göra det meningsfullt och beskrivande, så att du senare snabbt kan hitta makrot i listan.

        I makronamn kan du använda bokstäver, siffror och understrykningar; det första tecknet måste vara en bokstav. Mellanrum är inte tillåtna, så du bör antingen ha ett namn med ett enda ord och börja varje del med en stor bokstav (t.ex. MyFirstMacro ) eller separera ord med understrykningar (t.ex. Min_första makro ).

      • I Genvägstangent en bokstav för att tilldela makrot en kortkommando till makrot (valfritt).

        Både stora och små bokstäver är tillåtna, men det är klokt att använda kombinationer av stora bokstäver (Ctrl + Shift + bokstav) eftersom makrogenvägar åsidosätter alla standardgenvägar i Excel när arbetsboken som innehåller makrot är öppen. Om du till exempel tilldelar ett makro Ctrl + S förlorar du möjligheten att spara dina Excel-filer med en genväg. Om du tilldelar Ctrl + Shift + S behåller du möjligheten att spara dina Excel-filer med en genväg.standardgenväg för att spara.

      • Från Lagra makro i i rullgardinslistan väljer du var du vill lagra makrot:
        • Arbetsbok för personliga makro - lagrar makrot i en särskild arbetsbok som heter Personligt.xlsb Alla makron som lagras i den här arbetsboken är tillgängliga när du använder Excel.
        • Denna arbetsbok (standard) - makrot lagras i den aktuella arbetsboken och är tillgängligt när du öppnar arbetsboken igen eller delar den med andra användare.
        • Ny arbetsbok - skapar en ny arbetsbok och registrerar makrot i den arbetsboken.
      • I Beskrivning en kort beskrivning av vad makrot gör (valfritt).

        Även om det här fältet är valfritt rekommenderar jag att du alltid anger en kort beskrivning. När du skapar många olika makron hjälper det dig att snabbt förstå vad varje makro gör.

      • Klicka på OK för att börja spela in makrot.

    3. Utför de åtgärder som du vill automatisera (se exemplet med inspelningsmakron).
    4. När du är klar klickar du på Stoppa inspelningen på knappen på Utvecklare fliken:

      Eller den motsvarande knappen på Status bar:

    Exempel på inspelning av ett makro i Excel

    För att se hur det fungerar i praktiken kan vi spela in ett makro som tillämpar viss formatering på de markerade cellerna. Gör följande:

    1. Välj en eller flera celler som du vill formatera.
    2. På den Utvecklare eller Status baren, klicka på Spela in makro .
    3. I Spela in makro Konfigurera följande inställningar:
      • Namnge makrot Formatering av rubriker (eftersom vi ska formatera kolumnrubriker).
      • Placera markören i Genvägstangent och tryck samtidigt på tangenterna Shift + F. På så sätt tilldelas genvägen Ctrl + Shift + F till makrot.
      • Välj att lagra makrot i den här arbetsboken.
      • För Beskrivning Använd följande text som förklarar vad makrot gör: Gör texten fet, lägger till fyllnadsfärg och centrerar den. .
      • Klicka på OK för att starta inspelningen.

    4. Formatera de förvalda cellerna som du vill. I det här exemplet använder vi fet textformatering, ljusblå fyllningsfärg och centrerad justering.

      Tips: Markera inga celler efter att du har börjat spela in makrot. På så sätt säkerställs att all formatering läggs till i urval , inte ett specifikt intervall.

    5. Klicka på Stoppa inspelningen på antingen Utvecklare eller på fliken Status bar.

    Nu kan du välja ett valfritt antal celler i ett ark, trycka på den tilldelade genvägen ( Ctrl+ Shift + F ) och din anpassade formatering kommer omedelbart att tillämpas på de markerade cellerna.

    Hur man arbetar med inspelade makron i Excel

    Alla huvudalternativ som Excel tillhandahåller för makron kan nås via Makro dialogrutan. För att öppna den klickar du på Makroer på knappen på Utvecklare eller tryck på genvägen Alt+ F8.

    I dialogrutan som öppnas kan du visa en lista över makron som är tillgängliga i alla öppna arbetsböcker eller som är associerade med en viss arbetsbok och använda följande alternativ:

    • Kör - utför det valda makrot.
    • Ta ett steg in i - gör det möjligt att felsöka och testa makrot i Visual Basic-redigeraren.
    • Redigera - öppnar det markerade makrot i VBA-redigeraren, där du kan visa och redigera koden.
    • Ta bort - raderar permanent det valda makrot.
    • Alternativ - kan man ändra makroets egenskaper, t.ex. den associerade Genväg nyckel och Beskrivning .

    Hur man visar makron i Excel

    Koden för ett Excel-makro kan visas och ändras i Visual Basic Editor. För att öppna editorn trycker du på Alt + F11 eller klickar på Visual Basic på knappen på Utvecklare fliken.

    Om du ser VB-editorn för första gången ska du inte känna dig avskräckt eller skrämd. Vi kommer inte att tala om VBA-språkets struktur eller syntax. Det här avsnittet kommer bara att ge dig en grundläggande förståelse för hur Excel-makron fungerar och vad inspelning av ett makro faktiskt gör.

    VBA-redigeraren har flera fönster, men vi kommer att fokusera på de två viktigaste fönstren:

    Utforskare av projekt - visar en lista över alla öppna arbetsböcker och deras ark. Dessutom visas moduler, användarformulär och klassmoduler.

    Fönster för kod - Här kan du visa, redigera och skriva VBA-kod för varje objekt som visas i Projektutforskaren.

    När vi spelade in makroexemplet inträffade följande saker i backend:

    • En ny modul ( Moduel1 ) har införts.
    • VBA-koden för makrot skrevs i fönstret Kod.

    Om du vill se koden för en specifik modul dubbelklickar du på modulen ( Modul1 i vårt fall) i fönstret Projektutforskaren. Normalt består en makrokod av följande delar:

    Makronamn

    I VBA börjar varje makro med Under följt av makronamnet och avslutas med Slutar under , där "Sub" är en förkortning för Underprogram (även kallad Förfarande ). Vårt exempelmakro heter Header_Formatting() , så koden börjar med denna rad:

    Sub Header_Formatting()

    Om du vill byta namn på makrot Om du vill använda en kod, raderar du helt enkelt det nuvarande namnet och skriver ett nytt direkt i kodfönstret.

    Kommentarer

    Rader med en apostrof (') och som visas i grönt som standard utförs inte. Det är kommentarer som läggs till i informationssyfte. Kommentarraderna kan utan problem tas bort utan att kodens funktionalitet påverkas.

    Vanligtvis har ett inspelat makro 1-3 kommentarsrader: makronamn (obligatoriskt), beskrivning och genväg (om det anges före inspelning).

    Exekverbar kod

    Efter kommentarerna kommer koden som utför de åtgärder som du har registrerat. Ibland kan ett registrerat makro innehålla mycket överflödig kod, som ändå kan vara användbar för att ta reda på hur saker och ting fungerar med VBA :)

    Bilden nedan visar vad varje del av makrokoden gör:

    Hur man kör ett inspelat makro

    Genom att köra ett makro ber du Excel att gå tillbaka till den inspelade VBA-koden och utföra exakt samma steg. Det finns några sätt att köra ett inspelat makro i Excel, och här är de snabbaste:

    • Om du har tilldelat en kortkommando till makrot, tryck på den genvägen.
    • Tryck på Alt + 8 eller klicka på Makroer på knappen på Utvecklare fliken. På fliken Makro dialogrutan, välj det önskade makrot och klicka på Kör .

    Det är också möjligt att köra ett inspelat makro genom att klicka på en egen knapp. Här är stegen för att skapa en sådan: Hur man skapar en makroknapp i Excel.

    Hur du sparar makron i Excel

    Oavsett om du har spelat in ett makro eller skrivit VBA-kod manuellt måste du spara arbetsboken som ett aktiverat makro (.xlms-tillägg) för att spara makrot. Så här gör du:

    1. I arbetsboken som innehåller makrot klickar du på Spara eller tryck på Ctrl + S .
    2. I Spara som dialogrutan, väljer du Arbetsbok med Excel-makroaktivering (*.xlsm) från Spara som typ och klicka sedan på Spara :

    Excel-makros: vad som registreras och vad som inte registreras

    Som du just har sett är det ganska enkelt att spela in ett makro i Excel. Men för att skapa effektiva makron måste du förstå vad som händer bakom kulisserna.

    Vad som registreras

    Excels makronegistrerare registrerar en hel del saker - nästan alla musklick och tangenttryckningar. Du bör därför tänka igenom dina steg noggrant för att undvika överflödig kod som kan leda till oväntat beteende i ditt makro. Nedan följer några exempel på vad Excel registrerar:

    • Markera celler med musen eller tangentbordet. Endast det senaste urvalet före en åtgärd registreras. Om du till exempel markerar intervallet A1:A10 och sedan klickar på cell A11 registreras endast urvalet av A11.
    • Cellformatering, t.ex. fyllnings- och typsnittsfärg, justering, ramar osv.
    • Formatering av siffror, t.ex. procent, valuta osv.
    • Redigering av formler och värden. Ändringarna registreras när du trycker på Enter .
    • Bläddra, flytta Excel-fönster, byta till andra arbetsblad och arbetsböcker.
    • Lägg till, namnge, flytta och ta bort arbetsblad.
    • Skapa, öppna och spara arbetsböcker.
    • Kör andra makron.

    Vad som inte kan registreras

    Trots de många olika saker som Excel kan registrera finns det vissa funktioner som ligger utanför Macro Recorder:

    • Anpassningar av Excel-bandet och verktygsfältet för snabbåtkomst.
    • Åtgärder i Excel-dialogrutor, t.ex. Villkorlig formatering eller . Hitta och ersätta (endast resultatet registreras).
    • Interaktioner med andra program. Du kan t.ex. inte registrera kopiering/klistring från en Excel-arbetsbok till ett Word-dokument.
    • Allt som involverar VBA-redigeraren. Detta innebär de största begränsningarna - många saker som kan göras på programmeringsnivå kan inte registreras:
      • Skapa anpassade funktioner
      • Visa anpassade dialogrutor
      • Att göra slingor som t.ex. För nästa , För varje , Gör medan , etc.
      • Utvärdering av villkor. I VBA kan du använda IF Then Else för att testa ett villkor och köra en kod om villkoret är sant eller en annan kod om villkoret är falskt.
      • Exekvera kod baserat på händelser. Med VBA kan du använda många händelser för att köra en kod som är kopplad till händelsen (t.ex. öppna en arbetsbok, räkna om ett kalkylblad, ändra urval och så vidare).
      • Använda argument. När du skriver ett makro i VBA Editor kan du ange inmatningsargument för att ett makro ska utföra en viss uppgift. Ett inspelat makro kan inte ha några argument eftersom det är oberoende och inte är kopplat till andra makron.
      • Förstå logik. Om du till exempel spelar in ett makro som kopierar specifika celler, till exempel i Totalt rad, registrerar Excel bara adresserna till de kopierade cellerna. Med VBA kan du koda logiken, dvs. kopiera värdena i Totalt rad.

    Även om ovanstående begränsningar sätter många gränser för inspelade makron är de ändå en bra utgångspunkt. Även om du inte har någon aning om VBA-språket kan du snabbt spela in ett makro och sedan analysera dess kod.

    Användbara tips för att registrera makron i Excel

    Nedan hittar du några tips och anteckningar som kan spara dig mycket tid och nervositet och göra din inlärningskurva smidigare och dina makronördar effektivare.

    Använd relativa referenser för makroregistrering

    Som standard använder Excel absolut Hänvisning till Det innebär att din VBA-kod alltid hänvisar till exakt samma celler som du markerade, oavsett var du befinner dig i kalkylbladet när du kör makrot.

    Det är dock möjligt att ändra standardbeteendet till Relativ hänvisning. I det här fallet kodar VBA inte celladresser, utan arbetar relativt den aktiva (för närvarande valda) cellen.

    Om du vill spela in ett makro med relativa referenser klickar du på Använd Relativa referenser på knappen på Utvecklare Om du vill återgå till absoluta referenser klickar du på knappen igen för att stänga av den.

    Om du t.ex. registrerar en tabell med den absoluta standardreferensen kommer ditt makro alltid att återskapa tabellen på samma ställe (i det här fallet, Rubrik i A1, Punkt 1 i A2, Punkt 2 i A3).

    Sub Absolute_Referencing() Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Select ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Select ActiveCell.FormulaR1C1 = "Item2" End Sub

    Om du spelar in samma makro med relativ hänvisning skapas tabellen där du placerade markören innan du körde makrot ( Rubrik i den aktiva cellen, Punkt 1 i den nedre cellen, och så vidare).

    Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Select End Sub

    Anteckningar:

    • När du använder relativa referenser måste du välja den första cellen innan du börjar spela in ett makro.
    • Relativa referenser fungerar inte alltid. Vissa Excel-funktioner, t.ex. konvertering av ett intervall till en tabell, kräver absoluta referenser.

    Välj intervall med hjälp av tangentbordsgenvägar

    När du markerar en cell eller ett intervall av celler med musen eller piltangenterna skriver Excel celladresserna. När du kör ett makro kommer därför de registrerade operationerna att utföras exakt på samma celler. Om du inte vill ha det så här kan du använda genvägar för att markera celler och intervall.

    Som exempel kan vi spela in ett makro som anger ett specifikt format (d-mmm-yy) för datumen i tabellen nedan:

    För detta registrerar du följande åtgärder: Tryck på Ctrl + 1 för att öppna Formatera celler dialog> Datum> välj format> OK. Om du väljer intervallet med musen eller piltangenterna i din inspelning kommer Excel att producera följande VBA-kod:

    Sub Date_Format() Range( "A2:B4" ). Select Selection.NumberFormat = "d-mmm-yy" End Sub

    Om du kör ovanstående makro skulle intervallet A2:B4 väljas varje gång. Om du lägger till fler rader i tabellen kommer de inte att behandlas av makrot.

    Nu ska vi se vad som händer när du väljer tabellen med hjälp av en genväg.

    Sätt markören i den övre vänstra cellen i målområdet (A2 i det här exemplet), börja spela in och tryck på Ctrl + Shift + End . Resultatet blir att den första raden i koden ser ut så här:

    Range(Selection, ActiveCell.SpecialCells(xlLastCell)). Välj

    Den här koden väljer alla celler från den aktiva cellen till den senast använda cellen, vilket innebär att alla nya data automatiskt inkluderas i urvalet.

    Alternativt kan du använda kombinationer av Ctrl + Shift + Pilar:

    • Ctrl + Shift + högerpil för att välja alla använda celler till höger, följt av
    • Ctrl + Shift + pil nedåt för att välja alla använda celler nedåt.

    Detta genererar två kodrader i stället för en, men resultatet blir detsamma - alla celler med data under och till höger om den aktiva cellen väljs:

    Range(Selection, Selection. End (xlToRight)). Select Range(Selection, Selection. End (xlDown)). Select

    Spela in ett makro för urval snarare än för specifika celler

    Ovanstående metod (dvs. att välja alla använda celler med början i den aktiva cellen) fungerar utmärkt för att utföra samma operationer på hela tabellen. I vissa situationer kan du dock vilja att makrot ska bearbeta ett visst intervall i stället för hela tabellen.

    För detta tillhandahåller VBA följande Urval objekt som hänvisar till den eller de markerade cellerna. Det mesta som kan göras med ett intervall kan också göras med urval. Vilken fördel ger det dig? I många fall behöver du inte markera något alls när du spelar in - skriv bara ett makro för den aktiva cellen. Välj sedan vilket intervall som helst, kör makrot och hela urvalet kommer att manipuleras.

    Det här enradiga makrot kan till exempel formatera valfritt antal valda celler som procentandelar:

    Sub Percent_Format() Selection.NumberFormat = "0.00%" End Sub

    Planera noggrant vad du spelar in.

    Microsoft Excel Macro Recorder registrerar nästan all din aktivitet, inklusive de misstag du gör och korrigerar. Om du till exempel trycker på Ctrl + Z för att ångra något kommer det också att registreras. Så småningom kan du hamna i en massa onödig kod. För att undvika detta kan du antingen redigera koden i VB-redigeraren eller avbryta inspelningen, ta bort ett bristfälligt makro och börja spela in på nytt.

    Säkerhetskopiera eller spara arbetsboken innan du kör ett makro

    Resultatet av Excel-makron kan inte ångras. Innan du kör ett makro för första gången är det därför klokt att skapa en kopia av arbetsboken eller åtminstone spara ditt nuvarande arbete för att förhindra oväntade ändringar. Om makron gör något fel stänger du helt enkelt arbetsboken utan att spara.

    Håll inspelade makron kort

    När du automatiserar en rad olika uppgifter kan du frestas att registrera dem alla i ett enda makro. Det finns två huvudskäl till att inte göra detta. För det första är det svårt att spela in ett långt makro smidigt och utan misstag. För det andra är stora makron svåra att förstå, testa och felsöka. Därför är det en bra idé att dela upp ett stort makro i flera delar. När du till exempel skapar en sammanfattningstabellfrån flera källor kan du använda ett makro för att importera information, ett annat för att konsolidera data och ett tredje för att formatera tabellen.

    Jag hoppas att den här handledningen har gett dig en inblick i hur man spelar in ett makro i Excel. Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.