Hi Dave,
This has intrigued me, mainly because I don't understand and I would like to.
In my view of the world, you use functions in one of two ways
1) to check the validity of a situation and return True or False so that the caller can then act accordingly, OR
2) to effect a certain operation, and return a return code so that the caller can then act accordingly.
In other words, they are diversions from the main logic flow, used to control the main application flow (similar to simple IF tests against builtin values, suich as
IF date = TODAY Then (pseudo code)).
Taking my view to the extreme, they are not part of the main app, but simply used to provide functionality not built-in, so should be in a separate module to the main app.
Your example seems to be neither of these, and I fail to understand its purpose as the MsgBox can never ever be displayed. But you clearly see value in the technique, so can you have another go at explaining it to me, maybe with a real world example?