Een macro opnemen in Excel

  • Deel Dit
Michael Brown

Stapsgewijze handleiding voor beginners om een macro op te nemen, te bekijken, uit te voeren en op te slaan. U leert ook enkele innerlijke mechanismen van hoe macro's in Excel werken.

Macro's zijn een geweldige manier om repetitieve taken in Excel te automatiseren. Als u merkt dat u steeds dezelfde dingen doet, leg dan uw handelingen vast als een macro en wijs er een sneltoets aan toe. En nu kunt u alle vastgelegde handelingen automatisch laten uitvoeren, met één toetsaanslag!

    Een macro opnemen in Excel

    Net als andere VBA-tools bevinden Excel-macro's zich op het Ontwikkelaar Het eerste wat u moet doen is het tabblad Ontwikkelaar toevoegen aan uw Excel-lint.

    Voer de volgende stappen uit om een macro in Excel op te nemen:

    1. Op de Ontwikkelaar tabblad, in de Code groep, klik op de Opname Macro knop.

      Of klik op de Opname Macro knop aan de linkerkant van de Status bar:

      Werkt u liever met het toetsenbord dan met de muis, druk dan op de volgende toetsenreeks Alt , L , R (één voor één, niet alle toetsen tegelijk).

    2. In de Opname Macro dialoogvenster dat verschijnt, stelt u de belangrijkste parameters van uw macro in:
      • In de Macro naam Probeer de naam van uw macro zinvol en beschrijvend te maken, zodat u de macro later snel kunt terugvinden in de lijst.

        In macronamen kunt u letters, cijfers en underscores gebruiken; het eerste teken moet een letter zijn. Spaties zijn niet toegestaan, dus u moet een naam eenletterig houden en elk deel met een hoofdletter laten beginnen (bijv. MyFirstMacro ) of woorden scheiden met underscores (bijv. My_First_Macro ).

      • In de Sneltoets vak, typ een willekeurige letter om een sneltoets aan de macro toe te wijzen (optioneel).

        Zowel hoofdletters als kleine letters zijn toegestaan, maar u doet er verstandig aan hoofdlettercombinaties te gebruiken ( Ctrl + Shift + letter ) omdat macro-snelkoppelingen alle standaard Excel-snelkoppelingen opheffen terwijl de werkmap met de macro geopend is. Als u bijvoorbeeld Ctrl + S aan een macro toewijst, verliest u de mogelijkheid om uw Excel-bestanden op te slaan met een snelkoppeling. Door Ctrl + Shift + S toe te wijzen blijft destandaard opslaan.

      • Van de Macro opslaan in keuzelijst, kies waar u uw macro wilt opslaan:
        • Persoonlijk macro-werkboek - slaat de macro op in een speciale werkmap genaamd Persoonlijk.xlsb Alle macro's in deze werkmap zijn beschikbaar wanneer u Excel gebruikt.
        • Dit werkboek (standaard) - de macro wordt opgeslagen in de huidige werkmap en is beschikbaar wanneer u de werkmap opnieuw opent of deelt met andere gebruikers.
        • Nieuw werkboek - creëert een nieuwe werkmap en neemt de macro in die werkmap op.
      • In de Beschrijving vak een korte beschrijving in van wat uw macro doet (optioneel).

        Hoewel dit veld optioneel is, raad ik u aan altijd een korte beschrijving te geven. Wanneer u veel verschillende macro's maakt, helpt het u snel te begrijpen wat elke macro doet.

      • Klik op OK om de opname van de macro te starten.

    3. Voer de handelingen uit die u wilt automatiseren (zie het voorbeeld van de opnamemacro).
    4. Wanneer u klaar bent, klikt u op de Stop opname knop op de Ontwikkelaar tab:

      Of de analoge knop op de Status bar:

    Voorbeeld van het opnemen van een macro in Excel

    Om te zien hoe het in de praktijk werkt, laten we een macro opnemen die wat opmaak toepast op de geselecteerde cellen. Doe hiervoor het volgende:

    1. Selecteer één of meer cellen die u wilt opmaken.
    2. Op de Ontwikkelaar tab of Status balk, klik op Opname Macro .
    3. In de Opname Macro dialoogvenster, configureer de volgende instellingen:
      • Naam van de macro Koptekst_opmaak (omdat we kolomkoppen gaan opmaken).
      • Plaats de cursor in de Sneltoets en druk tegelijkertijd op de toetsen Shift + F. Hierdoor wordt de snelkoppeling Ctrl + Shift + F toegewezen aan de macro.
      • Kies ervoor om de macro in deze werkmap op te slaan.
      • Voor Beschrijving gebruik de volgende tekst die uitlegt wat de macro doet: Maakt tekst vet, voegt vulkleur toe en centreert .
      • Klik op OK om de opname te starten.

    4. Formatteer de voorgeselecteerde cellen zoals u wilt. In dit voorbeeld gebruiken we de vetgedrukte tekstopmaak, lichtblauwe vulkleur en gecentreerde uitlijning.

      Tip. Selecteer geen cellen nadat u de macro bent begonnen op te nemen. Dit zorgt ervoor dat alle opmaak naar de selectie niet een specifiek bereik.

    5. Klik op Stop opname op de Ontwikkelaar tabblad of de Status bar.

    Uw macro is opgenomen. Nu kunt u een willekeurig cellenbereik in een willekeurig blad selecteren, op de toegewezen snelkoppeling ( Ctrl+ Shift + F ) drukken, en uw aangepaste opmaak wordt onmiddellijk toegepast op de geselecteerde cellen.

    Werken met opgenomen macro's in Excel

    Alle belangrijke opties die Excel biedt voor macro's zijn toegankelijk via het Macro Om het dialoogvenster te openen, klikt u op de knop Macro's knop op de Ontwikkelaar of druk op de sneltoets Alt+ F8.

    In het dialoogvenster dat opent, kunt u een lijst van macro's bekijken die beschikbaar zijn in alle geopende werkmappen of die gekoppeld zijn aan een bepaalde werkmap, en gebruik maken van de volgende opties:

    • Ren - voert de geselecteerde macro uit.
    • Stap in - kunt u de macro debuggen en testen in de Visual Basic Editor.
    • Bewerk - opent de geselecteerde macro in de VBA-editor, waar u de code kunt bekijken en bewerken.
    • Verwijder - verwijdert de geselecteerde macro definitief.
    • Opties - maakt het mogelijk de eigenschappen van de macro, zoals de bijbehorende Snelkoppeling sleutel en Beschrijving .

    Macro's bekijken in Excel

    De code van een Excel-macro kan worden bekeken en gewijzigd in de Visual Basic Editor. Om de Editor te openen drukt u op Alt + F11 of klikt u op de knop Visual Basic knop op de Ontwikkelaar tab.

    Als u de VB-editor voor het eerst ziet, voel u dan niet ontmoedigd of geïntimideerd. We gaan het niet hebben over de structuur of syntaxis van de VBA-taal. Dit gedeelte geeft u alleen wat basiskennis over hoe Excel-macro's werken en wat het opnemen van een macro eigenlijk doet.

    De VBA-editor heeft verschillende vensters, maar we concentreren ons op de twee belangrijkste:

    Projectverkenner - toont een lijst van alle geopende werkmappen en hun bladen. Daarnaast toont het modules, gebruikersformulieren en klassemodules.

    Code Venster - hier kunt u VBA-code bekijken, bewerken en schrijven voor elk object dat in de Project Explorer wordt weergegeven.

    Toen we de voorbeeldmacro opnamen, gebeurde het volgende in de backend:

    • Een nieuwe module ( Moduel1 ) werd ingevoegd.
    • De VBA-code van de macro is geschreven in het venster Code.

    Om de code van een specifieke module te zien, dubbelklikt u op de module ( Module1 in ons geval) in het Project Explorer-venster. Normaal gesproken bestaat een macrocode uit deze onderdelen:

    Macro naam

    In VBA begint elke macro met Sub gevolgd door de macronaam en eindigt met Einde Sub waarbij "Sub" een afkorting is voor Subroutine (ook wel Procedure Onze voorbeeldmacro heet Header_Formatting() dus de code begint met deze regel:

    Sub Kop-opmaak()

    Als u de macro hernoemen verwijdert u gewoon de huidige naam en typt u een nieuwe rechtstreeks in het Codevenster.

    Opmerkingen

    Regels voorafgegaan door een apostrof (') en standaard in groen weergegeven, worden niet uitgevoerd. Dit is commentaar dat ter informatie is toegevoegd. De commentaarregels kunnen veilig worden verwijderd zonder de functionaliteit van de code te beïnvloeden.

    Gewoonlijk heeft een opgenomen macro 1 - 3 commentaarregels: macronaam (verplicht); beschrijving en snelkoppeling (indien opgegeven vóór de opname).

    Uitvoerbare code

    Na het commentaar komt de code die de opgenomen acties uitvoert. Soms bevat een opgenomen macro veel overbodige code, die toch nuttig kan zijn om uit te zoeken hoe dingen werken met VBA :)

    De onderstaande afbeelding toont wat elk deel van de code van onze macro doet:

    Een opgenomen macro uitvoeren

    Door een macro uit te voeren, vertelt u Excel om terug te gaan naar de opgenomen VBA-code en exact dezelfde stappen uit te voeren. Er zijn een paar manieren om een opgenomen macro in Excel uit te voeren, en hier zijn de snelste:

    • Als u een toetsenbordcombinatie naar de macro, druk op die snelkoppeling.
    • Druk op Alt + 8 of klik op de Macro's knop op de Ontwikkelaar tabblad. In de Macro dialoogvenster, selecteer de gewenste macro en klik op Ren .

    Het is ook mogelijk een opgenomen macro uit te voeren door op uw eigen knop te klikken. Hier volgen de stappen om er een te maken: Hoe maak ik een macroknop in Excel.

    Macro's opslaan in Excel

    Of je nu een macro hebt opgenomen of handmatig VBA-code hebt geschreven, om de macro op te slaan moet je de werkmap opslaan als macro ingeschakeld (.xlms extensie). Hier lees je hoe:

    1. Klik in de werkmap die de macro bevat op de knop Sla toets of druk op Ctrl + S .
    2. In de Opslaan als dialoogvenster, kies Excel werkmap met macro's (*.xlsm) van de Opslaan als type drop-down lijst, en klik dan op Sla :

    Excel-macro's: wat wel en wat niet wordt opgenomen

    Zoals u zojuist hebt gezien, is het vrij eenvoudig om een macro in Excel op te nemen. Maar om effectieve macro's te maken, moet u begrijpen wat er achter de schermen gebeurt.

    Wat is opgenomen

    De Macro Recorder van Excel registreert nogal wat - bijna alle muisklikken en toetsaanslagen. U moet dus goed nadenken over uw stappen om overtollige code te vermijden die kan leiden tot onverwacht gedrag van uw macro. Hieronder staan enkele voorbeelden van wat Excel registreert:

    • Het selecteren van cellen met de muis of het toetsenbord. Alleen de laatste selectie voor een actie wordt opgenomen. Als u bijvoorbeeld het bereik A1:A10 selecteert en vervolgens op cel A11 klikt, wordt alleen de selectie van A11 opgenomen.
    • Celopmaak zoals vul- en letterkleur, uitlijning, randen, enz.
    • Nummeropmaak zoals percentage, valuta, enz.
    • Formules en waarden bewerken. Wijzigingen worden vastgelegd nadat u op Enter hebt gedrukt.
    • Scrollen, Excel-vensters verplaatsen, overschakelen naar andere werkbladen en werkmappen.
    • Werkbladen toevoegen, benoemen, verplaatsen en verwijderen.
    • Werkmappen aanmaken, openen en opslaan.
    • Andere macro's uitvoeren.

    Wat niet kan worden opgenomen

    Ondanks de vele verschillende dingen die Excel kan opnemen, vallen bepaalde functies buiten de mogelijkheden van de Macro Recorder:

    • Aanpassingen van het Excel-lint en de werkbalk Snelle toegang.
    • Acties in Excel-dialogen zoals Voorwaardelijke opmaak of Zoeken en vervangen (alleen het resultaat wordt geregistreerd).
    • Interacties met andere programma's. U kunt bijvoorbeeld niet kopiëren/plakken van een Excel-werkmap in een Word-document.
    • Alles waarbij de VBA-editor betrokken is. Dit legt de belangrijkste beperkingen op - veel dingen die op programmeerniveau kunnen worden gedaan, kunnen niet worden opgenomen:
      • Aangepaste functies maken
      • Aangepaste dialoogvensters weergeven
      • Lussen maken zoals Voor de volgende , Voor elke , Doe Terwijl enz.
      • Voorwaarden evalueren. In VBA kun je de IF Dan Else statement om een voorwaarde te testen en bepaalde code uit te voeren als de voorwaarde waar is, of een andere code als de voorwaarde onwaar is.
      • Code uitvoeren op basis van gebeurtenissen. Met VBA kunt u veel gebeurtenissen gebruiken om een code uit te voeren die bij die gebeurtenis hoort (zoals het openen van een werkmap, het opnieuw berekenen van een werkblad, het wijzigen van de selectie, enzovoort).
      • Argumenten gebruiken Bij het schrijven van een macro in de VBA-editor kunt u invoerargumenten geven om een macro een bepaalde taak te laten uitvoeren. Een opgenomen macro kan geen argumenten hebben, omdat hij onafhankelijk is en niet verbonden is met andere macro's.
      • Als u bijvoorbeeld een macro opneemt die specifieke cellen kopieert, bijvoorbeeld in de Totaal rij, zal Excel alleen de adressen van de gekopieerde cellen registreren. Met VBA kunt u de logica coderen, d.w.z. de waarden in de Totaal rij.

    Hoewel de bovenstaande beperkingen veel grenzen stellen aan opgenomen macro's, vormen ze toch een goed uitgangspunt. Zelfs als u geen idee hebt van de VBA-taal, kunt u snel een macro opnemen en vervolgens de code ervan analyseren.

    Nuttige tips voor het opnemen van macro's in Excel

    Hieronder vindt u een aantal tips en opmerkingen die u mogelijk veel tijd en zenuwen kunnen besparen, waardoor uw leercurve soepeler en macro's efficiënter worden.

    Gebruik relatieve referenties voor macro-opnamen

    Standaard gebruikt Excel absoluut verwijzing naar Dat betekent dat uw VBA-code altijd verwijst naar precies dezelfde cellen die u hebt geselecteerd, ongeacht waar u zich in het werkblad bevindt wanneer u de macro uitvoert.

    Het is echter mogelijk om het standaardgedrag te veranderen in relatieve verwijzing In dit geval zal VBA de celadressen niet hard coderen, maar relatief met de actieve (momenteel geselecteerde) cel werken.

    Om een macro met relatieve verwijzing op te nemen, klikt u op de knop Gebruik Relatieve referenties knop op de Ontwikkelaar Om terug te keren naar absolute verwijzingen, klikt u nogmaals op de knop om deze uit te schakelen.

    Als u bijvoorbeeld een tabel opneemt met de standaard absolute verwijzing, zal uw macro de tabel altijd opnieuw aanmaken op dezelfde plaats (in dit geval, Kop in A1, Item1 in A2, Item2 in A3).

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

    Als u dezelfde macro opneemt met relatieve verwijzing, wordt de tabel aangemaakt waar u de cursor plaatst voordat u de macro uitvoert ( Kop in de actieve cel, Item1 in de onderstaande cel, enzovoort).

    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 Sub

    Opmerkingen:

    • Wanneer u relatieve verwijzingen gebruikt, moet u de eerste cel selecteren voordat u een macro begint op te nemen.
    • Relatieve verwijzingen werken niet voor alles. Sommige functies van Excel, bijvoorbeeld het converteren van een bereik naar een tabel, vereisen absolute verwijzingen.

    Bereiken selecteren met behulp van sneltoetsen

    Wanneer u een cel of een bereik van cellen selecteert met de muis of de pijltjestoetsen, schrijft Excel de celadressen. Bijgevolg zullen, wanneer u een macro uitvoert, de opgenomen bewerkingen precies op dezelfde cellen worden uitgevoerd. Als u dit niet wilt, gebruik dan sneltoetsen voor het selecteren van cellen en bereiken.

    Laten we als voorbeeld een macro opnemen die een specifiek formaat (d-mmm-yy) instelt voor de datums in de onderstaande tabel:

    Hiervoor neemt u de volgende handelingen op: druk op Ctrl + 1 om de Cellen opmaken dialoogvenster> Datum> kies formaat> OK. Indien uw opname het selecteren van het bereik met de muis of de pijltjestoetsen omvat, zal Excel de volgende VBA-code produceren:

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

    Als de bovenstaande macro wordt uitgevoerd, wordt telkens het bereik A2:B4 geselecteerd. Als u meer rijen aan uw tabel toevoegt, worden die niet door de macro verwerkt.

    Laten we eens kijken wat er gebeurt als je de tabel selecteert met een snelkoppeling.

    Plaats de cursor in de cel linksboven van het doelbereik (A2 in dit voorbeeld), start de opname en druk op Ctrl + Shift + End . Het resultaat is dat de eerste regel van de code er als volgt uitziet:

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

    Deze code selecteert alle cellen vanaf de actieve cel tot de laatst gebruikte cel, wat betekent dat alle nieuwe gegevens automatisch in de selectie worden opgenomen.

    U kunt ook de combinaties Ctrl + Shift + Pijltjes gebruiken:

    • Ctrl + Shift + Pijl naar rechts om alle gebruikte cellen rechts te selecteren, gevolgd door
    • Ctrl + Shift + Pijl omlaag om alle gebruikte cellen omlaag te selecteren.

    Dit genereert twee coderegels in plaats van één, maar het resultaat is hetzelfde - alle cellen met gegevens beneden en rechts van de actieve cel worden geselecteerd:

    Range(Selection, Selection. End (xlToRight)). Selecteer Range(Selection, Selection. End (xlDown)). Selecteer

    Een macro opnemen voor selectie in plaats van specifieke cellen

    De bovenstaande methode (d.w.z. het selecteren van alle gebruikte cellen beginnend met de actieve cel) werkt prima voor het uitvoeren van dezelfde bewerkingen op de hele tabel. In sommige situaties wilt u echter dat de macro een bepaald bereik bewerkt in plaats van de hele tabel.

    Hiervoor biedt VBA de Selectie object dat verwijst naar de momenteel geselecteerde cel(len). De meeste dingen die kunnen worden gedaan met een bereik, kunnen ook worden gedaan met selectie. Welk voordeel heeft dit voor u? In veel gevallen hoeft u helemaal niets te selecteren tijdens het opnemen - schrijf gewoon een macro voor de actieve cel. En selecteer vervolgens een willekeurig bereik dat u wilt, voer de macro uit, en het zal de hele selectie manipuleren.

    Deze eenregelige macro kan bijvoorbeeld een willekeurig aantal geselecteerde cellen opmaken als percentages:

    Sub Percent_Format() Selection.NumberFormat = "0.00%" End Sub

    Plan zorgvuldig wat u opneemt

    De Microsoft Excel Macro Recorder legt bijna al uw activiteiten vast, inclusief de fouten die u maakt en corrigeert. Als u bijvoorbeeld op Ctrl + Z drukt om iets ongedaan te maken, wordt dat ook opgenomen. Uiteindelijk kunt u met veel overbodige code komen te zitten. Om dit te voorkomen kunt u de code bewerken in de VB-editor of de opname stoppen, een gebrekkige macro verwijderen en opnieuw beginnen met opnemen.

    Een back-up maken of werkmap opslaan voordat een macro wordt uitgevoerd

    Het resultaat van Excel-macro's kan niet ongedaan worden gemaakt. Het is dus verstandig om vóór de eerste uitvoering van een macro een kopie van de werkmap te maken of ten minste uw huidige werk op te slaan om onverwachte wijzigingen te voorkomen. Als de macro iets verkeerd doet, sluit u gewoon de werkmap zonder op te slaan.

    Houd opgenomen macro's kort

    Wanneer u een reeks verschillende taken automatiseert, kunt u in de verleiding komen om ze allemaal in één macro op te nemen. Er zijn twee belangrijke redenen om dit niet te doen. Ten eerste is het moeilijk om een lange macro foutloos op te nemen. Ten tweede zijn grote macro's moeilijk te begrijpen, te testen en te debuggen. Daarom is het een goed idee om een grote macro in verschillende delen op te splitsen. Bijvoorbeeld bij het maken van een overzichtstabeluit meerdere bronnen, kunt u één macro gebruiken om informatie te importeren, een andere om gegevens te consolideren, en een derde om de tabel op te maken.

    Ik hoop dat deze tutorial u enig inzicht heeft gegeven in hoe u een macro in Excel kunt opnemen. In ieder geval dank ik u voor het lezen en ik hoop u volgende week op onze blog te zien!

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.