एक्सेल रिबन से पहले क्या था?
एक्सेल के अंतर्गत रिबन का प्रचलन एक्सेल 2007 के बाद से उदित हुआ। उसके पहले के एक्सेल वर्शन में रिबन का प्रचलन नहीं था। उसकी जगह कमांड मेंनू होते थे। उन मेनू को हम कस्टमाइज कर सकते थे।
रिबन क्यों जरूरी है?
माइक्रोसॉफ्ट कंपनी ने रिसर्च के पश्चात अनुभव किया कि ज्यादातर यूजर एक्सेल के बहुत सारे ऐसे फीचर है जो उचित रूप से प्रकट नहीं होने के कारण ऐसे मेनू में छिपे रह जाते हैं जिसके कारण एक्सेल के सभी पक्षों और उपयोगिताओं का यूज़र को ज्ञात नहीं हो पाता है। इस कमजोरी को समझने के पश्चात माइक्रोसॉफ्ट कंपनी ने समस्या के निदान के लिए अच्छा खासा रिसर्च किया और उसके बाद एक्सेल 2007 वर्शन में रिबन का प्रयोग आरम्भ हुआ।
रिबन क्या है?
माइक्रोसॉफ्ट एक्सेल के रिबन के अंतर्गत कई सारे टैब होते हैं और उन टैब के भीतर कई सारे ग्रुप होते हैं। कहने का अर्थ यह है कि एक टैब के भीतर कई सारे ग्रुप्स होते हैं और प्रत्येक ग्रुप के भीतर कई सारे बटन होते हैं। एक या उससे अधिक बटन को भी सेपरेटर की मदद से अलग कर दिया जाता है। यह सेपरेटर एक खड़ी रेखा के रूप में दिखाई देती है। बने बनाये टैब को देखकर इन सब बातों को सरलता से समझा जा सकता है।
रिबन को कस्टमाइज करने का अर्थ
रिबन के भीतर उपलब्ध टैब के अतिरिक्त नये टैब को जोड़ा जा सकता है और इसी तरह बने बनाये टैब को हटाया भी जा सकता है। यहाँ तक कि सारे टैब्स को हटा कर बिल्कुल अपनी मर्जी के मुताबिक नए टैब्स को रिबन पर व्यवस्थित किया जा सकता है। लेकिन रिबन को कस्टमाइज करने का कार्य इतना सरल भी नहीं है। इस कार्य को सम्पन्न करने के लिए माइक्रोसॉफ्ट office xml को समझना जरूरी है। xml की समझ अनिवार्य है।
रिबन को कैसे कस्टमाइज करें?
एक्सेल के भीतर रिबन को कस्टमाइज करने के लिए दो तरीके हैं। एक सरल विधि है जिसके अंतर्गत यूजर बिना किसी कोडिंग के एक्सेल ऑप्शनस डायलॉग बॉक्स में कस्टमाइज रिबन सेटिंग में जाकर रिबन को कस्टमाइज कर सकता है। उसमें नए टैब को क्रिएट कर सकता है और टैग के भीतर नये ग्रुप्स बना सकता है और उन ग्रुप्स में बटन भी अप्लाई कर सकता है परंतु अधिक महत्वपूर्ण तरीका कोडिंग के द्वारा रिबन को कस्टमाइज करने से है। इस तरह रिबन को कस्टमाइज करने के लिए विजुअल बेसिक अप्लीकेशन की कोडिंग की जरूरत नहीं होती है।
एक्सेल वर्कबुक का परीक्षण
मुख्य रूप से एक्सल के रिबन को कस्टमाइज करने के लिए एक्स एम एल xml की तकनीक का ज्ञान होना चाहिए। सत्य यह है कि एक्सेल 2007 वर्शन और उसके बाद के जितने भी एक्सेल वर्शन है उन सभी में एक्सेल एक जीप zip फाइल के रूप में होता है जो कि ऐसे प्रत्यक्ष नहीं होता। इसका प्रत्यक्षीकरण करने के लिए हमें एक्सेल की फाइल के अंत में जेड आई पी zip नामक एक्सटेंशन लगाकर उसे जिप फाइल में बदलना पड़ता है। ऐसा करने के बाद एक्सेल वर्कबुक एक जिप फाइल के रूप में दिखाई देती है। उस जिप फाइल को डबल क्लिक करने पर उसके भीतर कई सारे फोल्डर और फाइल दिखाई देते हैं। फोल्डर के भीतर भी कई सारे फाइल होते हैं। फोल्डर व फ़ाइल की एक स्ट्रक्चर होती है जो यह निर्धारित करती है कि एक फाइल दूसरे फाइल से अथवा आपस में फाइल्स कैसे जुड़े हुए हैं। इन फाइल्स के बीच के रिलेशनशिप या संबंध को कोड के द्वारा बनाया गया होता है जिसे हम रेलस _rels नामक फोल्डर में देख सकते हैं। इस रेल्स नामक फोल्डर में रेलस .rels.xml नामक एक फाइल होता है जो वस्तुतः एक एक्सएमएल फाइल होता है। इस एक्सएमएल फाइल के भीतर हमें रिलेशनशिप्स <relationship> नामक टैग दिखाई देता है जिसके भीतर तीन मुख्य अटरीब्यूट attributes होते हैं। प्रथम आईडी ID, दूसरा टारगेट Target और तीसरा टाइप Type यह relationship टैग अलग अलग फ़ाइल के सम्बन्धों को व्यक्त करता है।
जैसा कि हम जानते हैं कि प्रत्येक xml टैग का अपना एक आईडी होता है जो अपने आप में अद्वितीय होता है दूसरा अटट्रिब्यूट टारगेट है। टारगेट की वैल्यू रिलेशनशिप में उस फाइल को बताता है जिसके साथ संबंधित यह फ़ाइल है और तीसरा अटट्रिब्यूट टाइप है जो यह बताता है कि किस स्कीमा schema के अंतर्गत एक्सएमएल फाइल बना हुआ है।
कस्टम फोल्डर और फ़ाइल
एक बात ध्यान देने वाली है की रिबन को कस्टमाइज करने के लिए हमें बने हुए फोल्डर व फ़ाइल के अतिरिक्त अपना एक कस्टम फोल्डर बनाना पड़ता है। इस फोल्डर का नाम अपनी मनमर्जी से कुछ भी रख सकते हैं और उस फोल्डर के भीतर एक एक्सएमएल फाइल बनाना पड़ता है। यह xml फ़ाइल कस्टम टैग के ग्रुप्स व बटन्स को ध्यान में रखकर कोड किए जाते हैं। इस एक्सएमएल फाइल की सहायता से एक्सेल में एक से अधिक कस्टम टैब को बनाया जाता है और उसमें ग्रुप्स व बटन बनाए जाते हैं।
आमतौर पर customui.xml नाम का एक xml फ़ाइल बनाया जाता है जिसमें रिबन के किसी कस्टम टैब को बनाया जाता है। एक कस्टम टैब के अंतर्गत कई सारे बटन्स बनाये जा सकते हैं और उनमें से कुछ बटन्स को ग्रुप कर के भी रखा जा सकता है। ग्रुप्स का विभाजन हम सेपरेटर की सहायता से करते हैं। प्रत्येक बटन का लेबल होता है। साथ ही प्रत्येक बटन का एक यूनिक आईडी भी होता है। प्रत्येक बटन को किसी इवेंट हैंडलर प्रोसीजर से युक्त किया जा सकता है। इवेंट हैंडलर प्रोसीजर कई प्रकार के सम्भव हैं यथा बटन को क्लिक करने पर उत्पन्न होने वाला इवेंट, होवर करने पर उत्पन्न होने वाला इवेंट इत्यादि। इन प्रोसीजर को किसी मॉड्यूल के भीतर लिखा जाता है।
जब एक्सेल ओपन होता है तब रिबन लोड होता है। रिबन के लोड होने पर उत्पन्न होने वाले इवेंटस के लिए प्रोसीजर लिखा जा सकता है।
रिबन के कस्टम टैब पर यह जरूरी नहीं है कि हम केवल बटन रखें। हम उस पर कोई भी ऑब्जेक्ट जैसे चेकबॉक्स, ड्राप डाउन जैसे क्लास भी रख सकते हैं। रिबन कन्ट्रोल जैसे बटन, चेकबॉक्स, कॉम्बोबॉक्स, गैलरी, ग्रुप, आइटम, मेनू इत्यादि हैं।
नेमस्पेस
हम xml namespace का उपयोग कर कंट्रोल्स के नेम कनफ्लिक्ट से बच सकते हैं। ऐसा तब सम्भव है जब दो एक्सेल फ़ाइल ओपन हो और समान नाम के कंट्रोल होने पर उनमें कनफ्लिक्ट हो।
<customUI xmlns="http://schemas.microsoft.com ---
xmlns:x="MyNamespace">
<button idQ="x:myButton"/>
ऑफिस 2013 में यूजर इंटरफेस एक रिबन है जो विभिन्न टैब से बना होता है जिसे "द रिबन" के रूप में भी जाना जाता है।ऑफिस फ़्लूएंट यूआई (उपयोगकर्ता इंटरफ़ेस)
RibbonX शब्द का उपयोग रिबन इंटरफ़ेस को अनुकूलित करने के लिए प्रोग्राम करने योग्य तंत्र का वर्णन करने के लिए किया जाता है।
'ByRef control As Office.IRibbonControl' इस पैरामीटर को किसी भी रिबन कंट्रोल के प्रोसीजर में देना जरूरी होता है। आमतौर पर जब हम कोई प्रोसीजर बनाते हैं तो उसके साथ पैरामीटर देना जरूरी नहीं होता है लेकिन रिबन कंट्रोल के प्रोसीजर को हमे 'ByRef control As Office.IRibbonControl' पैरामीटर देना अनिवार्य होता है।
Public Sub MyMacro(ByRef control As Office.IRibbonControl)
Call MsgBox("Hello from an Add-in")
End Sub
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="CustomTab" insertBeforeMso="TabHome" label="My Add-in">
<group id="SimpleControls" label="My Group">
<button id="Button1" imageMso="PictureCorrectionsMenu" size="large"
label="Large Button"
screentip="my long description"
onAction="ThisWorkbook.MyMacro"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
XML रिबन के मार्कअप की एक हायरार्की होती है जिसको निम्न उदाहरण से समझा जा सकता है।
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<commands>
<ribbon>
<officeMenu>
<qat>
<sharedControls>
<documentControls>
<tabs>
<tab>
<group>
<box>
<checkbox>
<menu>
<contextualTabs>
<tabSet>
<tab>
customUI टैब
Represents the entire custom ribbon.
This is the root tag of all Ribbon customisations.
<customUI xlmns="schemas.microsoft.com/office/2009/07/customui">
onLoad="RibbonOnLoad"
loadImage="AddInLoadImage">
<ribbon>
<commands>
यहाँ RibbonOnLoad एक प्रोसीजर है जो रिबन के लोड होने पर इनवोक होता है।
Ribbon callback
प्रोसीजर को इंवोक करने के लिए XML के अंतर्गत कुछ कीवर्ड्स यूज किए जाते हैं। इनका आरम्भ get शब्द से होता है यथा- getContent getDescription getEnabled getImage getImageMso getKeytip getLabel getShowImage getShowLabel getSize getSupertip getVisible
qat टैब
This represents the Quick Access Toolbar and can only be modified when startfromscratch has been set to true.
This can only be customised if the ribbon is marked "start from scratch"
<customUI>
<ribbon>
<qat>
इसके अंतर्गत चाइल्ड कंट्रोल्स documentControls और sharedControls हैं।
रिबन के साथ क्या करना सम्भव नहीं है?
निम्नलिखित क्रियाकलाप अभी भी ऑफिस2013 में समर्थित नहीं हैं:
रिबन की ऊंचाई को बदला नहीं जा सकता है
जिस क्रम में कंट्रोल प्रदर्शित किए जाते हैं उसे बदला नहीं जा सकता। यह हमेशा ऊपर से नीचे और दाएं से बाएं होता है।
आप रिबन में कोई भी विंडोज़ फॉर्म कंट्रोल या WPF कंट्रोल नहीं जोड़ सकते।
आप अपने कंट्रोल को गतिशील रूप से आकार नहीं दे सकते हैं क्योंकि विंडोज़ का आकार बदलता है।
उपयोगी लिंक
https://bettersolutions.com/vba/ribbon/button.htm
लेखक अजीत कुमार
No comments:
Post a Comment