OK - I might have mis-understood what you're wanting to do.
I read it as you wanted to run a macro BOTH from an external (real) button AND from a screen button.
I'm now thinking the use of a screen button was just your way of trying it and that all you really want is to run a macro from an external button. Is that correct?
If so then forget about the screen button completely.
Just use the macropump and if you don't want to put all the code IN the macropump then call it using runScript.
A word about trigger macros.
In this post
http://www.machsupport.com/forum/index.php/topic,15120.msg101160.html#msg101160 I describe a way to fire multiple macros using OEMTriggers.
However, after I wrote that I discovered an annoying bug so I would use the macropump now instead.
The bug, if you're interested, is that whilst an OEM code trigger fires immediately, the trigger macro doesn't fire if there's anything in the gcode buffer. i.e. it will fire at some time later when the buffer becomes empty. If that's ok for your usage then fine but often you want the macro to run immediately regardless and that won't work. Like I said earlier I asked Brian to fix this ages ago when Mach3 was still supported but he chose not to for whatever reason.