What's the difference between Blueprint Macros and Blueprint Functions?

A function can take parameters, and can return multiple values, hence they are far more flexible than Macro’s.

To find the parameter set up, just click on the entry node to the function, and then look in your details panel, there you can create as many parameter’s and return values as you wish

A macro, and all macro’s are truely nothing more, than saying,

I want to take this sequence of statements/nodes, and give it a name, and where ever “you the compiler” see this, inline the macro and compile it up. So long as the macro’s are kept to a reasonable complexity, they are handy. But for breaking down a problem, and being able to compartmentalize, etc, functions to me, are far better. Some say it’s a matter of taste, I argue, it’s also a matter of code isolation.