Macro is a feature that lets you execute a bunch of tasks for selected records quickly.
Let's say you are required to call up a fresh set of leads every day. Once you are done with the call, you need to send them a standard email and update the lead status to "Contacted". And after that, you assign the leads to your colleague so he can take things further. Now you have 3 things to do in the CRM,
send mail
update field
create task
Instead of doing the same thing for every lead, you can create a "macro" for these 3 tasks. Then you can simply select the records and run macro. So all these changes would be applied to the selected records, thus saving you a lot of time and efforts.