excel-vba
Hoe een macro op te nemen
Zoeken…
Hoe een macro op te nemen
De eenvoudigste manier om een macro op te nemen, is de knop linksonder in Excel:
Wanneer u hierop klikt, krijgt u een pop-up waarin u wordt gevraagd de Macro een naam te geven en te beslissen of u een sneltoets wilt gebruiken. Ook wordt gevraagd waar de macro moet worden opgeslagen en om een beschrijving. U kunt elke gewenste naam kiezen, geen spaties toegestaan.
Als u een snelkoppeling aan uw macro wilt toewijzen voor snel gebruik, kiest u een letter die u onthoudt, zodat u de macro snel en gemakkelijk steeds opnieuw kunt gebruiken.
U kunt de macro opslaan in 'Deze werkmap', 'Nieuwe werkmap' of 'Persoonlijke macrowerkmap'. Als u wilt dat de macro die u gaat opnemen alleen beschikbaar is in de huidige werkmap, kiest u 'Deze werkmap'. Als u het wilt opslaan in een geheel nieuwe werkmap, kiest u "Nieuwe werkmap". En als u wilt dat de macro beschikbaar is voor elke werkmap die u opent, kiest u 'Persoonlijke macrowerkmap'.
Nadat je deze pop-up hebt ingevuld, klik je op "Ok".
Voer vervolgens de acties uit die u wilt herhalen met de macro. Als u klaar bent, klikt u op dezelfde knop om de opname te stoppen. Het ziet er nu zo uit:
Nu kunt u naar het tabblad Ontwikkelaars gaan en Visual Basic openen. (of gebruik Alt + F11)
U hebt nu een nieuwe module in de map Modules.
De nieuwste module bevat de macro die u zojuist hebt opgenomen. Dubbelklik erop om het te openen.
Ik heb een eenvoudige kopie en plak:
Sub Macro1()
'
' Macro1 Macro
'
'
Selection.Copy
Range("A12").Select
ActiveSheet.Paste
End Sub
Als je niet wilt dat het altijd in "A12" plakt, kun je Relatieve verwijzingen gebruiken door het vakje "Relatieve verwijzingen gebruiken" op het tabblad Ontwikkelaars aan te vinken:
Door dezelfde stappen te volgen als eerder, wordt de Macro nu in dit:
Sub Macro2()
'
' Macro2 Macro
'
'
Selection.Copy
ActiveCell.Offset(11, 0).Range("A1").Select
ActiveSheet.Paste
End Sub
De waarde van "A1" wordt nog steeds naar een cel 11 rijen lager gekopieerd, maar nu kunt u dezelfde macro met elke startcel uitvoeren en de waarde van die cel wordt naar de cel 11 rijen lager gekopieerd.