यह आलेख VBA TypeName फ़ंक्शन के उपयोग को प्रदर्शित करेगा।
वीबीए नाम लिखो फ़ंक्शन का उपयोग सेल में संग्रहीत डेटा के प्रकार, या किसी चयनित ऑब्जेक्ट के प्रकार को निर्धारित करने में किया जाता है - उदाहरण के लिए वर्कशीट, रेंज या सेल, या किसी फॉर्म पर नियंत्रण।
सेल में डेटा प्रकार का निर्धारण
यह निर्धारित करने के लिए कि सेल में डेटाटाइप था, हम सेल प्रॉपर्टी के साथ टाइपनाम फ़ंक्शन का उपयोग कर सकते हैं।
123 | उप टेस्टसेलडेटा टाइप ()MsgBox "" और Cells(3, 2) में डेटा का प्रकार। पता और "है" और TypeName(Cells(3, 2).Value)अंत उप |
यदि हम इस कोड को नीचे वर्कशीट के साथ चलाते हैं, तो संदेश बॉक्स हमें बताएगा कि सेल में किस प्रकार का डेटा है।
चयनित वस्तु के प्रकार का निर्धारण
हम टाइपनाम का उपयोग यह निर्धारित करने के लिए भी कर सकते हैं कि वर्कशीट में किस प्रकार का ऑब्जेक्ट चुना गया है - उदाहरण के लिए एक रेंज या चार्ट।
123 | उप परीक्षण चयन ()MsgBox "आपने एक" और टाइपनाम (चयन) का चयन किया हैअंत उप |
या, यदि हम कोई चार्ट चुनते हैं:
हम और भी नीचे ड्रिल कर सकते हैं और चार्ट के भीतर वस्तुओं का चयन कर सकते हैं, और मैक्रो वही लौटाएगा जो हमने चुना है।
यह सब हमारे वीबीए प्रोजेक्ट के निर्माण में या तो कोड के प्रवाह को नियंत्रित करने के लिए, या सही प्रकार के ऑब्जेक्ट का चयन करने के लिए परीक्षण द्वारा होने वाली त्रुटियों को रोकने के लिए, या सेल में सही प्रकार का डेटा दर्ज करने के लिए सबसे उपयोगी हो सकता है। .
प्रपत्र नियंत्रण पर टाइपनाम का उपयोग करना
वीबीए हमें इंटरैक्टिव फॉर्म बनाने में सक्षम बनाता है जिसे उपयोगकर्ता विभिन्न तरीकों से उपयोग किए जाने वाले कोड में डेटा भर सकता है और वापस कर सकता है। प्रपत्र पर उपयोग किए जा रहे नियंत्रणों के प्रकार को निर्धारित करने के लिए हम टाइपनाम ऑपरेटर का उपयोग कर सकते हैं।
नीचे दिए गए उदाहरण में, मैंने उस पर विभिन्न प्रकार के नियंत्रणों के साथ एक उपयोगकर्ता प्रपत्र बनाया है - कुछ टेक्स्ट बॉक्स, एक कॉम्बो बॉक्स, 2 विकल्प बटन, 2 चेक बॉक्स और 3 कमांड बटन।
नीचे दिए गए कोड का उपयोग करके, मैं यह निर्धारित कर सकता हूं कि फ़ॉर्म पर सभी नियंत्रणों को लूप करके फ़ॉर्म पर किस प्रकार के नियंत्रण हैं। मैंने टाइपनाम फ़ंक्शन का उपयोग वीबीए आईएफ स्टेटमेंट के साथ नियंत्रण के प्रकार के साथ एक संदेश वापस करने के लिए किया है ताकि यह जांच सके कि किस प्रकार का नियंत्रण चुना गया है।
123456 | उप WhatControlType ()वस्तु के रूप में मंद ctlप्रत्येक ctl के लिए Me.Controls . मेंMsgBox "नियंत्रण एक है" और टाइपनाम (ctl)अगला सीटीएलअंत उप |
यदि हम नियंत्रणों को सक्षम या अक्षम करना चाहते हैं तो इस प्रकार का कोड बहुत उपयोगी हो सकता है। नीचे दिए गए कोड में, जब फॉर्म को पहली बार खोला जाता है, तो विकल्प बटन और चेक बॉक्स अक्षम हो जाते हैं।
123456789101112 | निजी उप UserForm_Initialize ()वस्तु के रूप में मंद ctlप्रत्येक ctl के लिए Me.Controls . मेंअगर टाइपनाम (सीटीएल) = "चेकबॉक्स" तोctl.सक्षम = गलतElseIf TypeName(ctl) = "OptionButton" फिरctl.सक्षम = गलतअन्यथाctl.सक्षम = सहीअगर अंतअगला सीटीएलअंत उप |
विकल्प बटन और चेकबॉक्स को सक्षम करने के लिए, मैंने नियंत्रण सक्षम करें बटन के पीछे कुछ और कोड लिखा है।
12345678910 | निजी उप cmdEnable_Click ()वस्तु के रूप में मंद ctlप्रत्येक ctl के लिए Me.Controls . मेंअगर टाइपनाम (सीटीएल) = "चेकबॉक्स" तोctl.सक्षम = ctl.सक्षम नहींElseIf TypeName(ctl) = "OptionButton" फिरctl.सक्षम = ctl.सक्षम नहींअगर अंतअगला सीटीएलअंत उप |
इस कोड में कार्यक्षमता VBA TypeOf ऑपरेटर का उपयोग करके भी बनाई जा सकती है।