वीबीए टाइपऑफ

यह आलेख वीबीए टाइपऑफ ऑपरेटर के उपयोग को प्रदर्शित करेगा।

वीबीए टाइपऑफ ऑपरेटर का उपयोग किसी वस्तु के प्रकार को निर्धारित करने में किया जाता है। यह वीबीए फॉर्म पर नियंत्रण को सक्षम या अक्षम करने या किस प्रकार की वस्तु का उपयोग किया जा रहा है, इसके आधार पर कोड के प्रवाह को नियंत्रित करने में उपयोगी हो सकता है।

कोड को नियंत्रित करने के लिए टाइपऑफ़ का उपयोग करना

हम टाइपऑफ का उपयोग यह सुनिश्चित करने के लिए कर सकते हैं कि किया गया चयन उस विशिष्ट वस्तु का प्रकार है जिसकी हमें आवश्यकता है - उदाहरण के लिए, हम एक श्रेणी का चयन करना चाहते हैं और फिर एक IF स्टेटमेंट का उपयोग करके देख सकते हैं कि क्या चुना गया है। यदि एक श्रेणी का चयन किया जाता है, तो हमें एक संदेश प्राप्त होगा जो हमें बताएगा कि एक श्रेणी का चयन किया गया है, लेकिन यदि एक श्रेणी का चयन नहीं किया गया है, तो हमें एक अलग संदेश प्राप्त होगा।

आइए अपनी वर्कशीट पर कुछ सेल चुनें।

अब, यदि हम नीचे मैक्रो चलाते हैं, तो हमें बताया जाएगा कि हमने एक रेंज का चयन किया है।

12345678 उप परीक्षण चयन ()वस्तु के रूप में मंद rngयदि टाइपऑफ़ सिलेक्शन रेंज है तोMsgBox "एक श्रेणी का चयन किया गया है!"अन्यथाMsgBox "कुछ और चुना गया है"अगर अंतअंत उप

हालांकि, अगर हम एक श्रेणी का चयन नहीं करते हैं और कुछ और चुनते हैं - शायद एक चार्ट - और फिर मैक्रो चलाते हैं, तो हमें एक अलग परिणाम मिलेगा!

फॉर्म नियंत्रण पर टाइपऑफ़ का उपयोग करना

वीबीए हमें इंटरैक्टिव फॉर्म बनाने में सक्षम बनाता है जिसे उपयोगकर्ता विभिन्न तरीकों से उपयोग किए जाने वाले कोड में डेटा भर सकता है और वापस कर सकता है। प्रपत्र पर उपयोग किए जा रहे नियंत्रणों के प्रकार को निर्धारित करने के लिए हम TypeOf ऑपरेटर का उपयोग कर सकते हैं।

नीचे दिए गए उदाहरण में, मैंने उस पर विभिन्न प्रकार के नियंत्रणों के साथ एक उपयोगकर्ता प्रपत्र बनाया है - कुछ टेक्स्ट बॉक्स, एक कॉम्बो बॉक्स, 2 विकल्प बटन, 2 चेक बॉक्स और 3 कमांड बटन।

नीचे दिए गए कोड का उपयोग करके, मैं यह निर्धारित कर सकता हूं कि फ़ॉर्म पर सभी नियंत्रणों को लूप करके फ़ॉर्म पर किस प्रकार के नियंत्रण हैं। मैंने नियंत्रण के प्रकार के साथ एक संदेश वापस करने के लिए टाइपनाम फ़ंक्शन का उपयोग किया है, और एक वीबीए आईएफ स्टेटमेंट का उपयोग करके उपयोग किया है टाइपऑफ़ फंक्शन यह जांचने के लिए कि किस प्रकार का नियंत्रण चुना गया है, और फिर उस प्रकार के नियंत्रण को वापस करने के लिए एक और संदेश बॉक्स।

12345678910111213141516171819202122 उप WhatControlType ()वस्तु के रूप में मंद ctlप्रत्येक ctl के लिए Me.Controls . मेंसंदेश बॉक्स (टाइपनाम (सीटीएल))'ऑब्जेक्ट के प्रकार को निर्धारित करने के लिए टाइपऑफ फ़ंक्शन का उपयोग करें।यदि TypeOf ctl msforms.TextBox है तोMsgBox ("नियंत्रण एक टेक्स्टबॉक्स है।")ElseIf TypeOf ctl msforms.ComboBox है तोMsgBox ("कंट्रोल एक कॉम्बोबॉक्स है।")ElseIf TypeOf ctl msforms है। फिर लेबल करेंMsgBox ("नियंत्रण एक लेबल है।")ElseIf TypeOf ctl msforms.CommandButton है तोMsgBox ("नियंत्रण एक कमांड बटन है।")ElseIf TypeOf ctl msforms है।चेकबॉक्स तोMsgBox ("नियंत्रण एक चेक बॉक्स है।")ElseIf TypeOf ctl msforms.OptionButton है तोMsgBox ("नियंत्रण एक विकल्प/रेडियो बटन है।")अन्यथाMsgBox ("ऑब्जेक्ट किसी अन्य प्रकार का नियंत्रण है।")अगर अंतअगला सीटीएलअंत उप

यदि हम नियंत्रणों को सक्षम या अक्षम करना चाहते हैं तो इस प्रकार का कोड बहुत उपयोगी हो सकता है। नीचे दिए गए कोड में, जब फॉर्म को पहली बार खोला जाता है, तो विकल्प बटन और चेक बॉक्स अक्षम हो जाते हैं।

123456789101112 निजी उप UserForm_Initialize ()वस्तु के रूप में मंद ctlप्रत्येक ctl के लिए Me.Controls . मेंयदि TypeOf ctl msforms.CheckBox है तोctl.सक्षम = गलतElseIf TypeOf ctl msforms.OptionButton है तोctl.सक्षम = गलतअन्यथाctl.सक्षम = सहीअगर अंतअगला सीटीएलअंत उप

विकल्प बटन और चेकबॉक्स को सक्षम करने के लिए, मैंने नियंत्रण सक्षम करें बटन के पीछे कुछ और कोड लिखा है।

12345678910 निजी उप cmdEnable_Click ()वस्तु के रूप में मंद ctlप्रत्येक ctl के लिए Me.Controls . मेंयदि TypeOf ctl msforms.CheckBox है तोctl.सक्षम = ctl.सक्षम नहींElseIf TypeOf ctl msforms.OptionButton है तोctl.सक्षम = ctl.सक्षम नहींअगर अंतअगला सीटीएलअंत उप

अब जब हम सक्षम नियंत्रण बटन पर क्लिक करते हैं, यदि नियंत्रण अक्षम हैं, तो वे सक्षम हो जाएंगे और यदि वे सक्षम हैं तो वे अक्षम हो जाएंगे। यह का उपयोग करके हासिल किया जाता है नहीं ऑपरेटर जो हमें अक्षम और सक्षम के बीच टॉगल करने में सक्षम बनाता है।

wave wave wave wave wave