The screen and M codes don't mix well, they don't like to talk.
So you should use the macro to change the value of a register AKA a "Flag"
Then using the PLC script or a timer, you can scan for this flag (change of register value) and trigger the timer via a scripted function in the screen (or a module if you're savvy)
There are lots of ways to do this however you need a way to communicate from a macro, to the screen.
A flag of some nature, an output or register typically. (If you use an output you can use the signal script in the screen.)
You also don't change the state of inputs, you change the state of outputs.
Changing the state of an input.... would make it an output?
I've had this discussion with Brian before as I've attempted to change input states as well and.... let's just say he told me not to do that and laughed at me

Send a ticket into support if you need to!