On the idea of the timer loop ,,,
You wouldn't try to synchronise it with the inputs - just let it free-run.
I assume that it's not terribly important to display a change immediately
you get it - a second or so probably wouldn't make much difference. I.e.,
if you ran the timed loop at say 1 second and checked all the inputs, you'd
be no more than a second late in displaying changes when they arrived.
However, it would certainly be better to trap an event if one is generated
by the DDE.
I don't think Excel will ever notice a colour change. It isn't a cell
change as such, and no event will be generated, even if you do it through
the keyboard. (I think.)