Functions are ultimately more powerful since you can store them, pass them to other functions, partially apply them, etc. You can't do that with macros, of course.
But macros allow very repetitive stuff to be automated which is a real productivity win.