Hvordan ta opp en makro i Excel

  • Dele Denne
Michael Brown

Trinn-for-trinn-veiledning for nybegynnere for å ta opp, vise, kjøre og lagre en makro. Du vil også lære litt indre mekanikk for hvordan makroer fungerer i Excel.

Makroer er en fin måte å automatisere repeterende oppgaver i Excel. Hvis du finner deg selv å gjøre de samme tingene om og om igjen, ta opp bevegelsene dine som en makro og tilordne en hurtigtast til den. Og nå kan du få alle de registrerte handlingene utført automatisk, med et enkelt tastetrykk!

    Hvordan ta opp en makro i Excel

    Som andre VBA-verktøy, Excel-makroer ligger på Utvikler -fanen, som er skjult som standard. Så det første du må gjøre er å legge til Utvikler-fanen til Excel-båndet.

    For å ta opp en makro i Excel, utfør disse trinnene:

    1. Utvikler -kategorien, i Kode -gruppen, klikk på Record Macro -knappen.

      Alternativt klikker du på Record Makro -knapp på venstre side av Status -linjen:

      Hvis du foretrekker å jobbe med tastaturet i stedet for musen, trykk på følgende tastesekvens Alt , L , R (en etter en, ikke alle tastene om gangen).

    2. I dialogboksen Record Macro som vises, konfigurer hovedparameterne for makroen din:
      • I Macro navn -boksen, skriv inn navnet på makroen. Prøv å gjøre det meningsfylt og beskrivende, så senere vil du raskt kunne finne makroen i listen.

        Innsparer deg for mye tid og nerver, noe som gjør læringskurven jevnere og makroer mer effektive.

        Bruk relative referanser for makroopptak

        Som standard bruker Excel absolutt refererer for å ta opp en makro. Det betyr at VBA-koden din alltid vil referere til nøyaktig de samme cellene som du valgte, uansett hvor du er i regnearket når du kjører makroen.

        Det er imidlertid mulig å endre standardoppførselen til relativ referanse . I dette tilfellet vil ikke VBA hardkode celleadresser, men vil fungere relativt til den aktive (for øyeblikket valgte) cellen.

        For å ta opp en makro med relativ referanse, klikk Bruk Relative References -knappen på Utvikler -fanen. For å gå tilbake til absolutt referanse, klikk på knappen igjen for å slå den av.

        For eksempel, hvis du registrerer å sette opp en tabell med standard absolutt referanse, vil makroen din alltid gjenskape tabellen på samme sted (i dette tilfellet Header i A1, Item1 i A2, Item2 i A3).

        Sub Absolute_Referencing() Range( "A1" ). Velg ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Velg ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Velg ActiveCell.FormulaR1C1 = "Item2" End Sub

        Hvis du tar opp den samme makroen med relativ referanse, vil tabellen bli opprettet uansett hvor du plasserer markøren før du kjører makroen ( Overskrift iaktiv celle, Item1 i cellen under, og så videre).

        Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Velg ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0). Range( "A1" ). Velg ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0). Range( "A1" ). Velg End Sub

        Merknader:

        • Når du bruker relative referanser, sørg for å velge den første cellen før du begynner å ta opp en makro.
        • Relativ referanse fungerer ikke for alt. Noen Excel-funksjoner, f.eks. konvertere et område til en tabell, krever absolutte referanser.

        Velg områder ved hjelp av hurtigtaster

        Når du velger en celle eller et celleområde ved hjelp av musen eller piltastene, Excel skriver celleadressene. Følgelig, når du kjører en makro, vil de registrerte operasjonene utføres nøyaktig på de samme cellene. Hvis dette ikke er det du ønsker, bruk snarveier for å velge celler og områder.

        Som et eksempel, la oss ta opp en makro som setter et spesifikt format (d-mmm-yy) for datoene i tabellen nedenfor:

        For dette, registrerer du følgende operasjoner: trykk Ctrl + 1 for å åpne dialogboksen Formater celler > Dato > velg format > OK. Hvis opptaket ditt inkluderer å velge området med musen eller piltastene, vil Excel produsere følgende VBA-kode:

        Sub Date_Format() Range( "A2:B4" ). Å velgeSelection.NumberFormat = "d-mmm-yy" End Sub

        Kjøring av makroen ovenfor vil velge området A2:B4 hver gang. Hvis du legger til flere rader i tabellen, vil de ikke bli behandlet av makroen.

        Nå, la oss se hva som skjer når du velger tabellen ved hjelp av en snarvei.

        Plasser markøren i cellen øverst til venstre i målområdet (A2 i dette eksemplet), start opptaket og trykk Ctrl + Shift + End . Som et resultat vil den første linjen i koden se slik ut:

        Range(Selection, ActiveCell.SpecialCells(xlLastCell)). Velg

        Denne koden velger alle celler fra den aktive cellen til den sist brukte cellen, noe som betyr at alle nye data vil bli inkludert i utvalget automatisk.

        Alternativt kan du bruke Ctrl + Shift + Pilkombinasjoner:

        • Ctrl + Shift + Høyre pil for å velge alle brukte celler til høyre, etterfulgt av
        • Ctrl + Shift + Pil ned for å velge alle brukte celler nedover.

        Dette vil generere to kodelinjer i stedet for én, men resultatet vil være det samme - alle celler med data nede og til høyre for den aktive cellen vil bli valgt:

        Range(Selection, Selection. End ( xlTil Høyre)). Velg Område (Utvalg, Utvalg. Slutt (xlNed)). Velg

        Ta opp en makro for seleksjon i stedet for spesifikke celler

        Overnevnte metode (dvs. å velge alle brukte celler som begynner med den aktive cellen) fungerer utmerket for å utføre de samme operasjonene på hele tabellen. I noenI situasjoner vil du kanskje at makroen skal behandle et bestemt område i stedet for hele tabellen.

        For dette gir VBA Selection -objektet som refererer til den/de valgte cellen(e) . Det meste som kan gjøres med en rekkevidde, kan også gjøres med utvalg. Hvilken fordel gir det deg? I mange tilfeller trenger du ikke å velge noe i det hele tatt mens du tar opp - bare skriv en makro for den aktive cellen. Og velg deretter et hvilket som helst område du ønsker, kjør makroen, og den vil manipulere hele utvalget.

        For eksempel kan denne enlinjemakroen formatere et hvilket som helst antall valgte celler som prosenter:

        Sub Percent_Format () Selection.NumberFormat = "0,00%" End Sub

        Planlegg nøye hva du tar opp

        Microsoft Excel Macro Recorder fanger opp nesten all aktiviteten din, inkludert feilene du gjør og korrigerer. For eksempel, hvis du trykker Ctrl + Z for å angre noe, vil det også bli tatt opp. Til slutt kan du ende opp med mye unødvendig kode. For å unngå dette må du enten redigere koden i VB Editor eller stoppe opptaket, slette en mangelfull makro og starte opptaket på nytt.

        Sikkerhetskopier eller lagre arbeidsbok før du kjører en makro

        Resultatet av Excel makroer kan ikke angres. Så før den første kjøringen av en makro, er det fornuftig å lage en kopi av arbeidsboken eller i det minste lagre det nåværende arbeidet ditt for å forhindre uventede endringer. Hvis makroen gjør noe galt,bare lukk arbeidsboken uten å lagre.

        Hold registrerte makroer korte

        Når du automatiserer en sekvens av forskjellige oppgaver, kan du bli fristet til å registrere dem alle i én enkelt makro. Det er to hovedgrunner til å ikke gjøre dette. For det første er det vanskelig å ta opp en lang makro jevnt uten feil. For det andre er store makroer vanskelige å forstå, teste og feilsøke. Derfor er det en god idé å dele en stor makro i flere deler. Når du for eksempel oppretter en sammendragstabell fra flere kilder, kan du bruke én makro til å importere informasjon, en annen til å konsolidere data og en tredje til å formatere tabellen.

        Jeg håper denne veiledningen har gitt deg litt innsikt om hvordan du registrerer en makro i Excel. Uansett, jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

        makronavn, kan du bruke bokstaver, tall og understreker; det første tegnet må være en bokstav. Mellomrom er ikke tillatt, så du bør enten beholde et navn med ett ord som starter hver del med stor bokstav (f.eks. MyFirstMacro ) eller skille ord med understreking (f.eks. Min_Første_Makro ).
      • I Snarveitast -boksen skriver du inn en bokstav for å tilordne en hurtigtast til makroen (valgfritt).

        Både store og små bokstaver er tillatt, men du gjør klokt i å bruke store tastekombinasjoner ( Ctrl + Shift + bokstav ) fordi makrosnarveier overstyrer alle standard Excel-snarveier mens arbeidsboken som inneholder makroen er åpen. For eksempel, hvis du tilordner Ctrl + S til en makro, vil du miste muligheten til å lagre Excel-filene dine med en snarvei. Ved å tildele Ctrl + Shift + S beholdes standard lagringssnarvei.

      • Velg hvor du vil lagre makroen fra rullegardinlisten Lagre makro i :
        • Personlig makroarbeidsbok – lagrer makroen i en spesiell arbeidsbok kalt Personlig.xlsb . Alle makroene som er lagret i denne arbeidsboken er tilgjengelige når du bruker Excel.
        • Denne arbeidsboken (standard) - makroen vil bli lagret i gjeldende arbeidsbok og vil være tilgjengelig når du åpner arbeidsboken på nytt eller del den med andre brukere.
        • Ny arbeidsbok – oppretter en ny arbeidsbok og registrerer makroen til den arbeidsboken.
      • I Beskrivelse -boksen, skriv inn en kort beskrivelse av hva makroen din gjør (valgfritt).

        Selv om dette feltet er valgfritt, anbefaler jeg at du alltid gir en kort beskrivelse. Når du lager mange forskjellige makroer, vil det hjelpe deg raskt å forstå hva hver makro gjør.

      • Klikk OK for å starte opptaket av makroen.

    3. Utfør handlingene du ønsker for å automatisere (se eksempelet på opptaksmakroen).
    4. Når du er ferdig, klikk på Stopp opptak -knappen på Utvikler -fanen:

      Eller den analoge knappen på Status -linjen:

    Eksempel på opptak av en makro i Excel

    For å se hvordan det fungerer i praksis, la oss ta opp en makro som bruker noe formatering på de valgte cellene. For dette gjør du følgende:

    1. Velg én eller flere celler du vil formatere.
    2. Utvikler -fanen eller Status -linjen, klikk Record Macro .
    3. I dialogboksen Record Macro , konfigurer følgende innstillinger:
      • Gi makroen et navn Header_Formatting (fordi vi skal formatere kolonneoverskrifter).
      • Plasser markøren i boksen Snarveitast , og trykk Shift + F-tastene samtidig. Dette vil tilordne Ctrl + Shift + F-snarveien til makroen.
      • Velg å lagre makroen i denne arbeidsboken.
      • For Beskrivelse , bruk følgende tekst som forklarer hva makroen gjør: Gjør tekst fet, legger til fyllfarge og sentrerer .
      • Klikk OK for å starte opptaket.

    4. Formater de forhåndsvalgte cellene slik du ønsker. For dette eksemplet bruker vi fet tekstformatering, lyseblå fyllfarge og senterjustering.

      Tips. Ikke velg noen celler etter at du har begynt å ta opp makroen. Dette vil sikre at all formatering gjelder utvalget , ikke et spesifikt område.

    5. Klikk Stopp opptak på enten Utvikler -fanen eller Status -linjen.

    Det er det! Makroen din er tatt opp. Nå kan du velge et hvilket som helst celleområde i et hvilket som helst ark, trykk på den tilordnede snarveien ( Ctrl+ Shift + F ), og din egendefinerte formatering vil umiddelbart bli brukt på de valgte cellene.

    Hvordan jobbe med innspilte makroer i Excel

    Alle hovedalternativer Excel gir for makroer kan nås via Makro -dialogboksen. For å åpne den, klikk Makroer -knappen på Utvikler -fanen eller trykk Alt+F8-snarveien.

    I dialogboksen som åpnes, kan du se en liste over makroer som er tilgjengelige i alle åpne arbeidsbøker eller knyttet til en bestemt arbeidsbok og bruke følgende alternativer:

    • Kjør - kjører den valgte makroen .
    • Step into - lar deg feilsøke og teste makroen i Visual Basic Editor.
    • Rediger - åpner den valgte makroen iVBA Editor, hvor du kan se og redigere koden.
    • Slett - sletter den valgte makroen permanent.
    • Alternativer – gjør det mulig å endre makroens egenskaper som den tilknyttede snarveien tasten og Beskrivelse .

    Hvordan se makroer i Excel

    Koden til en Excel-makro kan vises og endres i Visual Basic Editor. For å åpne redigeringsprogrammet, trykk Alt + F11 eller klikk Visual Basic -knappen på Utvikler -fanen.

    Hvis du ser VB Editor for første gang, vær så snill å ikke føl deg motløs eller skremt. Vi skal ikke snakke om strukturen eller syntaksen til VBA-språket. Denne delen vil bare gi deg en grunnleggende forståelse av hvordan Excel-makroer fungerer og hva opptak av en makro faktisk gjør.

    VBA Editor har flere vinduer, men vi vil fokusere på de to hovedvinduene:

    Prosjektutforsker - viser en liste over alle åpne arbeidsbøker og deres ark. I tillegg viser den moduler, brukerskjemaer og klassemoduler.

    Kodevindu - her kan du se, redigere og skrive VBA-kode for hvert objekt som vises i Project Explorer.

    Da vi registrerte eksempelmakroen, skjedde følgende ting i backend:

    • En ny modul ( Moduel1 ) ble satt inn.
    • VBA-koden til makroen ble skrevet i kodevinduet.

    For å se koden til en bestemtmodul, dobbeltklikk modulen ( Module1 i vårt tilfelle) i Project Explorer-vinduet. Normalt har en makrokode disse delene:

    Makronavn

    I VBA starter enhver makro med Sub etterfulgt av makronavnet og slutter med End Sub , der "Sub" er forkortelse for Subrutine (også kalt Prosedyre ). Eksempelmakroen vår heter Header_Formatting() , så koden starter med denne linjen:

    Sub Header_Formatting()

    Hvis du ønsker å gi nytt navn til makroen , sletter du bare gjeldende navn og skriv inn et nytt direkte i kodevinduet.

    Kommentarer

    Linjer med prefiks med en apostrof (') og vist i grønt som standard blir ikke utført. Dette er kommentarer lagt til for informasjonsformål. Kommentarlinjene kan trygt fjernes uten å påvirke funksjonaliteten til koden.

    Vanligvis har en registrert makro 1 - 3 kommentarlinjer: makronavn (obligatorisk); beskrivelse og snarvei (hvis spesifisert før opptak).

    Kjørbar kode

    Etter kommentarer kommer koden som utfører handlingene du har registrert. Noen ganger kan en innspilt makro ha mye overflødig kode, noe som fortsatt kan være nyttig for å finne ut hvordan ting fungerer med VBA :)

    Bildet nedenfor viser hva hver del av makroens kode gjør:

    Hvordan kjøre en innspilt makro

    Ved å kjøre en makro ber du Excel gå tilbake til den registrerte VBA-koden og utførenøyaktig samme trinn. Det er noen måter å kjøre en innspilt makro i Excel, og her er de raskeste:

    • Hvis du har tilordnet en tastatursnarvei til makroen, trykk på den snarveien .
    • Trykk Alt + 8 eller klikk Makroer -knappen på Utvikler -fanen. I dialogboksen Makro velger du ønsket makro og klikker Kjør .

    Det er også mulig å kjøre en innspilt makro ved å klikke på din egen knapp. Her er trinnene for å lage en: Hvordan lage en makroknapp i Excel.

    Hvordan lagre makroer i Excel

    Enten du har tatt opp en makro eller skrevet VBA-kode manuelt, for å lagre makroen , må du lagre arbeidsboken som makroaktivert (.xlms-utvidelse). Slik gjør du det:

    1. I arbeidsboken som inneholder makroen, klikk på Lagre -knappen eller trykk Ctrl + S.
    2. I Lagre som dialogboksen, velg Excel Macro-Enabled Workbook (*.xlsm) fra rullegardinlisten Lagre som type , og klikk deretter Lagre :

    Excel-makroer: hva er og hva er ikke registrert

    Som du nettopp har sett, er det ganske enkelt å ta opp en makro i Excel. Men for å lage effektive makroer må du forstå hva som skjer bak kulissene.

    Hva er tatt opp

    Excels makroopptaker fanger opp ganske mange ting – nesten alle museklikk og tastetrykk. Så du bør tenke nøye gjennom trinnene dine for å unngå overflødig kode som kanresultere i uventet oppførsel av makroen din. Nedenfor er noen eksempler på hva Excel registrerer:

    • Velge celler med musen eller tastaturet. Bare det siste valget før en handling blir registrert. Hvis du for eksempel velger området A1:A10 og deretter klikker på celle A11, vil bare utvalget av A11 bli registrert.
    • Celleformatering som fyll- og skriftfarge, justering, kanter osv.
    • Tallformatering som prosent, valuta osv.
    • Redigering av formler og verdier. Endringer registreres etter at du trykker på Enter .
    • Rulling, flytting av Excel-vinduer, bytting til andre regneark og arbeidsbøker.
    • Legge til, navngi, flytte og slette regneark.
    • Opprette, åpne og lagre arbeidsbøker.
    • Kjøre andre makroer.

    Det som ikke kan registreres

    Til tross for mange forskjellige ting som Excel kan registrere, er visse funksjoner utenfor mulighetene til Macro Recorder:

    • Tilpasninger av Excel-båndet og hurtigtilgangsverktøylinjen.
    • Handlinger i Excel-dialoger som Betinget formatering eller Finn og erstatt (bare resultatet blir registrert).
    • Interaksjoner med andre programmer. Du kan for eksempel ikke registrere kopiering/liming fra en Excel-arbeidsbok til et Word-dokument.
    • Alt som involverer VBA Editor. Dette setter de viktigste begrensningene - mange ting som kan gjøres på programmeringsnivå kan ikkeregistreres:
      • Opprette egendefinerte funksjoner
      • Vise egendefinerte dialogbokser
      • Lage loops som For Next , For Every , Do While osv.
      • Vurdere forhold. I VBA kan du bruke IF Then Else -setningen til å teste en betingelse og kjøre en del kode hvis betingelsen er sann eller en annen kode hvis betingelsen er usann.
      • Kjøre kode basert på hendelser . Med VBA kan du bruke mange hendelser til å kjøre en kode som er knyttet til den hendelsen (som å åpne en arbeidsbok, beregne et regneark på nytt, endre utvalg og så videre).
      • Bruke argumenter. Når du skriver en makro i VBA Editor, kan du angi input-argumenter for at en makro skal utføre en bestemt oppgave. En innspilt makro kan ikke ha noen argumenter fordi den er uavhengig og ikke er koblet til andre makroer.
      • Forstå logikk. Hvis du for eksempel tar opp en makro som kopierer spesifikke celler, for eksempel i Total -raden, vil Excel bare registrere adressene til de kopierte cellene. Med VBA kan du kode logikken, dvs. kopiere verdiene i Total -raden.

    Selv om begrensningene ovenfor setter mange grenser for registrerte makroer, de er fortsatt et godt utgangspunkt. Selv om du ikke har noen formening om VBA-språket, kan du raskt ta opp en makro, og deretter analysere dens kode.

    Nyttige tips for å ta opp makroer i Excel

    Nedenfor finner du noen tips og notater som potensielt kan

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.