I think that the penny has dropped.
When you define the macros, you are basically telling IDE to replace what ever chatacters that you have defined with the ones that you specify. Is this correct?
So if I use #define PRINTS(s) { Serial.print(F(s)); } and #define PRINTS(s), I would need to find and replace my 'Serial.print' commands and replace them with 'PRINTS'?
I misunderstood, I thought that these macros were instructing IDE to ignore the Serial.print command.