Thanks for your replies:
Jeff - Yea, I think im getting it now.
Kerry - Im not 100% certain here, but, i think the key word 'object' in jeff's post means that what he is saying is correct, because, objects are reference types and appear to be passed ByRef only.
As for the microsoft link - im not getting it - I dont understand the meaning of;
Im probably being terribly thick here but in what way can you 'change the variable' if its not by changing its value and/or member values??The procedure cannot change the variable but can change members of the instance to which it points.
In my starting post I am passing the list ByVal which,acording to the table, means i cant change the variable but can change the variable's members. Well the list variable changes contents - so what exactly am i changing here. I thought it was the variable i.e. its value....so confused.
I suppose its not that much of an issue because its not hard to avoid problems relating to passing objects. You just make a clone/copy to operate on. BUT I think I'm missing something fundamental here so if someone can enlighten me I would be very greatfull.
Regards
Matt