ByVal modifiers are part of a procedure's signature and indicate how an argument is passed to a procedure. In VBA a parameter is passed
ByRef unless specified otherwise (i.e.
ByRef is implicit if absent).
Note In many other programming languages (including VB.NET), parameters are implicitly passed by value if no modifier is specified: consider specifying
ByRef modifiers explicitly to avoid possible confusion.
MessageBox is a simple concept for decoupling entities.
For example entity A can place a message that entity B can read whenever suitable.
A view controller would like to talk to another view controller, but you don't want to create a strong or weak relationship.