I've used %WINDOW a little, but if I'm going to use it, I prefer using
WINDOW/DISPLAY in a data step. Basically, I use it for reading and
validating parameters - years, months, files, that sort of stuff.
I define the window, then put the define in a do until() loop. Once each
input variable is validated, I write it out to a data step and continue, or
do something call execute and pass the variables to a macro.
The trouble I have with using the macro version is that it lacks a lot of
the functions, one, and two is restricted to character, when sometimes you
want to do number stuff.