Sort of. If the macro is started by a timer, the interface (or the software if the macro is run from the PC) checks the conditions when the timer runs. If the interface receives an external command (from a remote remote, motion sensor, powerline input, etc.), it checks the macro table to see what should run, then executes the macro after testing the conditions.
A macro is only started from either a timer or external input. One can't just run as soon as one of its conditions becomes true.