Imagine that you are going to the restaurent to have a diner there are two alternatives: Alternative1: go to the restaurent and take a place(chose a table 3 for example and sit down)by your self. Alternative2: Call the retaurent to reserve the table 3(you can reserve it for you or for your freind for example) Finally the table 3 is not free but the in case one there is someone you and for the case two there is some one but it is not present right now, it will be present at the dinner Now, the when you define a variable as byValue that means that you variable occupe a place in a memory by it self. but if you define a variable as byRef that means that you reserve a place to your value to accupe at the run time reguradless of your variable value