Yes the macro can and will run again if it is already running.
A way to prevent this is use a flag condition that if on the macro won't run
next add a set flag (same as the condition) at the start of the macro.
at the last step of the macro add a clear flag (same number as the set flag)