We are all told that using protection is a good thing. This applies to both real life and also programming, both in full OOP and the quasi OOP world of VBA / VB. It can be possible in some cases for your variables to be changed inside the sub / function you have called, even the ones one may have designated in your human mind as ‘input’ variables. This can lead to odd behaviour and hard to find bugs.
So.. what am I going on about? Well I am talking about passing by value or by reference. (Experienced VBA Programmers may want to skip this bit). In VBA you can use two keywords ByRef or ByVal when defining your Sub or Function.