RE: macros
Once you have run a macro command, the undo facility is no longer enabled. The reason for this is because you have carried out a set of commands, ie a Macro, as opposed to a single command or action.
Therefore once you have carried out a macro command you are unable to undo the actions automatically. If you can remember the various steps of the macro you will be able to manually undo by undertaking each step separately.