It is not the macro that is the main problem. It is the lack of familiarity with proc iml language. Macro generated or not, the so called wall-paper code clearly shows the lack of understanding of language or programming fundamentals.

It seems obvious from your reference to the non-existing %EVALF macro function that I can see your macro code (if you have to write some) would do a strange thing or two,