Thanks Jooel. I was surprised to catch error codes in my script where I did not expect them. It is not documented that the return value and the error code for MessageBox are the same. I think it would be much better to get return values where you expect them. Always.
OK, maybe the error code from MessageBox is of little value. But if I use code afterwards (UDF?) that does not set errors as it should, I do catch errors where I did not want to catch them.
As Jooel says, error is error.