Is there a better (faster) way to do this?

The case statement solution I posted is exactly that only in 1 macro as you requested. That said, @Nige_S 's is fa more surgical.