Why can't the VBA Me keyword access private procedures in its own module?
Any guess as to why it was designed that way would be pure supposition without talking to the designers. But my own guess is this, the Me
keyword returns a reference to the object the code is currently executing in. I would guess rather than create a special case for Me
, they found it easier to continue to obey rules of scope for an object. Which is to say object.method
can only work on public or friend methods. So Me
, is exactly what it says, an instance of the currently executing object. And since VBA/VB6 doesn't have shared methods, it doesn't really matter if you prefix with Me
or not.
But if it makes you feel any better, I find it incredibly obnoxious too.
You do not need the Me
keyword to call inside own class.