मैंने अभी पाया है कि मेरा कीवर्ड निजी प्रक्रियाओं तक पहुंच नहीं सकता है, भले ही वे अपने स्वयं के वर्ग मॉडल के अंदर हों।वीबीए मी कीवर्ड अपने मॉड्यूल में निजी प्रक्रियाओं का उपयोग क्यों नहीं कर सकता?
Class1 में निम्न कोड डालें:
Private Sub Message()
Debug.Print "Some private procedure."
End Sub
Public Sub DoSomething()
Me.Message
End Sub
इस कोड वर्ग का एक उदाहरण को दर्शाता है: "। विधि या डेटा सदस्य नहीं मिला"
Sub TestClass()
Dim objClass As New Class1
objClass.DoSomething
End Sub
Me.Message
फेंकता संकलन त्रुटि
यदि मैं Private Sub Message()
से Public
बदलता हूं तो प्रक्रिया ठीक काम करती है। मैं DoSomething प्रक्रिया से मुझे कीवर्ड भी हटा सकता हूं, लेकिन मैं इस धारणा के तहत था कि मेरे कीवर्ड के पीछे विचार यह सुनिश्चित करना है कि कक्षा 1 के कई उदाहरण ठीक से encapsulated हैं।
निजी होने पर वीबीए मी कीवर्ड एक्सेस प्रक्रियाओं को अपने मॉड्यूल में क्यों नहीं कर सकता? क्या मुझे अपना कीवर्ड छोड़ना और कक्षा में ऐसा कुछ करना सुरक्षित है?
Private Sub Message()
Debug.Print "Some private procedure."
End Sub
Public Sub DoSomething()
Message
End Sub
धन्यवाद!
अद्यतन: उचित वाक्यविन्यास पर युक्तियों के लिए धन्यवाद, मेरा कोड काम कर रहा है। मैं अभी भी का स्पष्टीकरण ढूंढ रहा हूं क्यों मैं अपने स्वयं के मॉड्यूल के उदाहरण में निजी प्रक्रियाओं का संदर्भ दे सकता हूं। मुझे कोई अच्छा दस्तावेज नहीं मिला।
भावना बनाता है जब तक। लगता है जैसे 'मी' एक ऑब्जेक्ट वेरिएबल ('ऑब्जेक्ट के रूप में मुझे मंद करें') के रूप में hypothetically बनाने के लिए shorthand है और उस चर को उस ऑब्जेक्ट पर सेट कर रहा है जिसमें कोड है ('मुझे सेट करें = यह मॉड्यूल'। वह ऑब्जेक्ट वैरिएबल अभी भी मॉड्यूल गुणों और प्रक्रियाओं तक पहुंच जाएगा बाहर से धन्यवाद! धन्यवाद! – Kuyenda