Artikler om: Makroer (VBA)

Sådan kan du få Word til at benytte en anden skabelon end Normal.dotm, når du taster Ctrl+N for at oprette et nyt dokument

I Word er Ctrl+N genvej til at oprette et nyt, tomt dokument. Som standard baserer Word et sådant dokument på skabelonen Normal.dotm (Normal.dot, hvis du bruger Word 2003 eller tidligere version).

Ved hjælp af en makro kan du få Word til at benytte en anden skabelon i stedet for Normal.dotm når du taster Ctrl+N.

Word giver mulighed for at overskrive en indbygget funktion ved at give en makro samme navn, som den pågældende funktion benytter. I dette tilfælde er navnet FileNewDefault. Du skal altså lave en makro med navnet FileNewDefault og i den makro indbygge kode, der får Word til at foretage sig det, du ønsker skal ske, når du taster Ctrl+N.

Nedenfor finder du en makro, som du kan bruge. Du skal, som anvist i kommentaren i makroen, indsætte den præcise sti til den skabelon, ine dokumenter skal baseres på..

Du kan kopiere makroen og indsætte den i din Normal.dot(m) via makroeditoren. Så vil makroen blive kaldt, hver gang du taster Ctrl+N.

Makro som overskriver indbygget funktion

————MAKRO START————

Public Sub FileNewDefault()

‘Mellem citationstegnene nedenfor skal du indsætte den præcise sti til den skabelon, du vil benytte i stedet for Normal.dot(m)

Const strTemplateFullName As String = “[Her skal du indsætte den præcises sti til din skabelon]”

‘Opret dokument baseret på skabelonen
Documents.Add strTemplateFullName

End Sub

————MAKRO SLUT————

Alternative muligheder

I stedet for at overskrive den indbyggede FileNewDefault, kan du give makroen ovenfor et andet navn. Du kan så knytte en tastaturgenvej til den makro, du har lavet. Hvis du benytter Ctrl+N som tastaturgenvej, vil du få samme effekt som beskrevet ovenfor. Du kan også vælge at benytte en anden tastaturgenvej, så du forsat har en hurtig mulighed for at oprette et tomt dokument – det kan være praktisk i nogle situationer.

Du kan også vælge at føje din makro til værktøjslinjen Hurtig adgang (QAT), så du har en synlig adgang til kommandoen. Se Sådan kan du føje en Word-kommando til værktøjslinjen Hurtig adgang (QAT). I pkt. 3 skal du vælge ”Makroer” i stedet for ”Alle kommandoer”. Så kan du finde din makro i listen, der vises.

Hvis du har brug for hjælp til at installere en makro

Se:
What do I do with macros sent to me by other newsgroup readers to help me out?

Links til relaterede artikler

Du finder flere artikler under kategorien Skabeloner til højre.

Om skabelonen Normal.dot eller Normal.dotm
Word-skabeloner og Word-dokumenter – de forskellige filtyper
Sådan kan du oprette en ny skabelon, som er baseret på en helt ”fabriksny” Normal.dot
/ Normal.dotm

Hvad arver et Word-dokument fra den tilknyttede skabelon?

Sådan kan du lave skærmtips i Microsoft Word

På Websites ser man tit skærmtips (screen tips), dvs. små bokse med information, som vises, når man holder musen over tekst. Mange vil gerne kunne lave sådanne skærmtips i Word. Det kan f.eks. være praktisk at kunne vise definitioner på termer på den måde. En anden mulighed ville være at skrive forklaringer til felter i formularer.

Word har ikke umiddelbart funktionalitet, som er beregnet til at lave sådanne skærmtips, men du kan udnytte hyperlinks til at lave skærmtips. Du kan manuelt oprette sådanne skærmtip hyperlinks ved at følge proceduren sidst i denne artikel. Hvis du skal lave flere sådanne skærmtips, er der dog en lettere løsning:

Gratis makroer som lynhurtigt kan lave skærmtips

Jeg har lavet nogle makroer, som gør det lynhurtigt både at lave sådanne skærmtips og at fjerne dem igen, hvis der skulle blive behov for det. Jeg har stillet makroerne til rådighed på min hjemmeside, www.thedoctools.com. Du kan downloade makroerne fra siden med overskriften ”Macro – Add screen tips to text in Microsoft Word”. Det fulde link til siden er vist nedenfor. På siden finder du også (engelsk) forklaring på, hvordan det hele virker:

http://www.thedoctools.com/index.php?show=mt_screen_tips_in_word

Skærmtips med forklaring

Skærmtips med forklaring

Sådan kan du manuelt lave skærmtips

  1. Marker den tekst, der skal have et skærmtip tilknyttet.
  2. Åbn dialogboksen Bogmærke (Bookmark). Indtast et navn på bogmærket og klik Tilføj (Add).
  3. Åbn dialogboksen Indsæt hyperlink (Insert Hyperlink) og gennemfør de følgende trin via den dialogboks:
  4. Klik på knappen Skærmtip (ScreenTip) i dialogboksen. Indtast den ønskede skærmtip-tekst og klik OK.
  5. Klik på En placering i dette dokument (Place in This Document). Nu skifter indholdet i listen i dialogboksen, og du kan se navnene på det/de bogmærker, der findes i dokumentet.
  6. Klik på det bogmærkenavn, du lige har oprettet.
  7. Tjek at feltet Tekst, der skal vises
    (Text to display) viser den tekst, der skal stå i selve dokumentet (det bør ske
    automatisk, da det er lig med den markerede tekst).
  8. Klik OK.

Sådan finder du dialogboksen Bogmærke

Word 2003 og tidligere versioner:
Indsæt > Bogmærke (Insert > Bookmark)

Word 2007 og 2010:
fanen Indsæt > Bogmærke (Insert > Bookmark)

Sådan finder du dialogboksen Hyperlink

Word 2003 og tidligere versioner:
Indsæt > Hyperlink (Insert > Hyperlink)

Word 2007 og 2010:
fanen Indsæt > Hyperlink (Insert > Hyperlink)

Værktøjslinje mangler i Word 2007 eller Word 2010 – sådan kan du løse problemet

Hvis du bruger Word 2007 eller 2010 ved du, at brugergrænsefladen ikke længere indeholder
værktøjslinjer (toolbars) som i tidligere versioner af Word – de er i stedet afløst af Båndet (Ribbon) med faner (tabs).

Det betyder dog heldigvis ikke, at du ikke længere kan bruge de værktøjslinjer, du eller andre selv har oprettet i tidligere versioner af Word. Hvis du i Word bruger en skabelon (template) med en eller flere brugerdefinerede værktøjslinjer, vil disse værktøjslinjer normalt automatisk dukke op på fanen Tilføjelsesprogrammer (Add-ins) i Word 2007/2010, hvis en af følgende forudsætninger er opfyldt:

  • du har åbnet selve skabelonen
  • skabelonen er knyttet til dit dokument
  • du har installeret skabelonen som et tilføjelsesprogram (add-in).

Jeg har i nogle tilfælde set, at værktøjslinjer ikke dukker op på fanen Tilføjelsesprogrammer som ventet. Det kan være udløst af forskellige ting. Jeg har på www.thedoctools.com skrevet en artikel om, hvordan du kan trylle en sådan manglende værktøjslinje frem igen. Artiklen har overskriften ”Troubleshooting – toolbar missing on Add-Ins tab”” og findes her:

http://www.thedoctools.com/index.php?show=mt_troubleshoot_toolbar_missing_2007

Sådan kan du ændre almindelig tekst til Word-felter – makro klar til brug

Jeg har i en del sammenhænge skrevet om felter i Word. Et felt indeholder instruktioner til Word om, hvad programmet skal gøre. Almindeligt brugte felter er PAGE, som bruges til sidetal, DATE, CREATEDATE m.fl., som bruges til dato/tid, TOC som bruges til indholdsfortegnelser og MERGEFIELD, som bruges til brevfletning.

I Word 2003 og tidligere versioner kan felter indsættes via menuen Indsæt > Felt (Insert > Field). I Word 2007 og 2010 kan du indsætte felter via fanen Insert > gruppen Tekst > Hurtige dele > Felt (Insert > gruppen Text > Quick Parts > Field).

Alle felter kan vises på to forskellige måder: du kan se resultatet eller du kan se feltkoden, dvs. de bagvedliggende instruktioner til Word. Du kan veksle mellem at få vist resultat og feltkoder ved at taste Alt+F9.

Felter er kendetegnet ved, at feltkoden er omkranset af et sæt klammer, som ikke kan indtastes som almindelige tegn. Hvis du manuelt skriver felter, skal feltklammerne laves ved at taste Ctrl+F9.

Se eksemplerne på feltkoder sidst i artiklen.

Der kan laves meget komplekse konstruktioner af felter, hvor der er indbygget parametre (switches), betingelser, felter inde i felter osv. Hvis du leder efter en feltkonstruktion på internettet til at løse en given opgave, vil du tit kunne finde noget, som kan hjælpe dig videre. Der er dog lige den ulempe, at en sådan konstruktion altid være angivet som almindelig tekst og ikke brugbare felter, da det kun er Word, som kan håndtere de rigtige felter. Hvis du nu finder en indviklet feltkonstruktion, som lige præcis kan løse det, du har brug for, kan du derfor ikke bare kopiere koden fra internettet og indsætte den i dit Word-dokument, da feltklammerne jo så er almindeligt ”tuborgklammer” og ikke rigtige feltklammer.

Det kan godt være temmelig indviklet at få opbygget felterne rigtigt. Men der er nyttig hjælp at hente. Via linket nedenfor kan du finde artiklen ”Export field constructions as text”. Her finder du en makro lavet af MVP Paul Edstein. Makroen kan på et øjeblik konvertere almindelig tekst til rigtige felter – du kan frit kopiere den og bruge makroen, hver gang du skal konvertere almindelig tekst til rigtige felter. Du finder den nødvendige instruktion på siden:

http://www.gmayor.com/export_field.htm#TextToField

Eksempler på feltkonstruktioner

Enkel feltkonstruktion Sidetal:
{ Page }
 
 Antal sider:
{ NumPages }
Lidt mere kompleks feltkonstruktion med parametre (switches) Dato:
{ CreateDate \@ ”d. MMMM yyyy” }
 
 Indholdsfortegnelse:
{ TOC \o ”1-4” \h \z \u }
Kompleks feltkonstruktion med betingelser mm.
 
Feltkonstruktioner kan blive langt mere komplekse og omfattende end vist i dette eksempel.
Feltkonstruktionen nedenfor styrer en række felter af typen
DocProperty. Sammenlagt sørger feltkonstruktionen for, at den korrekte adresseinformation vises på basis af værdien af en række brugerdefinerede dokumentegenskaber og tilknyttede betingelser: En sådan konstruktion kan være ret besværlig at opbygge fejlfrit:
 
{ DocProperty “CompanyName1″ }
{ DocProperty “Address1″ }{IF { DocProperty “Address2″}<> “” ” •
{ DocProperty “Address2″ }” }{IF { DocProperty “Address3″}<> “” ”
{ DocProperty “Address3″ }” }{IF { DocProperty “ZIP” }<> “” ”
{ DocProperty “ZIP” }• ” }{ DocProperty “City” }{IF { DocProperty “Country” }<> “” ” • { DocProperty “Country” }” }

 

MZ-Tools – nyttigt, gratis hjælpeværktøj til VBA, hvis du laver makroer i Word eller andre Office-programmer

Hvis du selv programmerer mange makroer, og hvis du ikke allerede kender add-in’en MZ-Tools, vil jeg anbefale, at du ser nærmere på programmet og fluks installerer det.

MZ-Tools findes som en gratis add-in. Der er flere varianter. Det er versionen til brug for VBA, du skal hente, hvis du laver makroer i VBA.

MZ-Tools føjer en lang række hjælpeværktøjer til Visual Basic Editor (VBE) – editoren, som bruges til makroprogrammering. Værktøjerne hjælper alt i alt med at spare tid og med at sikre konsistens i koden, der laves.

Der findes rigtig mange nyttige funktioner deri. Som eksempel på funktionalitet, som jeg har stor nytte af, kan jeg nævne muligheden for at gemme code templates, dvs. større eller mindre stykker kode, som man let kan indsætte i makroer efter behov. Det svarer i princippet til autotekst-funktionaliteten, som kan bruges i Word-dokumenter.

Når jeg skifter computer, bliver jeg altid hurtigt mindet om, hvor stor nytte jeg har af MZ-Tools, og jeg får det hurtigt installeret på den nye PC.

Du kan læse mere om MZ-Tools og downloade add-in’en her:
http://www.mztools.com/v3/download.aspx

Hold afsnit sammen med næste, hvis afsnittet slutter med kolon – makro klar til brug

Som led i formateringen af dokumenter bør du tage højde for, at ombrydningen af sider (engelsk: pagination) bliver i orden. Der bør f.eks. aldrig stå en overskrift som det sidste afsnit på en side. Når jeg skriver i Word, sørger jeg normalt også for, at alle afsnit, der slutter med et kolon, står på samme side som det efterfølgende afsnit.

I dialogboksen Afsnit (Paragraph) finder på fanen Linje- og sideskift (Line and Page Breaks) flere indstillinger, som er med til at styre sideombrydningen. En af disse indstillinger er Hold sammen med næste (Keep with next). Se illustrationen nedenfor.

Hold afsnit sammen med næste afsnit.

Hold afsnit sammen med næste afsnit.

 

Hvis du slår Hold sammen med næste til for et afsnit, vil Word tvinge afsnittet til at følge med det næste afsnit, så de to afsnit er på samme side – hvis det sidste af de to afsnit rykker til næste side, følger det første med. For overskrifter kan du let styre det ved at sørge for, at indstillingen Hold sammen med næste er slået til i selve definitionen af overskriftstypografien. Så vil indstillingen automatisk virke for alle afsnit skrevet med den pågældende typografi. Som standard er indstillingen da også slået til i typografierne Overskrift 1-9 (Heading 1-9).

Hvis du har vist formateringsmærker (Ctrl+Shift+8), kan du se en lille sort firkant i margenen ud for et afsnit, hvis Hold sammen med næste er slået til. Det samme gælder, hvis Hold linjer sammen (Keep lines together), Sideskift før (Page break before) eller Skjul linjenumre (Suppress line numbers) er slået til.

Hold sammen med næste kan også bruges på afsnit, der slutter med kolon, så sådanne afsnit automatisk holdes sammen med næste afsnit. Da du kan have brugt typografier, som ikke generelt skal holdes sammen med næste, dur det ikke her at sætte indstillingen på selve typografien. Du kan i stedet manuelt sætte indstillingen på kolon-afsnittene enkeltvis.

Der er dog en lettere metode. Jeg har lavet en makro (programmering), som gør arbejdet for dig på et øjeblik, uanset hvor omfattende dit dokument er. Du finder makroen på følgende side under min hjemmeside, www.thedoctools.com:

http://www.thedoctools.com/index.php?show=mt_keep_with_next_if_colon_at_end_of_paragraph&lang=us

Eksempel – behandling af 10.000 afsnit på mindre end 3 sekunder

Jeg lavede lige en lille test. Jeg lavede et dokument på ca. 6000 sider med næsten 10.000 afsnit. Det tog mindre end 3 sekunder for makroen at gennemgå hele dokumentet og sætte indstillingen på 3.900 afsnit, der sluttede med kolon. Dette er blot et eksempel på, hvor store tidsbesparelser der kan være ved at tænke i automatisering i forhold til opgaver i Word.

Links til relaterede artikler

Lær at anvende typografier – DEL I
Lær at anvende typografier – DEL II
Tips om formateringsmærker – de sære prikker, pile og ¶-tegn, du måske somme tider ser
Oversigt over formateringsmærker i Word
Word tips på min hjemmeside, www.thedoctools.com
Makroer på min hjemmeside, www.thedoctools.com

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.

Hvorkan 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 newsgroup readers to help me out?
Distributing macros to other users

Andre links

Makroer på min hjemmeside, www.thedoctools.com

Makro – udskriv uden advarsel om, at margener er uden for printerens

De fleste printere kan ikke skrive helt til kant på papiret. Hvis du forsøger at udskrive et dokument med indhold, der er uden for printerens udskriftsområde, vil der blive vist en advarsel, som fortæller dig, at der er et problem. Du kan vælge at ignorere problemet eller du kan annullere udskrivningen for at rette margenerne i dokumentet.

Nedenfor ser du den advarsel, der vises. Denne version er fra Word 2007. Knappen Vis Hjælp findes ikke i tidligere versioner:

Advarsel om udskrift uden for margener

Advarsel om udskrift uden for margener

I Word 2010 er der desuden en knap, Juster, som åbner dialogboksen Sideopsætning, hvor du kan ændre indstillingerne.

Der kan være situationer, hvor du ønsker at hindre advarslen i at blive vist, så dit dokument kan udskrives uden advarsler. Ved hjælp af en makro kan det lade sig gøre at undertrykke advarslen, mens dit dokument udskrives. På min hjemmeside finder du to varianter af makroer, som kan bruges til det formål. Se Macro – print without margins warning.

Se artiklen Hvor tæt kan din printer skrive til kant af papiret? – sådan finder du let ud af det, hvis du vil finde din printers grænser.

Word 2007 – sådan kan du slå automatisk fuldførelse af dato fra eller til

Hvis du har brugt Word 2003 og/eller tidligere versioner, kender du sikkert funktionen Autofuldførelse (AutoComplete). Denne funktion bevirker, at der vises skærmtips, hvis man skriver de første bogstaver af navnet på en autotekst eller tekst, der af Word fortolkes som starten af en dato. Autoteksten eller datoen kan da indsættes ved at taste Enter. Dette forudsætter dog, indstillingen Vis tip om autofuldførelse (Funktioner > Indstillinger for Autokorrektur > fanen Autotekst) er slået til.

I Word 2007 findes funktionen Autoudførelse kun for datoer. Hvis funktionen er aktiveret, og hvis du skriver noget, der af Word fortolkes som starten på en dato, vil et skærmtip foreslå en dato, og du kan indsætte den foreslåede tekst ved at taste Enter. Det virker sådan:

  1. Skriv starten af en dato.
Skærmtip til autoudførelse vises

Skærmtip til autoudførelse vises

  1. Tast Enter for at få indsat den foreslåede dato, hvis et skærmtip vises. Skriv blot videre, hvis du ikke vil indsætte den foreslåede dato.
Autoudførelse udført

Autoudførelse udført

I Word 2007 skal du bruge en makro for at slå Autoudførelse fra eller til

Måske vil du gerne slippe for disse skærmtip – eller måske vises de ikke, selv om du ønsker at få dem vist. I Word 2007 findes der af uransagelige årsager ikke en funktion under Word-indstillinger til at slå Autofuldførelse til/fra. Du har brug for en makro. Gør sådan:

  1. Tast Alt+F11 for at åbne Visual Basic Editor (VBE – vinduet hvor man kan arbejde med makroer).
  2. Tast Ctrl+G for at aktivere Immediate-vinduet (nederst i VBE-vinduet).
  3. Hvis du ønsker at slå Autofuldførelse fra: indtast i Immediate-vinduet følgende kodelinje og tast Enter:

Application.DisplayAutoCompleteTips = False

Kodelinje indsat i Immediate-vinduet

Kodelinje indsat i Immediate-vinduet

Hvis du ønsker at slå Autofuldførelse til, skal du i stedet for ”False” skrive ”True”.

  1. Luk VBE-vinduet, når du er færdig.

Word 2010 – indstilling for autofuldførelse er indført igen

Muligheder for at slå visning af autoudførelse til/fra er igen indført i Word 2010. Du finder indstillingen her:

Filer > Indstillinger > kategorien Avanceret > Vis tip om autofuldførelse (File > Options > kategorien Advanced > Show AutoComplete suggestions. Se illustrationen nedenfor:

Word 2010 - indstilling for visning af autoudførelse findes nu igen

Word 2010 - indstilling for visning af autoudførelse findes nu igen

Sådan kan du kopiere tekst og bevare nummerering når du indsætter teksten et andet sted

Du er måske tit i den situation, at du har brug for at kopiere en del af et Word-dokument til et andet sted, f.eks. til en e-mail.

Hvis dokumentet indeholder tekst med automatisk nummerering som f.eks. nummererede overskrifter, kan det give problemer, hvis den del af dokumentet, du ønsker at kopiere, ikke indeholder det/de første nummererede afsnit. I det tilfælde vil numrene i det originale dokument og i den tekst, du indsætter, ikke være identiske.

Jeg har lavet en makro, som du kan bruge til at løse det problem. Du finder makroen og den nødvendige forklaring på min hjemmeside via nedenstående link: