एक्सेल VBA में सशर्त स्वरूपण
हम एक्सेल में सेल या श्रेणी के लिए सशर्त स्वरूपण लागू कर सकते हैं। एक सशर्त प्रारूप एक प्रारूप है जो केवल उन कक्षों पर लागू होता है जो कुछ मानदंडों को पूरा करते हैं, किसी विशेष मान से ऊपर के मान, सकारात्मक या नकारात्मक मान, या किसी विशेष सूत्र के साथ मान आदि कहते हैं। यह सशर्त स्वरूपण एक्सेल VBA प्रोग्रामिंग का उपयोग करके भी किया जा सकता है। मैक्रो / प्रक्रिया में ' प्रारूप स्थितियाँ संग्रह '।
प्रारूप स्थिति का उपयोग एक सशर्त प्रारूप का प्रतिनिधित्व करने के लिए किया जाता है जिसे उस प्रकार के चर को वापस करने वाली विधि को कॉल करके सेट किया जा सकता है। इसमें एक सीमा के लिए सभी सशर्त प्रारूप हैं और केवल तीन प्रारूप स्थितियां पकड़ सकते हैं।
FormatConditions.Add / संशोधित / हटाएं संग्रह में FormatCondition ऑब्जेक्ट जोड़ने / संशोधित / हटाने के लिए VBA में उपयोग किया जाता है। प्रत्येक प्रारूप एक FormatCondition ऑब्जेक्ट द्वारा दर्शाया गया है। FormatConditions रेंज ऑब्जेक्ट की एक संपत्ति है, और सिंटैक्स के साथ निम्नलिखित पैरामीटर जोड़ें :
प्रारूपकॉन्डिशन। जोड़ें (प्रकार, ऑपरेटर, फॉर्मूला 1, फॉर्मूला 2)
सूत्र जोड़ें सिंटैक्स में निम्न तर्क होते हैं:
- प्रकार: आवश्यक, यह दर्शाता है कि सशर्त प्रारूप सेल या अभिव्यक्ति में मौजूद मूल्य पर आधारित है या नहीं।
- ऑपरेटर: वैकल्पिक, ऑपरेटर का प्रतिनिधित्व उस मूल्य के साथ किया जाता है जब 'टाइप' सेल वैल्यू पर आधारित होता है।
- फॉर्मूला 1: वैकल्पिक, सशर्त प्रारूप से जुड़े मूल्य या अभिव्यक्ति का प्रतिनिधित्व करता है।
- फॉर्मूला 2: वैकल्पिक, पैरामीटर के सशर्त प्रारूप के दूसरे भाग से जुड़े मूल्य या अभिव्यक्ति का प्रतिनिधित्व करता है जब 'ऑपरेटर' या तो 'xlBetween' या 'xlNotBetween' होता है। '
FormatConditions.Modify में FormatConditions.Add के समान सिंटैक्स भी है ।
निम्नलिखित कुछ मूल्यों / गणना की सूची है जो 'Add' / 'संशोधित' के कुछ मापदंडों द्वारा ली जा सकती है:

VBA सशर्त स्वरूपण के उदाहरण
नीचे एक्सेल VBA में सशर्त स्वरूपण के उदाहरण दिए गए हैं।
उदाहरण 1
हम कहते हैं कि हमारे पास कुछ छात्रों के नाम और निशानों वाली एक एक्सेल फाइल है, और हम उन निशानों को निर्धारित / हाइलाइट करना चाहते हैं जो रंग में बोल्ड और ब्लू हैं, जो कि 80 से अधिक है, और बोल्ड और रेड इन कलर के रूप में, जो इससे कम है 50. फाइल में निहित डेटा को देखते हैं:

हम FormatConditions का उपयोग करते हैं। इसे पूरा करने के लिए नीचे दिए गए फ़ंक्शन को जोड़ें:
- डेवलपर पर जाएं -> विज़ुअल बेसिक एडिटर:

- 'प्रोजेक्ट-VBAProject' फलक-> 'इन्सर्ट' -> 'एन्युअल' में वर्कबुक नाम पर राइट-क्लिक करें।

- अब इस मॉड्यूल में कोड / प्रक्रिया लिखें:
कोड:
उप प्रारूपण () समाप्ति उप

- चर rng, condition1, condition2 को परिभाषित करें:
कोड:
सब फॉर्मेटिंग () डिम रींग अस रेंज डिम कंडीशन 1 फॉर्मेटकॉन्डीशन के रूप में, कंडिशन 2 फॉर्मेटकंडिशन एंड सब के रूप में

- उस सीमा को सेट / तय करें जिस पर सशर्त स्वरूपण को VBA 'रेंज' फ़ंक्शन का उपयोग करना है।
कोड:
उप प्रारूपण () डिम rng as Range मंद कंडीशन 1 as FormatCondition, condition2 as FormatCondition सेट rng = Range ("B2", "B11") अंतिम उप

- किसी भी मौजूदा सशर्त स्वरूपण (यदि कोई हो) को 'FormatConditions.Delete' के उपयोग से हटाएं (साफ़ करें)
कोड:
उप प्रारूपण () डिम rng as Range डिम कंडीशन 1 as FormatCondition, condition2 as FormatCondition सेट rng = Range ("B2", "B11") rng.FormatConditions.Delete End Sub

- अब 'FormatConditions.Add' का उपयोग करके प्रत्येक सशर्त प्रारूप के मानदंड निर्धारित करें और निर्धारित करें:
कोड:
उप प्रारूपण () डिम रींग इन रेंज डिम कंडिशन 1 फॉर्मेट कॉंडिशन के रूप में, कंडिशन 2 फॉर्मेटकॉन्डीमेंट सेट आरएनजीएन = रेंज ("बी 2", "बी 11") rng.FormatConditions.Delete सेट कंडिशन 1 = png.FormatConditions.Add (xlCellValue, xlGrait, = 10) के रूप में। ") सेट करें condition2 = rng.FormatConditions.Add (xlCellValue, xlLess," = 50 ") अंतिम उप

- प्रत्येक शर्त के लिए लागू किए जाने वाले प्रारूप को परिभाषित और निर्धारित करें

इस कोड को अपने VBA वर्ग मॉड्यूल में कॉपी और पेस्ट करें।
कोड:
सब फॉर्मेटिंग () 'वेरिएबल को निर्धारित करना: डिम रींग एज़ रेंज डिम कंडिशन 1 फॉर्मेटकॉन्डमिशन के रूप में, कंडिशन 2 अस फॉर्मकंडिशन' फिक्सिंग / उस रेंज को सेट करना, जिस पर सशर्त फॉर्मेटिंग वांछित है सेट आरएनजी = रेंज ("बी 2", "बी 11") ') श्रेणी rng.FormatConditions.Delete से प्रत्येक मौजूदा सशर्त स्वरूपण को हटाएं / हटाएं। प्रत्येक सशर्त प्रारूप के मानदंड को परिभाषित करना और सेट करना condition1 = rng.FormatConditions.Add। जोड़ें (xlCellValue, xlLess, "= 50") 'को परिभाषित करना और प्रत्येक शर्त के लिए लागू होने वाले प्रारूप को निर्धारित करना और सेट करना कंडीशन 1 के साथ। Font.Color = vbBlue .Font.Bold = True End with condition2 .Font.Color = vbRed .Font। बोल्ड = अंत के साथ सच उप
अब जब हम F5 कुंजी या मैन्युअल का उपयोग करके इस कोड को चलाते हैं, तो हम देखते हैं कि 50 से कम अंक वाले निशान बोल्ड और रेड में हाइलाइट किए जाते हैं, जबकि 80 से अधिक होने वाले इस प्रकार बोल्ड और ब्लू में हाइलाइट किए जाते हैं:

उदाहरण # 2
मान लीजिए कि उपरोक्त उदाहरण में हमारे पास एक और कॉलम भी है जिसमें कहा गया है कि छात्र 'टॉपर' है यदि वह 80 से अधिक अंक प्राप्त करता है, तो पास / फेल उनके खिलाफ लिखा जाता है। अब हम 'टॉपर' के रूप में बताए गए मूल्यों को बोल्ड और ब्लू के रूप में उजागर करना चाहते हैं। आइए हम फाइल में निहित डेटा देखते हैं:

इस स्थिति में, कोड / प्रक्रिया निम्नानुसार काम करेगी:
कोड:
सब टेक्स्टफॉर्मेटिंग () एंड सब

प्रत्येक शर्त के लिए लागू किए जाने वाले प्रारूप को परिभाषित और निर्धारित करें
कोड:
Sub TextFormatting () रेंज ("c2: c11") के साथ। FormatConditions.Add (xlTextString, TextOperator: = xlContains, String: = "topper") .Font .Bold = True = vbBlue समाप्ति के साथ अंत उप सबमिशन के साथ।

हम उपरोक्त कोड में देख सकते हैं कि हम परीक्षण करना चाहते हैं यदि रेंज: 'C2: C11 "में स्ट्रिंग है:" टॉपर ", इसलिए पैरामीटर:' Format.Add 'का" Onamestor "गणन लेता है:" Xstains " निर्धारित सीमा (यानी, C2: C11) में इस स्थिति का परीक्षण करें, और फिर इस श्रेणी के लिए आवश्यक सशर्त स्वरूपण (फ़ॉन्ट परिवर्तन) करें।
अब जब हम इस कोड को मैन्युअल रूप से चलाते हैं या F5 कुंजी दबाकर देखते हैं, तो हम देखते हैं कि 'टॉपर' के साथ सेल वैल्यू को ब्लू-इन में हाइलाइट किया गया है:

Below are some other instances/criteria that can be used to test and thus apply VBA conditional formatting on:
- Format by Time Period
- Average condition
- Colour Scale condition
- IconSet condition
- Databar condition
- Unique Values
- Duplicate Values
- Top10 values
- Percentile Condition
- Blanks Condition, etc.
With different conditions to be tested, different values/enumeration are taken by parameters of ‘Add.’
Things to Remember About VBA Conditional Formatting
- ‘Add’ method with ‘FormatConditions’ is used to create a new conditional format, ’Delete’ method to delete any conditional format, and ‘Modify’ method to alter any existing conditional format.
- The ‘Add’ method with ‘FormatConditions Collection’ fails if more than three conditional formats are created for a single range.
- 'Add' पद्धति का उपयोग करके तीन से अधिक सशर्त प्रारूपों को एक सीमा तक लागू करने के लिए, हम 'If' या 'select case' का उपयोग कर सकते हैं।
- यदि 'Add' पद्धति का अपना 'टाइप' पैरामीटर है: 'xlExpression', तो 'पैरामीटर' ऑपरेटर को नजरअंदाज कर दिया जाता है।
- पैरामीटर: 'जोड़ें' विधि में 'फॉर्मूला 1' और 'फॉर्मूला 2' एक सेल संदर्भ, निरंतर मूल्य, स्ट्रिंग मूल्य या एक सूत्र भी हो सकते हैं।
- पैरामीटर: 'फॉर्मूला 2' का उपयोग केवल तब किया जाता है जब पैरामीटर: 'ऑपरेटर' या तो 'xlBetween' या 'xlNotBetween' हो, और फिर इसे नजरअंदाज कर दिया जाता है।
- किसी भी वर्कशीट से सभी सशर्त स्वरूपण को हटाने के लिए, हम 'डिलीट' पद्धति का उपयोग इस प्रकार कर सकते हैं:
प्रकोष्ठ