Har du ett makro som du vill kunna köra i alla dina Excelfiler, inte bara i den arbetsbok där du spelade in det? Då är Personal Macro Workbook, den personliga makroarbetsboken, rätt ställe att spara det på. Det är en dold arbetsbok som Excel öppnar automatiskt varje gång programmet startar. Eftersom den alltid är öppen i bakgrunden kan du använda makrona i den från vilken arbetsbok som helst, utan att behöva kopiera koden eller spela in samma steg igen.

Guiden riktar sig till dig som har börjat spela in eller skriva egna makron och vill samla dem på ett ställe. Du behöver inga förkunskaper i VBA för att följa stegen. Har du redan en personlig makroarbetsbok får du tips om hur du sköter den bättre.

Du får lära dig att:

  • skapa din personliga makroarbetsbok första gången
  • hitta filen på datorn och visa eller dölja den i Excel
  • redigera och lägga till makron i VBA-editorn
  • köra makrona och dina egna funktioner från andra arbetsböcker
  • säkerhetskopiera, flytta och återställa filen
  • lösa de vanligaste problemen, till exempel när arbetsboken inte öppnas vid start

Vad är Personal Macro Workbook?

Personal Macro Workbook, på svenska ofta kallad personlig makroarbetsbok, är en vanlig Excel-arbetsbok med en särskild uppgift: att förvara dina egna makron så att de går att använda oavsett vilken fil du arbetar i. Det som skiljer den från andra arbetsböcker är var den ligger och hur den öppnas.

Filen heter PERSONAL.XLSB i Excel 2007 och senare versioner. I Excel 2003 och tidigare hette den Personal.xls. Formatet .xlsb är ett binärt Excel-format som kan innehålla makron, så du behöver inte spara om filen som .xlsm.

Arbetsboken ligger i mappen XLSTART. Excel öppnar automatiskt alla filer i den mappen varje gång programmet startar. PERSONAL.XLSB öppnas dold, så du ser inget fönster och den syns inte bland dina vanliga arbetsböcker. Den finns ändå laddad i bakgrunden så länge Excel är igång, och därför går makrona i den att köra från vilken arbetsbok som helst.

Filen finns inte från början. Excel skapar den först när du spelar in ett makro och väljer att lagra det i den personliga makroarbetsboken.

Jämfört med andra platser för makron

När du spelar in ett makro frågar Excel var det ska lagras. Du har tre val:

  • Den här arbetsboken – makrot sparas i filen du har öppen, som då måste sparas i ett makroaktiverat format (.xlsm eller .xlsb). Makrot följer med filen och kan bara köras när just den filen är öppen.
  • Ny arbetsbok – Excel öppnar en ny tom arbetsbok och lägger makrot där. Det passar sällan i praktiken, eftersom du själv måste spara filen och ha den öppen för att kunna använda makrot.
  • Personlig makroarbetsbok – makrot hamnar i PERSONAL.XLSB och finns tillgängligt i alla arbetsböcker på din dator, men det följer inte med när du skickar en fil till någon annan.

Kort sagt: makron som hör till en viss fil sparar du i den filen. Makron som du själv vill ha till hands i allt ditt arbete lägger du i den personliga makroarbetsboken.

Fördelar och när du ska använda den

Att lagra makron i din Personal Macro Workbook har flera fördelar jämfört med att sprida ut dem i olika filer:

  • Tillgänglighet: Makrona finns till hands i alla arbetsböcker du öppnar, både nya och gamla. Du behöver inte kopiera kod mellan filer eller spela in samma makro flera gånger.
  • En central plats: Alla dina egna verktyg ligger i en och samma fil. När du vill rätta ett fel eller förbättra ett makro gör du ändringen på ett ställe, och den gäller sedan överallt.
  • Enkel säkerhetskopiering: Eftersom allt ligger i en enda fil räcker det att kopiera den filen för att ha en backup av alla dina makron. Det gör det också enkelt att ta med dem till en ny dator.

Makron som passar bra

Den personliga makroarbetsboken passar för allmänna hjälpmakron som du använder oavsett vilken fil du arbetar i. Några typiska exempel:

  • Formatering: ge en rubrikrad fet stil och bakgrundsfärg, sätta ett visst talformat på markerade celler eller justera kolumnbredder automatiskt.
  • Datatvätt: ta bort inledande och avslutande blanksteg, omvandla tal som lagrats som text till riktiga tal eller ta bort tomma rader i en lista.
  • Datum och tid: skriva in dagens datum eller en tidsstämpel i den aktiva cellen som ett fast värde, alltså inte en formel som ändras varje dag.
  • Vardagsrutiner: ta fram alla dolda blad, frysa översta raden eller spara en kopia av den aktiva arbetsboken som PDF.

Gemensamt för dessa makron är att de arbetar på den arbetsbok eller markering du har framför dig och inte är knutna till en viss fil.

När makrot hör hemma i arbetsboken

Allt hör inte hemma i den personliga makroarbetsboken. Spara makrot i den aktuella arbetsboken (Den här arbetsboken) i stället när:

  • Filen delas med andra. Dina kollegor har inte din PERSONAL.XLSB. Ett makro som bara finns hos dig fungerar inte när någon annan öppnar filen, och knappar som pekar på makrot ger felmeddelanden hos dem. Om filen ska kunna användas av flera personer måste koden följa med i filen, som då sparas i formatet .xlsm.
  • Makrot är byggt för en viss fil. Kod som förutsätter bestämda bladnamn, tabeller eller cellområden i en specifik rapport hör ihop med den rapporten. Ligger den i den personliga makroarbetsboken blir det lätt rörigt, och makrot kan göra skada om du råkar köra det i fel fil.
  • Makrot ska köras automatiskt. Händelsemakron, till exempel kod som körs när en viss arbetsbok öppnas eller när en cell ändras, skrivs i den arbetsbok de gäller.

En enkel tumregel: om makrot är ett allmänt verktyg för dig själv lägger du det i den personliga makroarbetsboken. Om det är en del av en viss fil, eller ska användas av andra, sparar du det i den filen.

Skapa din personliga makroarbetsbok

Det finns ingen menyknapp som skapar en personlig makroarbetsbok. Excel skapar filen första gången du spelar in ett makro och väljer att lagra det där. Har du aldrig gjort det finns arbetsboken inte på din dator. Det enklaste sättet att komma igång är därför att spela in ett litet makro.

Steg 1: Visa fliken Utvecklare

Fliken Utvecklare är dold från början. Så här tar du fram den:

  1. Klicka på Arkiv och välj Alternativ.
  2. Välj Anpassa menyfliksområdet i listan till vänster.
  3. Markera rutan Utvecklare i den högra listan och klicka på OK.

Om du inte vill ta fram fliken kan du i stället använda Visa > Makron > Spela in makro. Du behöver ändå fliken Utvecklare senare för att komma åt VBA-editorn och säkerhetsinställningarna, så det lönar sig att visa den.

Steg 2: Starta inspelningen

  1. Öppna en arbetsbok, gärna en ny och tom.
  2. Gå till Utvecklare och klicka på Spela in makro i gruppen Kod.
  3. Skriv ett namn i rutan Makronamn, till exempel FetStil. Namnet måste börja med en bokstav och får inte innehålla mellanslag.
  4. Ange ett kortkommando om du vill, men det är frivilligt.
  5. Välj Personlig makroarbetsbok i listan Lagra makro i. Det här är det viktiga steget. Väljer du Den här arbetsboken hamnar makrot i den öppna filen och ingen personlig makroarbetsbok skapas.
  6. Skriv gärna en kort beskrivning och klicka på OK.

Steg 3: Spela in ett enkelt steg

Nu registrerar Excel allt du gör. Gör något enkelt, till exempel att markera en cell och klicka på Fet (Ctrl+B). Inspelningen behöver inte vara användbar. Makrot finns bara till för att Excel ska skapa filen, och du kan ta bort eller skriva om det senare i VBA-editorn.

Steg 4: Stoppa inspelningen

Klicka på Stoppa inspelning på fliken Utvecklare. Du kan också använda den lilla stoppknappen längst ned till vänster i statusfältet. Nu finns den personliga makroarbetsboken som en dold, öppen arbetsbok, men den är ännu inte sparad på disken.

Steg 5: Spara när du avslutar Excel

Stäng Excel. Excel frågar då om du vill spara ändringarna i den personliga makroarbetsboken. Svara Spara. Först då skrivs filen PERSONAL.XLSB till startmappen. Från och med nästa start öppnas den automatiskt i bakgrunden, och makrot du spelade in finns tillgängligt i alla arbetsböcker.

Svarar du Spara inte försvinner både makrot och den nyskapade arbetsboken. Då får du börja om från steg 2.

Tips: Fungerar ett makro bara på en viss cell? Klicka på Använd relativa referenser på fliken Utvecklare innan du börjar spela in. Då utgår makrot från den cell som är markerad när du kör det, inte från samma fasta adress varje gång.

Var sparas filen?

Personal Macro Workbook är en vanlig fil på din hårddisk. Excel letar efter den i en särskild startmapp som heter XLSTART. Alla arbetsböcker i den mappen öppnas automatiskt när Excel startar. PERSONAL.XLSB öppnas dessutom dold, så att den inte stör ditt arbete.

Du behöver sällan leta upp filen. Det blir däremot nödvändigt när du vill säkerhetskopiera dina makron, flytta dem till en ny dator eller felsöka varför arbetsboken inte laddas.

Den vanliga sökvägen

I Windows ligger din personliga XLSTART-mapp normalt här:

C:\Users\användarnamn\AppData\Roaming\Microsoft\Excel\XLSTART

Mappen AppData är dold i Utforskaren. Därför är det enklast att gå dit med miljövariabeln %appdata%, som pekar på mappen AppData\Roaming för den inloggade användaren:

  1. Tryck på Win+R för att öppna dialogrutan Kör, eller klicka i adressfältet i Utforskaren.
  2. Skriv %appdata%\Microsoft\Excel\XLSTART och tryck på Enter.
  3. Mappen öppnas, och där bör du se PERSONAL.XLSB.

Ser du ingen fil har du förmodligen aldrig sparat något i den personliga makroarbetsboken. Filen skapas först när du har spelat in ett makro och sparat ändringarna, som beskrivs i föregående avsnitt.

Kontrollera sökvägen med VBA

Sökvägen kan variera, till exempel om företagets IT-avdelning har flyttat användarprofilerna eller om du har en äldre Excel-version. Då är det säkrast att fråga Excel direkt:

  1. Öppna VBA-editorn med Alt+F11.
  2. Visa fönstret Immediate med Ctrl+G, eller via View > Immediate Window.
  3. Skriv följande rad och tryck på Enter:

?Application.StartupPath

Frågetecknet är en förkortning för Print. Excel skriver ut den fullständiga sökvägen till din personliga XLSTART-mapp på raden under. Du kan kopiera den och klistra in den i adressfältet i Utforskaren.

Har du redan en personlig makroarbetsbok kan du i stället skriva ?Workbooks("PERSONAL.XLSB").FullName. Då får du sökvägen till själva filen, inklusive filnamnet.

Två XLSTART-mappar

Det finns också en gemensam XLSTART-mapp i Excels programmapp. Arbetsböcker där öppnas för alla användare på datorn. Den mappen kräver oftast administratörsbehörighet och är inte rätt plats för dina egna makron. Håll dig till den personliga mappen som Application.StartupPath visar.

Notera sökvägen, eller spara den som ett bokmärke i Utforskaren. Du behöver den när du säkerhetskopierar eller flyttar filen.

Visa Personal Macro Workbook

Även om din personliga makroarbetsbok öppnas varje gång du startar Excel syns den inte. Den är dold, precis som tanken är. Vill du ändå se den, till exempel för att kontrollera att den faktiskt har laddats, gör du så här:

  1. Öppna valfri arbetsbok, eller en tom ny, så att menyfliksområdet är aktivt.
  2. Gå till fliken Visa.
  3. Klicka på Ta fram i gruppen Fönster. I engelska Excel heter knappen Unhide.
  4. Markera PERSONAL.XLSB i dialogrutan som visas och klicka på OK.

Är knappen Ta fram nedtonad finns det inga dolda arbetsböcker öppna. Då har den personliga makroarbetsboken antingen inte skapats än, eller så laddades den inte när Excel startade. Det tar vi upp i felsökningsavsnittet längre ner.

Via menyer "View" -> "Unhide" kan du visa din Personal macro workbook.
Via menyer ”View” -> ”Unhide” kan du visa din Personal macro workbook.

Följande dialogruta bör då visas:

När du vill visa din Personal macro workbook väljer du "Unhide".
När du vill visa din Personal macro workbook väljer du ”Unhide”.

När du har klickat på OK öppnas PERSONAL.XLSB som ett eget fönster. Bli inte förvånad om du bara ser ett tomt kalkylblad. Makrona ligger i VBA-moduler och inte på bladen, så kalkylbladen är nästan alltid tomma.

Därför behöver du sällan visa arbetsboken. Makrona kan du redigera direkt i VBA-editorn även när filen är dold, och du kan säkerhetskopiera filen från mappen den ligger i. Visa den bara när du har ett konkret skäl, och dölj den igen när du är klar.

Dölja Personal Macro Workbook igen

När du är klar med det du ville göra i den visade arbetsboken ska du dölja den igen. Det viktiga är att PERSONAL.XLSB är det aktiva fönstret när du döljer. Annars döljer du i stället den arbetsbok du faktiskt arbetar i.

  1. Klicka någonstans i fönstret för PERSONAL.XLSB så att det blir aktivt. Namnet syns i Excels titelrad.
  2. Gå till fliken Visa.
  3. Klicka på Dölj i gruppen Fönster.

Arbetsboken försvinner från skärmen, men den är fortfarande öppen. Makrona i den fungerar precis som förut i alla andra arbetsböcker.

Du skall helst dölja din Personal macro workbook igen.
Du skall helst dölja din Personal macro workbook igen.

Därför ska du inte glömma att dölja den

Excel kommer ihåg om PERSONAL.XLSB var dold eller synlig när du sparade den. Om du stänger Excel och sparar ändringarna medan arbetsboken visas, öppnas den synligt vid varje start. Den blir dessutom ofta det aktiva fönstret, så du hamnar i ett tomt blad i PERSONAL.XLSB i stället för i den fil du tänkt arbeta med.

Gör så här om det redan har hänt: starta Excel, aktivera PERSONAL.XLSB och välj Visa > Dölj. Stäng sedan Excel och svara Spara när du får frågan om ändringarna i den personliga makroarbetsboken. Nästa gång Excel startar är arbetsboken dold igen.

Redigera makron i VBA-editorn

Du behöver inte visa den personliga makroarbetsboken för att ändra makrona i den. Allt redigeringsarbete görs i VBA-editorn, där PERSONAL.XLSB finns med som ett eget projekt även när arbetsboken är dold.

Öppna VBA-editorn och hitta PERSONAL.XLSB

  1. Tryck Alt+F11, eller välj Utvecklare > Visual Basic.
  2. Om projektfönstret inte syns till vänster öppnar du det med Ctrl+R (eller View > Project Explorer).
  3. Leta upp VBAProject (PERSONAL.XLSB) och fäll ut det.
  4. Öppna mappen Moduler (Modules i en engelsk editor). Makron som du har spelat in hamnar oftast i Module1.
  5. Dubbelklicka på modulen så visas koden i kodfönstret till höger.

Här kan du ändra befintliga makron direkt, ta bort sådana du inte längre använder eller skriva nya procedurer. Ett nytt makro lägger du till genom att skriva en ny Sub under de befintliga, till exempel:

Sub InfogaDagensDatum()
ActiveCell.Value = Date
End Sub

Vill du hålla isär olika typer av makron högerklickar du på projektet och väljer Insert > Module för att skapa en ny modul.

Namnge moduler och makron tydligt

Efter ett tag har de flesta samlat på sig ett tjugotal makron, och då blir det svårt att hitta i Module1, Module2 och Makro3. Några tips:

  • Döp om modulerna efter innehåll, till exempel modFormatering, modDatarensning och modDatum. Markera modulen och ändra namnet under (Name) i egenskapsfönstret (F4).
  • Ge makrona beskrivande namn som säger vad de gör, till exempel RensaTommaRader eller FormateraSomTabell. Namnet får inte innehålla mellanslag och får inte börja med en siffra.
  • Skriv en kort kommentar (en rad som börjar med ') överst i varje makro om vad det gör. Om ett år kommer du inte att minnas varför du skrev det.
  • Undvik dubbletter av makronamn i olika moduler. Det leder lätt till förväxlingar när du väljer makro i listan.

ActiveWorkbook och ActiveSheet i stället för ThisWorkbook

Det här är den vanligaste fällan med makron i den personliga makroarbetsboken. ThisWorkbook syftar alltid på den arbetsbok där koden finns. För makron i PERSONAL.XLSB är det alltså den dolda personliga arbetsboken och inte filen du arbetar i.

  • ActiveWorkbook är den arbetsbok som är aktiv när du kör makrot.
  • ActiveSheet är det aktiva bladet i den arbetsboken.
  • Selection och ActiveCell utgår också från det du har markerat just nu.

Ett makro som ska formatera rubrikraden i det blad du står i bör därför se ut ungefär så här:

Sub FetstilRubrikrad()
ActiveSheet.Rows(1).Font.Bold = True
End Sub

Om du i stället skriver ThisWorkbook.Sheets(1).Rows(1).Font.Bold = True ändrar makrot ett blad i den dolda PERSONAL.XLSB. Det ser ut som om ingenting händer, och när du stänger Excel får du en fråga om att spara ändringar som du inte förstår var de kommer ifrån. Använd ThisWorkbook bara när makrot avsiktligt ska läsa eller skriva i själva den personliga makroarbetsboken.

Inspelade makron använder oftast ActiveSheet, Selection och liknande redan från början. Det är därför de fungerar i vilken arbetsbok som helst. Tänk på samma sak när du skriver egen kod.

Köra makron från andra arbetsböcker

När makrot väl ligger i PERSONAL.XLSB kan du köra det oavsett vilken arbetsbok du har framme. Det finns tre vanliga sätt att starta det: dialogrutan Makro, ett kortkommando eller en knapp i Excels gränssnitt. Välj efter hur ofta du använder makrot. Det du kör några gånger i månaden klarar sig bra i dialogrutan, medan det du använder dagligen förtjänar ett kortkommando eller en egen knapp.

Dialogrutan Makro (Alt+F8)

Det enklaste sättet är att trycka Alt+F8, eller att välja Utvecklare > Makron. Dialogrutan listar makron från alla öppna arbetsböcker. Makron i din personliga makroarbetsbok visas med prefixet PERSONAL.XLSB!, till exempel PERSONAL.XLSB!RensaTomraderAktivtBlad.

  1. Aktivera arbetsboken och bladet som makrot ska arbeta på.
  2. Tryck Alt+F8.
  3. Kontrollera att Makron i: är inställt på Alla öppna arbetsböcker. Du kan också välja PERSONAL.XLSB om du bara vill se dina egna makron.
  4. Markera makrot och klicka på Kör.

Om ett makro saknas i listan beror det oftast på att proceduren är deklarerad som Private Sub eller tar argument. Sådana procedurer visas inte i dialogrutan. Det gör inte heller funktioner (Function), eftersom de anropas från celler och inte körs som makron.

Kortkommandon

Ett kortkommando är det snabbaste sättet att starta ett makro du använder ofta. Du kan ange det på två ställen:

  • Vid inspelning: i dialogrutan Spela in makro finns fältet Kortkommando, där du skriver en bokstav efter Ctrl.
  • I efterhand: öppna dialogrutan Makro med Alt+F8, markera makrot och klicka på Alternativ. Där kan du sätta eller ändra kortkommandot och skriva en beskrivning.

Ett makros kortkommando har företräde framför Excels inbyggda kortkommandon så länge arbetsboken är öppen. Eftersom PERSONAL.XLSB alltid är öppen gäller det i alla dina arbetsböcker. Om du lägger ett makro på Ctrl+C slutar alltså kopiera att fungera överallt. Använd därför hellre en versal bokstav i fältet, så blir kortkommandot Ctrl+Skift+bokstav. Där är risken för krockar betydligt mindre.

Skriv gärna ner vilka kortkommandon du har valt, till exempel i beskrivningsfältet under Alternativ eller som en kommentar överst i modulen. Efter ett tag är det lätt att glömma vad som ligger var.

Knapp i verktygsfältet Snabbåtkomst

Föredrar du att klicka kan du lägga makrot som en knapp i verktygsfältet Snabbåtkomst:

  1. Välj Arkiv > Alternativ > Verktygsfältet Snabbåtkomst.
  2. Välj Makron i listan Välj kommandon från.
  3. Markera makrot (det visas som PERSONAL.XLSB!Makronamn) och klicka på Lägg till.
  4. Klicka på Ändra för att välja en ikon och ge knappen ett begripligt visningsnamn.
  5. Klicka på OK.

Knapparna i verktygsfältet Snabbåtkomst får automatiskt tangentkombinationer. Tryck Alt så visas en siffra vid varje knapp, och Alt+den siffran kör makrot.

Egen grupp i menyfliksområdet

Har du flera makron kan det vara tydligare att samla dem i en egen grupp på menyfliksområdet:

  1. Välj Arkiv > Alternativ > Anpassa menyfliksområdet.
  2. Markera den flik där gruppen ska ligga, till exempel Start, och klicka på Ny grupp. Du kan också skapa en helt egen flik med Ny flik.
  3. Klicka på Byt namn och ge gruppen ett namn, till exempel Mina makron.
  4. Välj Makron i listan Välj kommandon från, markera makrot och klicka på Lägg till.
  5. Byt namn på knappen och välj en ikon. Avsluta med OK.

Makron kan bara läggas i egna grupper, inte i Excels inbyggda grupper. Därför behöver du skapa en ny grupp först.

Knappar och kortkommandon pekar på makrot i din egen PERSONAL.XLSB. De följer inte med när du skickar en arbetsbok till en kollega. Anpassningarna av menyfliksområdet och verktygsfältet Snabbåtkomst sparas dessutom separat från PERSONAL.XLSB, så de följer inte automatiskt med om du flyttar filen till en ny dator. Du kan föra över dem med Importera/Exportera längst ner i samma dialogruta.

Egna funktioner (UDF) i Personal Macro Workbook

Personal Macro Workbook kan även lagra egna kalkylbladsfunktioner, så kallade UDF:er (User Defined Functions). En UDF är en Function-procedur i VBA som du använder i en cell precis som SUMMA eller OM. Den räknar fram ett värde och returnerar det, men ändrar inget annat i arbetsboken. Det är praktiskt för beräkningar som du gör ofta och som blir krångliga med inbyggda funktioner.

Ett enkelt exempel

Lägg en ny modul i VBAProject (PERSONAL.XLSB) och skriv följande funktion:

Function MedMoms(Belopp As Double, Optional Momssats As Double = 0.25) As Double

MedMoms = Belopp * (1 + Momssats)

End Function

Funktionen tar ett belopp exklusive moms och returnerar beloppet inklusive moms. Om du inte anger någon momssats används 25 %.

Prefixet PERSONAL.XLSB!

Funktionen ligger i en annan arbetsbok än den du arbetar i. Därför måste du ange var den finns när du anropar den:

=PERSONAL.XLSB!MedMoms(B2;C2)

Om du bara skriver =MedMoms(B2;C2) hittar Excel inte funktionen och visar #NAMN?. Du slipper skriva prefixet för hand om du väljer funktionen via Infoga funktion (knappen fx bredvid formelfältet) under kategorin Användardefinierad. Då lägger Excel till prefixet åt dig.

I exemplet nedan visas samma beräkning med vanliga formler: =B2*(1+C2) i D2 ger 2 362,50. Det är exakt det värde som =PERSONAL.XLSB!MedMoms(B2;C2) returnerar för kontorsstolen. En sådan jämförelse är ett enkelt sätt att kontrollera att en ny UDF räknar rätt innan du börjar använda den på riktigt.

Kalkylblad med artiklar, pris exklusive moms och momssats. Cell D2 innehåller formeln =B2*(1+C2) och visar 2 362,50, samma resultat som den egna funktionen PERSONAL.XLSB!MedMoms(B2;C2) ger.
Kontrollberäkning med vanliga formler som visar vad UDF:en MedMoms ska returnera.

När filen öppnas på en annan dator

Formler med en UDF från PERSONAL.XLSB pekar alltså på din personliga makroarbetsbok. Den filen finns bara på din dator. Om du skickar arbetsboken till en kollega, eller själv öppnar den på en annan dator, händer i regel följande:

  • Excel behandlar anropet som en extern länk. Du kan få en säkerhetsvarning om länkar till andra filer, och i formeln kan referensen visas med hela sökvägen till din XLSTART-mapp.
  • Fram till nästa omräkning syns de senast beräknade värdena. När Excel räknar om och inte hittar funktionen blir resultatet ett fel, oftast #NAMN?.
  • Även om mottagaren har en egen PERSONAL.XLSB fungerar formlerna bara om just den filen innehåller en funktion med samma namn.

UDF:er i PERSONAL.XLSB passar därför bäst för ditt eget arbete. Ska arbetsboken delas lägger du hellre funktionen direkt i den filen och sparar den som .xlsm. Ett annat alternativ är att ersätta formlerna med värden innan du skickar filen.

Alternativ: spara funktionerna som ett tillägg (.xlam)

Om du använder många egna funktioner och vill slippa prefixet kan du lägga dem i ett Excel-tillägg i stället:

  1. Skapa en ny arbetsbok och lägg in dina funktioner i en modul.
  2. Välj Arkiv > Spara som och filformatet Excel-tillägg (*.xlam).
  3. Aktivera tillägget via Arkiv > Alternativ > Tillägg. Välj Excel-tillägg i listan Hantera, klicka på Gå till och bocka för ditt tillägg.

När tillägget är aktiverat skriver du bara =MedMoms(B2;C2). Ett tillägg är också lättare att dela med kollegor, eftersom de installerar samma .xlam-fil på sin dator. Delningsproblemet finns ändå kvar: den som öppnar arbetsboken behöver ha tillägget installerat för att formlerna ska fungera.

Spara ändringar

Personal Macro Workbook sparas på samma sätt som andra arbetsböcker, med en skillnad: den är dold, så du ser den sällan i Excel-fönstret. Därför är det lätt att glömma att den innehåller osparade ändringar.

Spara från VBA-editorn

Har du ändrat eller lagt till kod i VBA-editorn sparar du enklast direkt där:

  1. Markera VBAProject (PERSONAL.XLSB) i projektfönstret, eller klicka i en av dess moduler.
  2. Klicka på Spara i verktygsfältet eller tryck Ctrl+S.

Kontrollera att det verkligen är PERSONAL.XLSB som är markerad. Är en annan arbetsbok markerad sparas den i stället, och ändringarna i din personliga makroarbetsbok ligger kvar osparade.

Spara när du stänger Excel

Om du inte har sparat innan du avslutar frågar Excel om du vill spara ändringarna i PERSONAL.XLSB. Det händer till exempel när du har spelat in ett nytt makro med Lagra makro i: Personlig makroarbetsbok. Svara Spara. Det är nästan alltid rätt val.

Väljer du Spara inte försvinner allt du har ändrat sedan filen senast sparades. Det gäller både redigerad kod och makron som du har spelat in under sessionen. Ett nyinspelat makro finns bara i minnet tills filen sparas, så ett felklick i dialogrutan raderar det.

Tips: Spara i VBA-editorn med Ctrl+S direkt efter större ändringar. Då riskerar du inte att förlora något om Excel kraschar eller om du klickar fel när du avslutar.

Säkerhetskopiera, flytta och återställa

Allt du lägger i din personliga makroarbetsbok finns i en enda fil, PERSONAL.XLSB. Det är praktiskt, men det betyder också att en skadad eller borttappad fil tar alla dina makron med sig. Ta därför för vana att säkerhetskopiera den, särskilt när du har lagt till eller ändrat något du inte vill skriva om.

Säkerhetskopiera filen

Det enklaste är att kopiera hela filen från XLSTART-mappen. Se avsnittet om var filen sparas om du är osäker på sökvägen.

  1. Stäng Excel helt. Filen är öppen så länge Excel körs, och då kan du inte vara säker på att kopian innehåller de senaste ändringarna.
  2. Öppna Utforskaren och skriv %appdata%\Microsoft\Excel\XLSTART i adressfältet.
  3. Kopiera PERSONAL.XLSB till en säker plats, till exempel en molnmapp, en nätverksenhet eller ett USB-minne.
  4. Lägg gärna till ett datum i namnet på kopian, till exempel PERSONAL_2024-05-01.XLSB, så att du kan gå tillbaka till en tidigare version.

Byt inte namn på originalet i XLSTART. Excel letar efter just namnet PERSONAL.XLSB.

Flytta till en ny dator

För att ta med dina makron till en annan dator gör du samma sak i omvänd ordning:

  1. Stäng Excel på den nya datorn.
  2. Öppna XLSTART-mappen där. Om mappen saknas kan du skapa den eller kontrollera sökvägen med Application.StartupPath.
  3. Klistra in din PERSONAL.XLSB i mappen.
  4. Starta Excel och kontrollera att makrona syns i dialogrutan Makro (Alt+F8).

Var försiktig om det redan finns en PERSONAL.XLSB på den nya datorn. Kopierar du över den skriver du över de makron som redan ligger där. I så fall är det bättre att flytta enskilda moduler, som beskrivs nedan.

Exportera och importera enskilda moduler

Du behöver inte alltid flytta hela arbetsboken. I VBA-editorn kan du spara en modul som en vanlig textfil med filändelsen .bas. Det fungerar bra för att dela ett makro med en kollega, slå ihop två personliga makroarbetsböcker eller spara dina bästa makron separat.

  1. Öppna VBA-editorn med Alt+F11.
  2. Högerklicka på modulen under VBAProject (PERSONAL.XLSB) > Moduler och välj Exportera fil.
  3. Välj en mapp och spara. Modulen blir en .bas-fil.

För att läsa in modulen igen högerklickar du på projektet där den ska ligga och väljer Importera fil. Därefter sparar du PERSONAL.XLSB. Eftersom .bas-filer är ren text kan du också öppna dem i Anteckningar och se koden utan att starta Excel.

Börja om från början

Ibland är det enklast att börja om, till exempel om filen har blivit skadad, är full av gamla inspelningar eller får Excel att krångla vid start. Gör så här:

  1. Stäng Excel.
  2. Gå till XLSTART-mappen.
  3. Byt namn på filen till exempelvis PERSONAL_gammal.XLSB. Du kan också flytta den någon annanstans. Ta inte bort den direkt, så att du kan hämta makron ur den senare.
  4. Starta Excel. Den personliga makroarbetsboken laddas inte längre.

Nästa gång du spelar in ett makro och väljer Personlig makroarbetsbok skapar Excel en ny, tom fil. Vill du ha tillbaka enstaka makron från den gamla filen öppnar du den som en vanlig arbetsbok, exporterar modulerna och importerar dem i den nya.

Om ett makro slutar fungera efter en flytt eller återställning, kan du gå igenom en checklista för felsökning innan du börjar ändra i koden.

Vanliga problem och lösningar

Personal Macro Workbook fungerar oftast utan att du behöver tänka på den. När något strular beror det nästan alltid på ett av tre problem: filen laddas inte vid start, makrona blockeras av säkerhetsinställningarna eller arbetsboken visas i stället för att vara dold. Här är vad du kan kontrollera i varje fall.

Arbetsboken öppnas inte när Excel startar

Om dina makron saknas i dialogrutan Makro (Alt+F8) och VBAProject (PERSONAL.XLSB) inte syns i VBA-editorn, har Excel inte laddat filen. Gå igenom följande:

  1. Kontrollera Inaktiverade objekt. Om Excel har kraschat medan PERSONAL.XLSB var öppen kan filen ha stängts av automatiskt. Gå till Arkiv > Alternativ > Tillägg. Längst ned finns listrutan Hantera, där COM-tillägg är förvalt. Välj Inaktiverade objekt och klicka på Kör. Om PERSONAL.XLSB finns i listan markerar du den och klickar på Aktivera. Starta sedan om Excel.
  2. Kontrollera att filen ligger i rätt mapp. Excel laddar bara filer som ligger i startmappen. Skriv ?Application.StartupPath i fönstret Omedelbart i VBA-editorn och jämför sökvägen med den plats där filen faktiskt ligger. Om filen har flyttats, till exempel av en synkroniseringstjänst eller vid byte av dator, kopierar du tillbaka den till den mappen.
  3. Kontrollera filnamnet. Filen ska heta exakt PERSONAL.XLSB. En kopia med namn som PERSONAL (2).XLSB eller en fil som sparats som .xlsx laddas inte som personlig makroarbetsbok. Ett .xlsx-format kan dessutom inte innehålla makron alls.
  4. Kontrollera alternativ startmapp. Under Arkiv > Alternativ > Avancerat, i avsnittet Allmänt, finns fältet Vid start, öppna alla filer i. Det kan peka på en annan mapp än du tror, särskilt på en dator som har konfigurerats av någon annan.
  5. Felsäkert läge. Om Excel startas i felsäkert läge, till exempel med Ctrl nedtryckt eller med växeln /safe, hoppar programmet över XLSTART. Starta Excel på vanligt sätt och kontrollera igen.

Makrona blockeras av säkerhetsinställningarna

Ibland laddas arbetsboken men makrona körs inte, eller så visas ett meddelande om att makron har inaktiverats. XLSTART-mappen är som standard en betrodd plats, så makron i PERSONAL.XLSB brukar köras även när andra makron blockeras. Om det inte fungerar kan du kontrollera två saker under Arkiv > Alternativ > Säkerhetscenter > Inställningar för Säkerhetscenter:

  • Betrodda platser: Kontrollera att sökvägen till XLSTART finns med i listan. Om den har tagits bort kan du lägga till den igen med Lägg till ny plats.
  • Inställningar för makro: Med Inaktivera alla makron utan meddelande körs bara makron från betrodda platser. Om XLSTART inte är betrodd stoppas alltså även dina egna makron, utan någon varning.

På jobbdatorer styrs makrosäkerheten ofta av IT-avdelningen via gruppolicyer. Om inställningarna är gråa och inte går att ändra behöver du kontakta IT-avdelningen. Försök inte kringgå spärren.

Arbetsboken öppnas synligt varje gång

Om ett tomt fönster med namnet PERSONAL.XLSB dyker upp varje gång du startar Excel, sparades filen medan den var synlig. Lösningen är enkel. Aktivera fönstret PERSONAL.XLSB, välj Visa > Dölj, stäng Excel och svara Spara när du får frågan om ändringar i den personliga makroarbetsboken. Nästa gång Excel startar är den dold igen.

Makrot påverkar fel arbetsbok

Ett makro kan köras utan felmeddelande men ändå inte göra något synligt, eller skriva data på oväntade ställen. Då refererar koden troligen till ThisWorkbook, som alltid pekar på PERSONAL.XLSB. Byt till ActiveWorkbook eller ActiveSheet, så arbetar makrot med den arbetsbok du faktiskt har framför dig.

Sammanfattning

Personal Macro Workbook är din egen verktygslåda i Excel. Den öppnas dold varje gång Excel startar, så de makron du sparar där fungerar i alla arbetsböcker du har öppna. De viktigaste stegen i korthet:

  1. Skapa filen genom att spela in ett makro och välja Lagra makro i: Personlig makroarbetsbok. Spara när Excel frågar vid avslut.
  2. Redigera och lägg till makron i VBA-editorn med Alt+F11 under VBAProject (PERSONAL.XLSB). Skriv koden med ActiveWorkbook och ActiveSheet så att den arbetar mot rätt fil.
  3. Kör makrona via Alt+F8, med kortkommandon eller med knappar i verktygsfältet Snabbåtkomst.
  4. Spara alltid ändringarna. Svarar du Spara inte när Excel stänger försvinner även nyinspelade makron.
  5. Låt arbetsboken vara dold. Har du tagit fram den med Visa > Ta fram döljer du den igen med Visa > Dölj.

Glöm inte att regelbundet säkerhetskopiera PERSONAL.XLSB från mappen XLSTART, gärna efter varje större ändring. Det tar bara några sekunder och skyddar makron som annars kan ha tagit timmar att bygga upp.

💡 Ytterligare läsning
Om makrot du sparar i arbetsboken inte beter sig som förväntat finns en checklista för felsökning att följa.