Mathieu Guindon
About Me
Me
is a reserved name (you can't have a variable by that name) that refers to something that can only exist at run-time in a procedure's scope: the current object. Under the hood, when you make a member call to DoSomething
against a Class1
object, the call goes essentially like this:
Set obj = New Class1
Class1.DoSomething obj
This means DoSomething
looks like this in VBA:
Public Sub DoSomething()
End Sub
But VBA sees it like this:
Public Sub DoSomething(ByVal Me As Class1)
End Sub
That makes Me
an implicit locally-scoped ByVal
parameter of type Class1
, and inside the DoSomething
scope it holds a reference to whatever object the caller is currently using.
Moderator on Code Review Stack Exchange, 2015-2018, 2019-
Microsoft MVP (Office Apps & Services), 2018-
-
Quebec
-
Member for 6 years, 4 months
-
133 profile views
-
Last seen Sep 1 '20 at 1:30
Communities (41)
Top network posts
Badges (15)
Gold
Rarest
-
Apr 12 '18
Silver
Rarest
-
Apr 11 '18
-
Apr 10 '18
Bronze
Rarest
-
Apr 11 '18
-
Apr 12 '18
-
May 18 '17