2014-04-23 43 views
0

我已經寫在VBA一類的類內不可見的,其成員並設置屬性如下:讓私人/公共獲取 - 讓來自

Private mSomeVar As String 

Public Property Get SomeVar() As String 
    '... 
End Property 

Private Property Let SomeVar(value As String) 
    '... 
End Property 

這似乎是相當標準的做法 - 讀 - 只有帶有私人Let函數的屬性,所以類本身可以修改這個值,並且我可以在屬性體中應用一些邏輯(驗證等),同時防止類外的任何內容改變它。

的問題是,當我嘗試類內使用私人財產的VBE告訴我,它不能被發現:

Private Sub SomeInternalMethod() 
    'Compile error: Method or data member not found 
    Me.SomeVar = "new value" 
End Sub 

爲什麼我不能使用該類自己的私有類內部的屬性?如果他們在內外都不可見,是否有可能使用私有財產?

+0

的可能重複[爲什麼不能在自己的模塊中的VBA Me關鍵字訪問私有程序?(http://stackoverflow.com/questions/1895633/why-cant-the-vba -Me關鍵字存取私人程序,在其通自己的模塊) – RubberDuck

回答

0

只要不使用Me對象

Private Sub SomeInternalMethod() 
    SomeVar = "new value" 
End Sub