Indholdsfortegnelse
Trin-for-trin vejledning for begyndere i at optage, vise, køre og gemme en makro. Du lærer også noget om, hvordan makroer fungerer i Excel.
Makroer er en fantastisk måde at automatisere gentagne opgaver i Excel på. Hvis du gør de samme ting igen og igen, kan du registrere dine handlinger som en makro og tildele en tastaturgenvej til den. Nu kan du få alle de registrerede handlinger udført automatisk med et enkelt tastetryk!
Sådan optager du en makro i Excel
Ligesom andre VBA-værktøjer ligger Excel-makroer på Udvikler fanen, som er skjult som standard. Så det første, du skal gøre, er at tilføje fanen Developer-fanen til dit Excel-bånd.
For at optage en makro i Excel skal du udføre disse trin:
- På den Udvikler under fanen, i fanen Kode gruppe, skal du klikke på Optag makro knap.
Alternativt kan du klikke på Optag makro på venstre side af Status bar:
Hvis du foretrækker at arbejde med tastaturet i stedet for musen, skal du trykke på følgende tasterækkefølge Alt , L , R (en efter en, ikke alle tasterne ad gangen).
- I den Optag makro dialogboksen, der vises, konfigurerer du makroens hovedparametre:
- I den Makro navn feltet skal du indtaste navnet på din makro. Prøv at gøre det meningsfuldt og beskrivende, så du senere hurtigt kan finde makroen på listen.
I makronavne kan du bruge bogstaver, tal og understregninger; det første tegn skal være et bogstav. Mellemrum er ikke tilladt, så du bør enten holde et navn med ét ord og starte hver del med et stort bogstav (f.eks. MyFirstMacro ) eller adskille ord med understregninger (f.eks. Min_første_Makro ).
- I den Genvejstast boksen, skriv et hvilket som helst bogstav for at tildele en tastaturgenvej til makroen (valgfrit).
Både store og små bogstaver er tilladt, men du gør klogt i at bruge store tastekombinationer ( Ctrl + Shift + bogstav ), fordi makrogenveje tilsidesætter alle standard Excel-genveje, mens arbejdsmappen med makroen er åben. Hvis du f.eks. tildeler Ctrl + S til en makro, mister du muligheden for at gemme dine Excel-filer med en genvej. Hvis du tildeler Ctrl + Shift + S, bevarer du muligheden for at gemme dine Excel-filer med en genvej.standardgenvej til at gemme.
- Fra den Gem makro i på rullelisten, hvor du vil gemme din makro:
- Arbejdsbog til personlige makroer - gemmer makroen i en særlig projektmappe kaldet Personlig.xlsb Alle de makroer, der er gemt i denne projektmappe, er tilgængelige, når du bruger Excel.
- Denne arbejdsbog (standard) - makroen gemmes i den aktuelle projektmappe og vil være tilgængelig, når du åbner projektmappen igen eller deler den med andre brugere.
- Ny arbejdsbog - opretter en ny projektmappe og registrerer makroen i denne projektmappe.
- I den Beskrivelse en kort beskrivelse af, hvad din makro gør (valgfrit).
Selv om dette felt er valgfrit, anbefaler jeg, at du altid angiver en kort beskrivelse. Når du opretter mange forskellige makroer, vil det hjælpe dig til hurtigt at forstå, hvad hver enkelt makro gør.
- Klik på OK for at starte optagelsen af makroen.
- I den Makro navn feltet skal du indtaste navnet på din makro. Prøv at gøre det meningsfuldt og beskrivende, så du senere hurtigt kan finde makroen på listen.
- Udfør de handlinger, som du vil automatisere (se eksemplet med optagelsesmakroen).
- Når du er færdig, skal du klikke på Stop optagelsen på knappen på Udvikler fanebladet:
Eller den tilsvarende knap på Status bar:
Eksempel på optagelse af en makro i Excel
For at se, hvordan det fungerer i praksis, kan vi optage en makro, der anvender en vis formatering på de valgte celler. Gør følgende for at gøre dette:
- Vælg en eller flere celler, som du vil formatere.
- På den Udvikler fanen eller Status bar, klik på Optag makro .
- I den Optag makro skal du konfigurere følgende indstillinger:
- Navngiv makroen Formatering af overskrifter (fordi vi skal formatere kolonneoverskrifter).
- Placer markøren i Genvejstast boksen, og tryk samtidig på tasterne Shift + F. Dette tildeler genvejen Ctrl + Shift + F til makroen.
- Vælg at gemme makroen i denne projektmappe.
- Til Beskrivelse , bruge følgende tekst, der forklarer, hvad makroen gør: Gør teksten fed, tilføjer fyldfarve og centrerer .
- Klik på OK for at starte optagelsen.
- Formater de forudvalgte celler på den måde, du ønsker. I dette eksempel bruger vi fed tekstformatering, lyseblå fyldfarve og midterjustering.
Tip. Du må ikke vælge nogen celler, efter at du er begyndt at optage makroen. Dette sikrer, at al formateringen bliver lagt ind i makroen. udvælgelse , ikke et bestemt interval.
- Klik på Stop optagelsen på enten den Udvikler eller på fanen Status bar.
Nu kan du vælge et vilkårligt område af celler i et vilkårligt ark, trykke på den tildelte genvej ( Ctrl+ Shift + F ), og din brugerdefinerede formatering vil straks blive anvendt på de valgte celler.
Sådan arbejder du med registrerede makroer i Excel
Alle de vigtigste muligheder, som Excel giver for makroer, kan tilgås via Makro dialogboksen. For at åbne den skal du klikke på Makroer på knappen på Udvikler eller tryk på genvejen Alt+F8.
I den dialogboks, der åbnes, kan du få vist en liste over makroer, der er tilgængelige i alle åbne arbejdsmapper eller tilknyttet en bestemt arbejdsmappe, og benytte følgende indstillinger:
- Kør - udfører den valgte makro.
- Træd ind i - giver dig mulighed for at fejlsøge og teste makroen i Visual Basic-editoren.
- Rediger - åbner den valgte makro i VBA-editoren, hvor du kan se og redigere koden.
- Slet - sletter permanent den valgte makro.
- Indstillinger - gør det muligt at ændre makroens egenskaber, f.eks. den tilknyttede Genvej nøgle og Beskrivelse .
Sådan får du vist makroer i Excel
Koden til en Excel-makro kan ses og ændres i Visual Basic Editor. Du åbner editoren ved at trykke på Alt + F11 eller klikke på Visual Basic på knappen på Udvikler fanebladet.
Hvis du ser VB-editoren for første gang, skal du ikke føle dig afskrækket eller skræmt. Vi vil ikke tale om VBA-sprogets struktur eller syntaks. Dette afsnit vil blot give dig en grundlæggende forståelse af, hvordan Excel-makroer fungerer, og hvad det egentlig er at optage en makro.
VBA-editoren har flere vinduer, men vi vil fokusere på de to vigtigste vinduer:
Projekt Explorer - viser en liste over alle åbne arbejdsmapper og deres ark. Desuden vises moduler, brugerformularer og klassemoduler.
Kodevindue - her kan du se, redigere og skrive VBA-kode for hvert objekt, der vises i projektudforskeren.
Da vi optog makroeksemplet, skete følgende ting i backend:
- Et nyt modul ( Moduel1 ) blev indsat.
- VBA-koden til makroen blev skrevet i vinduet Kode.
Hvis du vil se koden for et bestemt modul, skal du dobbeltklikke på modulet ( Modul1 i vores tilfælde) i vinduet Project Explorer. Normalt består en makrokode af disse dele:
Makronavn
I VBA starter enhver makro med Under efterfulgt af makronavnet og afsluttes med End Sub , hvor "Sub" er en forkortelse for Underrutine (også kaldet Procedure ). Vores eksempelmakro hedder Header_Formatering() , så koden starter med denne linje:
Sub Header_Formatting()Hvis du ønsker at omdøbe makroen , skal du blot slette det nuværende navn og skrive et nyt direkte i kodevinduet.
Kommentarer
Linjer med apostrof (') foran og som standard vises med grønt, udføres ikke. Det er kommentarer, der er tilføjet til information. Kommentarlinjerne kan fjernes uden risiko uden at påvirke kodens funktionalitet.
Normalt har en optaget makro 1 - 3 kommentarlinjer: Makronavn (obligatorisk), beskrivelse og genvej (hvis angivet før optagelse).
Eksekverbar kode
Efter kommentarerne kommer den kode, der udfører de handlinger, du har registreret. Nogle gange kan en registreret makro indeholde en masse overflødig kode, som stadig kan være nyttig for at finde ud af, hvordan tingene fungerer med VBA :)
Nedenstående billede viser, hvad hver del af makroens kode gør:
Sådan kører du en optaget makro
Ved at køre en makro fortæller du Excel, at det skal gå tilbage til den optagede VBA-kode og udføre nøjagtig de samme trin. Der er et par måder at køre en optaget makro i Excel på, og her er de hurtigste af dem:
- Hvis du har tildelt en tastaturgenvej til makroen, skal du trykke på denne genvej.
- Tryk på Alt + 8 eller klik på Makroer på knappen på Udvikler fanen. I fanen Makro dialogboksen, vælg den ønskede makro, og klik på Kør .
Det er også muligt at køre en optaget makro ved at klikke på din egen knap. Her er trinene til at lave en sådan: Sådan opretter du en makroknap i Excel.
Sådan gemmer du makroer i Excel
Uanset om du har optaget en makro eller skrevet VBA-kode manuelt, skal du gemme makroen ved at gemme arbejdsmappen som makroaktiveret (.xlms-udvidelse). Sådan gør du:
- I den projektmappe, der indeholder makroen, skal du klikke på Gem knappen eller tryk på Ctrl + S .
- I den Gem som dialogboksen, vælg Excel-arbejdsmappe med makroaktivering (*.xlsm) fra den Gem som type rullelisten, og klik derefter på Gem :
Excel-makroer: hvad der er og hvad der ikke er registreret
Som du lige har set, er det ret nemt at registrere en makro i Excel. Men for at oprette effektive makroer skal du forstå, hvad der foregår bag kulisserne.
Hvad er registreret
Excels makrooptager registrerer en hel del ting - næsten alle museklik og tastetryk. Du bør derfor overveje dine trin nøje for at undgå overskydende kode, der kan resultere i uventet adfærd i din makro. Nedenfor er der nogle få eksempler på, hvad Excel registrerer:
- Markering af celler med musen eller tastaturet. Kun den sidste markering før en handling registreres. Hvis du f.eks. markerer området A1:A10 og derefter klikker på celle A11, registreres kun markeringen af A11.
- Celleformatering som f.eks. fyld- og skrifttypefarve, justering, rammer osv.
- Talformatering som f.eks. procent, valuta osv.
- Redigering af formler og værdier. Ændringer registreres, når du trykker på Enter .
- Rulning, flytning af Excel-vinduer, skift til andre regneark og arbejdsmapper.
- Tilføjelse, navngivning, flytning og sletning af regneark.
- Oprettelse, åbning og lagring af arbejdsmapper.
- Kørsel af andre makroer.
Hvad der ikke kan registreres
På trods af de mange forskellige ting, som Excel kan registrere, er der visse funktioner, der ligger uden for Macro Recorder's muligheder:
- Tilpasninger af Excel-båndet og værktøjslinjen Hurtig adgang.
- Handlinger i Excel-dialoger som f.eks. Betinget formatering eller Find og erstat (kun resultatet bliver registreret).
- Interaktioner med andre programmer. Du kan f.eks. ikke registrere kopiering/indsætning fra en Excel-arbejdsbog til et Word-dokument.
- Alt, der involverer VBA-editoren. Dette medfører de største begrænsninger - mange ting, der kan gøres på programmeringsniveau, kan ikke registreres:
- Oprettelse af brugerdefinerede funktioner
- Visning af brugerdefinerede dialogbokse
- Ved at lave sløjfer som f.eks. Til næste , For hver , Gør mens , osv.
- Evaluering af betingelser. I VBA kan du bruge IF Then Else for at teste en betingelse og køre en kode, hvis betingelsen er sand, eller en anden kode, hvis betingelsen er falsk.
- Udførelse af kode baseret på hændelser. Med VBA kan du bruge mange hændelser til at køre en kode, der er knyttet til den pågældende hændelse (f.eks. åbning af et regneark, genberegning af et regneark, ændring af valg osv.).
- Brug af argumenter. Når du skriver en makro i VBA-editoren, kan du angive inputargumenter for at få en makro til at udføre en bestemt opgave. En registreret makro kan ikke have argumenter, da den er uafhængig og ikke er forbundet med andre makroer.
- Forstå logik. Hvis du f.eks. optager en makro, der kopierer bestemte celler, f.eks. i I alt række, vil Excel kun registrere adresserne på de kopierede celler. Med VBA kan du kode logikken, dvs. kopiere værdierne i de I alt række.
Selv om ovenstående begrænsninger sætter mange grænser for registrerede makroer, er de stadig et godt udgangspunkt. Selv hvis du ikke har nogen idé om VBA-sproget, kan du hurtigt optage en makro og derefter analysere koden.
Nyttige tips til registrering af makroer i Excel
Nedenfor finder du et par tips og noter, der kan spare dig for en masse tid og nerver, så du kan få en smidigere indlæringskurve og mere effektive makroer.
Brug relative referencer til makrooptagelse
Som standard bruger Excel absolut henvisning til Det betyder, at din VBA-kode altid vil henvise til præcis de samme celler, som du har valgt, uanset hvor du befinder dig i regnearket, når du kører makroen.
Det er dog muligt at ændre standardadfærden til relative henvisninger I dette tilfælde vil VBA ikke hardcode celleadresser, men vil arbejde relativt til den aktive (aktuelt valgte) celle.
Hvis du vil optage en makro med relative referencer, skal du klikke på Brug Relative referencer på knappen på Udvikler Hvis du vil vende tilbage til absolut reference, skal du klikke på knappen igen for at slå den fra.
Hvis du f.eks. registrerer en tabel med standard absolut reference, vil din makro altid genskabe tabellen på samme sted (i dette tilfælde, Overskrift i A1, Artikel 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
Hvis du registrerer den samme makro med relativ henvisning, oprettes tabellen der, hvor du placerer markøren, før du kører makroen ( Overskrift i den aktive celle, Artikel 1 i nedenstående celle osv.).
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 SubBemærkninger:
- Når du bruger relative referencer, skal du sørge for at vælge den oprindelige celle, før du begynder at optage en makro.
- Relative referencer fungerer ikke til alt. Nogle Excel-funktioner, f.eks. konvertering af et område til en tabel, kræver absolutte referencer.
Vælg intervaller ved hjælp af tastaturgenveje
Når du markerer en celle eller et område af celler ved hjælp af musen eller piletasterne, skriver Excel celleadresserne. Når du kører en makro, vil de registrerede operationer derfor blive udført nøjagtigt på de samme celler. Hvis det ikke er det, du ønsker, skal du bruge genveje til at markere celler og områder.
Lad os f.eks. optage en makro, der indstiller et bestemt format (d-mmm-yy) for datoerne i tabellen nedenfor:
Til dette registrerer du følgende operationer: Tryk på Ctrl + 1 for at åbne Formater celler dialogboks> Dato> vælg format> OK. Hvis din optagelse omfatter valg af området med musen eller piletasterne, vil Excel producere følgende VBA-kode:
Sub Date_Format() Range( "A2:B4" ). Select Selection.NumberFormat = "d-mmm-yy" End SubHvis du kører ovenstående makro, vil du vælge området A2:B4 hver gang. Hvis du tilføjer flere rækker til tabellen, vil de ikke blive behandlet af makroen.
Lad os nu se, hvad der sker, når du vælger tabellen ved hjælp af en genvej.
Sæt markøren i den øverste venstre celle i målområdet (A2 i dette eksempel), start optagelsen og tryk på Ctrl + Shift + End . Resultatet vil være, at den første linje i koden vil se således ud:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)). VælgDenne kode markerer alle celler fra den aktive celle til den sidst anvendte celle, hvilket betyder, at alle nye data automatisk vil blive inkluderet i markeringen.
Alternativt kan du bruge kombinationer af Ctrl + Shift + Pile-kombinationer:
- Ctrl + Shift + højre pil for at vælge alle anvendte celler til højre, efterfulgt af
- Ctrl + Shift + pil ned for at vælge alle anvendte celler ned.
Dette vil generere to kodelinjer i stedet for én, men resultatet vil være det samme - alle celler med data nederst og til højre for den aktive celle vil blive valgt:
Range(Selection, Selection. End (xlToRight)). Vælg Range(Selection, Selection. End (xlDown)). VælgOptag en makro til valg i stedet for specifikke celler
Ovenstående metode (dvs. at vælge alle anvendte celler begyndende med den aktive celle) fungerer fint til at udføre de samme operationer på hele tabellen. I nogle situationer kan du imidlertid ønske, at makroen skal behandle et bestemt område i stedet for hele tabellen.
Til dette formål indeholder VBA funktionen Udvælgelse objekt, der henviser til den/de aktuelt valgte celle(r). De fleste ting, der kan gøres med et område, kan også gøres med markeringer. Hvilken fordel giver det dig? I mange tilfælde behøver du slet ikke at markere noget, mens du optager - du skal bare skrive en makro for den aktive celle. Og derefter kan du vælge et hvilket som helst område, køre makroen, og den vil manipulere hele markeringen.
Denne makro på én linje kan f.eks. formatere et vilkårligt antal valgte celler som procenter:
Sub Percent_Format() Selection.NumberFormat = "0.00%" End SubPlanlæg nøje, hvad du optager
Microsoft Excel-makrooptageren optager næsten alle dine aktiviteter, herunder de fejl, du laver og retter. Hvis du f.eks. trykker på Ctrl + Z for at fortryde noget, vil det også blive optaget. Til sidst kan du ende med en masse unødvendig kode. For at undgå dette kan du enten redigere koden i VB-editoren eller stoppe optagelsen, slette en mangelfuld makro og begynde at optage på ny.
Sikkerhedskopiere eller gemme arbejdsmappen, før du kører en makro
Resultatet af Excel-makroer kan ikke fortrydes. Så før den første kørsel af en makro er det fornuftigt at oprette en kopi af arbejdsmappen eller i det mindste gemme dit nuværende arbejde for at undgå uventede ændringer. Hvis makroen gør noget forkert, skal du blot lukke arbejdsmappen uden at gemme.
Hold registrerede makroer korte
Når du automatiserer en række forskellige opgaver, kan du være fristet til at registrere dem alle i en enkelt makro. Der er to hovedårsager til ikke at gøre dette. For det første er det svært at registrere en lang makro uden fejl. For det andet er store makroer vanskelige at forstå, teste og fejlfinde. Derfor er det en god idé at opdele en stor makro i flere dele. Når du f.eks. opretter en oversigtstabelfra flere kilder, kan du bruge en makro til at importere oplysninger, en anden til at konsolidere data og en tredje til at formatere tabellen.
Jeg håber, at denne vejledning har givet dig et indblik i, hvordan du optager en makro i Excel. Jeg takker for din læsning og håber at se dig på vores blog i næste uge!