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
-
2 profile views
-
Last seen Jul 2 '19 at 18:11
Communities (41)
- Code Review♦ 74k 74k 1717 gold badges179179 silver badges450450 bronze badges
- Stack Overflow 64.3k 64.3k 88 gold badges9090 silver badges205205 bronze badges
- Meta Stack Exchange 7.6k 7.6k 22 gold badges2626 silver badges5151 bronze badges
- Software Engineering 1.6k 1.6k 1616 silver badges3030 bronze badges
- Database Administrators 884 884 22 gold badges77 silver badges1414 bronze badges
- View network profile
Top network posts
- 123 Down with FizzBuzz... LOL
- 104 Is VBA an OOP language, and does it support polymorphism?
- 61 Interview coding test: Fizz Buzz
- 54 Are there disadvantages in putting code into Userforms instead of modules?
- 54 Implementing String.Format() in VB6
- 53 Unit of Work and Repository with Entity Framework 6
- 52 Please show hats in the Android app (aka android app hates hats)
- View more network posts →
Keeping a low profile.
This user hasn't posted yet.
Badges (6)
Gold
—
Silver
2