Also keep in mind that if you are passing string data to a sub or function and that string is very large then using byVal will slow things down a bit. In most cases it is a very small amount but in cases where the procedure is called many times with with a string of 100 bytes or more then it starts to become an issue as byVal sends a copy of the data whereas byRef sends a reference to the string. The reference will be the same small size no matter how much data is in the string but the byVal data will be the size of the string. Strings of just 1-8 bytes will be as fast or possibly even faster byVal larger ones will not.