title: Private Let / Public Get - Let not visible from within the class
body: <p>I've written a class in VBA, with members and properties set up as follows:</p>
  
  <pre><code>Private mSomeVar As String
  
  Public Property Get SomeVar() As String
      '...
  End Property
  
  Private Property Let SomeVar(value As String)
      '...
  End Property
  </code></pre>
  
  <p>Which seems like pretty standard practice - read-only properties with private Let functions so the class itself can modify the value, and I can apply some logic (validation, etc) in the property body while doing so, whilst preventing anything outside the class from changing it.</p>
  
  <p>The problem is, when I try to use the Private property from <em>within the class</em>, the VBE tells me that it cannot be found:</p>
  
  <pre><code>Private Sub SomeInternalMethod()
      'Compile error: Method or data member not found
      Me.SomeVar = "new value" 
  End Sub
  </code></pre>
  
  <p>Why can't I use the class's own private properties from within the class itself? If they're invisible from both within and without, is it possible to use private properties at all?</p>