There are two things here. One is a public variable which is an instance variable and the other is a public variable which is a static variable(shared in VB).
If you make a instance variable say Property1 as public, then you can access it with the object as :
objWebForm1.Property1
If you mark the variable as static(shared), then you can access it with classname as :
WebForm1.Proeperty1 - and it will be common for all instances of WebForm1.
Regards,
Vikram