Technically, this isn’t a macro, but its very easy to set the default printer using the shell command lpoptions.
This command:
lpstat -a
will list out all your configured printers with their names.
And then
lpoptions -d PRINTERNAME
will set the default printer.
As usual, I found this while researching a support query, and I found it by the standard technique of doing a web search for:
AppleScript set the default printer
Note that the result is not an AppleScript at all, but AppleScript works as a great filter because it means the result is Mac-specific, and since AppleScript can execute shell scripts, it finds any shell commands like this as well.
Note that one should always search for a non-AppleScript solution too:
os x shell set printer
For instance.
It’s not uncommon to miss shell script solutions when you include AppleScript, because some of the geekier (most accomplished) scripters will post Bash (or other shell) only scripts.
I will usually do what Peter said first and then if I don’t find what I need I’ll try the other.
I've had a macro set that utilizes lpstat to change printers based on my network SSID (essentially my location). One printer for home, another for work, and PDF for elsewhere. Very useful!