I have to interject that I use both Autohotkey and Strokeit to fill my macro needs. Both are excellent programs, and are easily programmed.

Autohotkey watches for specific keystrokes and then performs a macro, while strokeit utilizes mouse gestures to do the same.

Here at work, I use autohotkey to translate UPC barcodes into the item numbers we use to track inventory (These numbers are human readable, UPC is not.) all I have to do is scan the barcode, AHK sees the matching string, deletes it, and re-enters the corresponding code.