Why can't the VBA Me keyword access private procedures in its own module? Why can't the VBA Me keyword access private procedures in its own module? vba vba

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.


Me is this class object instance. So no one can directly call private subs or functions or access private variables except this class public functions or subs.