Multiple classes in a single library with shared functionality?

That's all great info thanks, it hadn't occurred to me that I could create an array if instances, explicitly defined or otherwise ....
Most interesting.
I expect that means that types are also possible but that would be another question.

" foo3.myvar is not the third instance of foo. foo3 might be. "
I do get that but looking at my question I can see that I wasn't clear.
I think I should have said ... If foo3.myvar is a member of the third instance of foo

Your final comment is the one that I would like to pursue ...

Assume I have 1 instance of bar.
bar has a method/function that needs to be aware of any and all instances of foo, so it can manipulate their public's variables or functions.

The rational is thus ....
foo will be instanced several times and will expose functions and variables unique to a specific instance, nothing odd about that.
However ...
One function of the foo class instance, without bar, would be fooX.Update
This would need to be called once on every program scan and will need to calculate the previous scan time.
I could call fooX.Update for every instance of foo but that would mean calculating the scan time Xmax times.

What I would like to do is call bar1.Update, calculate the scan time just once, and then loop through all instances of foo and modify them accordingly.

That takes me back to your last comment ...
Should foo tell bar that a new instance of foo has been created, and supply handle.
OR
Should bar be responsible for creating instances of foo in the first place

Whatever your thoughts the basic question is how... My head hurts, I should have learned C and not VB