in precedent version of qlikview, there are not so actions as in qlik 9-10-11. So macro were useful also to set selections, whereas now there is a standard action to do this.
There are non standard actions that you could do only with macro, ie to loop on the values of a field and then print a pdf, to repeat some actions(ie set the allow move size to all objects in all the sheets),...
But macro not always acts as aspected, ie with a client(ajax,plugin) they works with another no. And if you use the distribution service to reload the macro based on objects will not work.
Hope this help, it is not much..
Macro are some time needed for the some extra actions which are sometime not in-built in Qlikview.
Even some time these macros are written to just enhance some exsisting actions ,like email sending etc.
here some links for Macros in Qlikview
Refer to Reference Manual Of Qlikview