1. A programmer for programming an implantable pulse generator comprising: a programmer memory; data entry means to enter implantable pulse generator programming variables into the programmer memory; a processor to transform the entry of programming variables into an executable macro as the variables are entered and storing the macro in the programmer memory; and a communication module to transmit the programming variables to the pulse generator when the processor executes the macro.