Lidt om makroer og om at gøre makroer tilgængelige for andre

Denne artikel tager udgangspunkt i artiklen Word 2007 – sådan kan du slå Autoudførelse af dato fra eller til.

I artiklen forklarede jeg, hvordan man kan indtaste en linje kode i Immediate-vinduet i VBE-vinduet (makro-vinduet). Når man taster noget ind i Immediate-vinduet, bliver det ikke gemt som en makro. Koden bliver blot udført med det samme. Det er en praktisk og hurtig fremgangsmåde, hvis man skal udføre noget en enkelt gang. Hvis man derimod har brug for at udføre det samme af og til, eller hvis man ønsker at dele koden med flere andre, kan man i stedet gemme koden i en rigtig makro.

Koden i ovennævnte artikel bestod af en enkelt linje:

Application.DisplayAutoCompleteTips = False

En ”hel” makro, som udfører det samme, kan se sådan ud:

Makro – version 1

Sub SkaermtipSkjul_Dato_2007()
‘Hindrer visning af skærmtip ved indsættelse af dato
Application.DisplayAutoCompleteTips = False
End Sub

Makro – version 2

Men i virkeligheden er det måske mere nyttigt, hvis makroen virker sådan, at den slår skærmtips til, hvis indstillingen er slået fra og omvendt. Så kunne makroen f.eks. se sådan ud:

‘Slår visning af skærmtip ved indsættelse af dato til/fra
If Application.DisplayAutoCompleteTips = True Then
Application.DisplayAutoCompleteTips = False
MsgBox “Skærmtip for dato er nu slået FRA.”
Else
Application.DisplayAutoCompleteTips = True
MsgBox “Skærmtip for dato er nu slået TIL.”
End If
End Sub

Denne version af makroen viser en besked om indstillingen:

Meddelelse fra makro
Meddelelse fra makro

 

Meddelelse fra makro
Meddelelse fra makro

Makro – version 3

Hvis du ikke synes, det er nødvendigt med meddelelsen, kan makroen være så kort som her:

Sub Skaermtip_SkiftIndstilling_Dato_2007_2()
‘Slår visning af skærmtip ved indsættelse af dato til/fra
Application.DisplayAutoCompleteTips = Not Application.DisplayAutoCompleteTips
End Sub

Her på bloggen mister makro-koden de indryk, der er med til at gøre sammenhængen i koden overskuelig. Du kan hente makroerne med en bedre opstilling via linket nedenfor:

Makro – hent kode til de viste makroer

Brug beskrivende makro-navne

SkaermtipSkjul_Dato_2007 og Skaermtip_SkiftIndstilling_Dato_2007 er navne på makroerne. Det er altid en fordel af lave beskrivende navne, så man ud fra navnet alene kan finde makroen. Jeg laver stort set altid selv makronavne og kommentarer i makroer på engelsk – selve makro-koden er jo også på engelsk. Her har jeg konstrueret danske navn, men jeg har valgt at omskrive ”æ” til ”ae”, selv om man i VBA godt kan benytte æ, ø og å. Hvis man benytter sig af forskellige andre programmer i relation til VBA, kan man nemlig komme ud for, at æ, ø og å i makronavne giver problemer.

Skriv kommentarer i makroer til hjælp for dig selv og andre

Man kan i en makro skrive kommentarer ved at sætte en apostrof foran teksten (2. linje i makroerne ovenfor). Det var måske ikke nødvendigt med en kommentar her, men i omfattende og indviklede makroer er det en stor hjælp med gode kommentarer. Det gælder både, hvis andre skal kunne gennemskue, hvad der foregår i koden og hvis man selv efter lang tid har brug for at vende tilbage til koden for at foretage ændringer ol.

Hvor kan makroerne ovenfor installeres

Jeg vil ikke i denne artikel gå i detaljer med installation af makroer, men kun give et par korte og generelle anvisninger:

Du kan kopiere makro-koden fra den ønskede version ovenfor (hver makro starter med Sub og slutter med End Sub). Hvis det kun er dig selv, der skal bruge makroen, kan du indsætte makroen i din Normal.dotm (husk at makroerne ovenfor er til beregnet til Word 2007). Hvis makroen skal bruges af mange, kan du indsætte makroen i en anden Word 2007-skabelon af typen .dotm. En sådan skabelon kan placeres i hver enkelt brugers Word-Start-mappe. Så vil alle makroer deri stå til rådighed for alle dokumenter.

Links til et par engelske artikler, som forklarer mere om dette:

What do I do with macros sent to me by other users to help me out?
Distributing macros to other users

Andre links

Makroer på mit website, www.thedoctools.com

Tags: , , , ,