Först publicerad: 2009-06-05

Köra makro med automatik vid start av Excel

Med hjälp av en metod som heter Workbook_Open kan du få vissa makros att köras med automatik varje gång Excel startas. Kan vara användbart till t.ex. anpassade inställningar som du alltid vill applicera. Ett bra exempel på detta är justeringar av Excels färgpalett som i sitt grundutförande har lite för starka färger i mitt tycke (denna har dock blivit bättre i senare Excelversioner).

För att automatiskt ladda in egenhändigt definierade färger så använder jag mig av följande automatiska makrokörning.

Workbook_Open() i din Personal.xlsb

Personal Macro Workbook (Personal.xlsb) är en mycket användbar bok som ju öppnas så fort programmet Excel startas (under förutsättning att du tidigare skapat en). Personal.xlsb är en helt vanlig Excelbok, men den hålls gömd. Du kan läsa om hur du skapar den här boken i artikeln om Personal Macro Workbook – introduktion.

personalxls-vba-editor

  • Skapa en Personal Macro Workbook om du inte redan har en.
  • Öppna VBA-editorn (Alt + F11). Här finner du de objekt (”arbetsblad”) som ingår i Personal.xlsb.
  • Dubbelklicka på ThisWorkbook, vilket är det objekt där vi skall lägga koden till vårt automatiska makro. Till höger får du då upp den skrivyta där du lägger in själva makrokoden.
  • Välj ”Workbook” och ”Open” i rullgardingsmenyerna. Se bifogad bild. Om du istället klistrar in koden nedan kommer dessa att ändras korrekt med automatik.
  • I exemplet nedan justerar jag 4 stycken färger i och med att jag ger dem en ljusare nyans.
Private Sub Workbook_Open()
 
'justerar färgpaletten
ActiveWorkbook.Colors(15) = RGB(234, 234, 234)
ActiveWorkbook.Colors(36) = RGB(255, 255, 201)
ActiveWorkbook.Colors(39) = RGB(234, 213, 255)
ActiveWorkbook.Colors(55) = RGB(166, 183, 236)
 
End Sub

Obs: spar ändringar i din Personal Macro Workbook

Nu är det nästan klart. Det sista momentet är att spara ändringarna i din Personal.xls. Stäng ned hela programmet Excel så kommer du att få den här frågan, som du svarar jakande på:

Obegränsat användningsområde

I det här enkla exemplet så justerar vi Excels färgpalett med automatik varje gång som Excel öppnas. Man kan lätt tänka sig betydligt mer avancerade tillämpningar av Workbook_Open() i din Personal.xls, t ex automatisk import av gårdagens säljsiffror så fort du slår på din Pc och öppnar Excel på morgonen.