Notes in Hindi

Customizing Menus & Toolbars with VBA in Hindi

Makhanlal Chaturvedi University / BCA / VBA programming

Customizing Menus and Toolbars with VBA in Hindi

Customizing Menus and Toolbars with VBA in Hindi

Creating custom menus using VBA in Modifying Menus & Toolbars in Hindi

VBA (Visual Basic for Applications) की मदद से हम Excel या Word जैसे Microsoft Office प्रोग्राम्स में अपने मन मुताबिक menus और toolbars बना सकते हैं। इससे हम अपने daily tasks को आसानी से access कर सकते हैं और productivity बढ़ा सकते हैं। custom menu बनाना मतलब अपनी जरूरत के अनुसार नया menu option जोड़ना। यह process beginners के लिए भी आसान है।

  • सबसे पहले, VBA Editor खोलने के लिए Alt + F11 दबाएं।
  • Insert → Module पर क्लिक करें।
  • नीचे दिया गया VBA code वहां paste करें:
Sub CreateCustomMenu()
  Dim cb As CommandBar
  Dim cbc As CommandBarControl

  ' पुराना menu हटाएं यदि मौजूद हो
  On Error Resume Next
  Application.CommandBars("Worksheet Menu Bar").Controls("My Menu").Delete
  On Error GoTo 0

  ' नया menu बनाएं
  Set cb = Application.CommandBars("Worksheet Menu Bar")
  Set cbc = cb.Controls.Add(Type:=msoControlPopup, Temporary:=True)
  cbc.Caption = "My Menu"

  ' menu के अंदर options जोड़ना
  With cbc.Controls.Add(Type:=msoControlButton)
    .Caption = "Option 1"
    .OnAction = "MyMacro1"
  End With
  With cbc.Controls.Add(Type:=msoControlButton)
    .Caption = "Option 2"
    .OnAction = "MyMacro2"
  End With
End Sub

इस code से एक नया menu "My Menu" Excel की menu bar में जुड़ जाएगा जिसमें दो options होंगे – Option 1 और Option 2। जब आप इन पर क्लिक करेंगे तो MyMacro1 और MyMacro2 नाम के macros run होंगे।

Adding buttons to toolbars programmatically in Modifying Menus & Toolbars in Hindi

Menu के साथ-साथ आप toolbar में भी buttons जोड़ सकते हैं, जिससे user एक click में macro run कर सकता है। यह तरीका अधिक convenient होता है, खासकर जब बार-बार एक ही task करना हो।

  • Toolbars में button जोड़ने के लिए हम CommandBars का प्रयोग करते हैं।
  • नीचे दिया गया code एक नया toolbar बनाता है और उस पर buttons जोड़ता है:
Sub AddToolbarButton()
  Dim myToolbar As CommandBar
  Dim myButton As CommandBarButton

  ' पुराना toolbar delete करें यदि मौजूद हो
  On Error Resume Next
  Application.CommandBars("MyToolbar").Delete
  On Error GoTo 0

  ' नया toolbar बनाएं
  Set myToolbar = Application.CommandBars.Add(Name:="MyToolbar", Position:=msoBarTop, Temporary:=True)

  ' पहला button जोड़ें
  Set myButton = myToolbar.Controls.Add(Type:=msoControlButton)
  With myButton
    .Caption = "Run Task"
    .Style = msoButtonIconAndCaption
    .OnAction = "MyMacro"
    .FaceId = 59
  End With

  myToolbar.Visible = True
End Sub

इस code से toolbar ऊपर show होगा जिसका नाम "MyToolbar" होगा और उसमें एक button होगा "Run Task" नाम का। उस पर click करने से "MyMacro" नाम का macro run होगा।

Setting icons and captions for toolbar controls in Modifying Menus & Toolbars in Hindi

Toolbar को visually attractive और user-friendly बनाने के लिए हम उसके buttons पर icon (image) और caption (text) सेट कर सकते हैं। FaceId एक predefined icon का code होता है जो Excel में already मौजूद होता है।

  • Caption – button पर जो text लिखा होता है।
  • FaceId – icon को represent करता है। हर icon का एक unique number होता है।
  • Style – यह तय करता है कि button पर सिर्फ icon दिखेगा, सिर्फ caption या दोनों।

उदाहरण:

With myButton
  .Caption = "Save Data"
  .FaceId = 71 ' floppy disk icon
  .Style = msoButtonIconAndCaption
  .OnAction = "SaveDataMacro"
End With

इस code से button पर floppy disk वाला icon और "Save Data" लिखा हुआ caption दिखेगा। जब इस पर click करेंगे तो SaveDataMacro macro run होगा।

Resetting or restoring original menus and toolbars in Modifying Menus & Toolbars in Hindi

कभी-कभी हमें Excel की original toolbar या menu bar वापस चाहिए होती है, जैसे अगर custom menus ठीक से काम न कर रहे हों। ऐसे में हम VBA से original settings restore कर सकते हैं।

नीचे दिया गया code Excel की default menus को restore करता है:

Sub ResetMenuBar()
  ' Worksheet menu bar reset करने के लिए
  Application.CommandBars("Worksheet Menu Bar").Reset

  ' Standard और Formatting toolbar reset करने के लिए
  Application.CommandBars("Standard").Reset
  Application.CommandBars("Formatting").Reset
End Sub

इससे Excel की default स्थिति बहाल हो जाएगी और कोई भी custom menu या button जो आपने जोड़े थे, वह हट जाएंगे। यह method helpful होता है जब आप गलती से बहुत सारे unwanted buttons या menus बना दें।

महत्वपूर्ण Tips beginners के लिए

  • CommandBars केवल Classic Office Interface में काम करते हैं। Office Ribbon Interface (2007 और बाद में) के लिए RibbonX और XML customizations का उपयोग करना पड़ता है।
  • FaceId के लिए आप FaceId Browser का उपयोग कर सकते हैं जिससे आपको सभी icons के ID मिल जाते हैं।
  • हर macro का नाम और उसकी functionality clear रखें ताकि user को पता हो वो क्या कर रहा है।
  • Temporary:=True का मतलब है जब Excel बंद होगा तो यह menu/button भी remove हो जाएंगे। अगर आप permanent menu बनाना चाहते हैं तो add-in create करें।

Useful FaceId Examples

FaceId Icon Description
59 🛠️ General Settings Icon
71 💾 Save Icon
19 📊 Chart Icon
293 🔍 Search Icon

इस पूरे process से आप Excel को अपने हिसाब से customize कर सकते हैं। यदि आप बार-बार एक ही तरह के macros इस्तेमाल करते हैं तो custom menu और toolbar buttons बनाना आपके workflow को बहुत आसान बना सकता है।

FAQs

VBA customization Excel में Visual Basic for Applications के ज़रिए menus, toolbars और macros को अपने अनुसार modify या नया बनाना होता है जिससे काम तेज़ और आसान हो जाता है।
VBA editor में CommandBars का उपयोग करके आप अपनी जरूरत के हिसाब से नया menu बना सकते हैं। इसके लिए आपको CommandBars("Worksheet Menu Bar").Controls.Add का उपयोग करना होता है।
हाँ, VBA के CommandBars ऑब्जेक्ट से आप नए toolbar बना सकते हैं और उसमें buttons add कर सकते हैं, जिन्हें macros से लिंक भी किया जा सकता है।
Toolbar buttons में FaceId से predefined icons और Caption property से text set कर सकते हैं। Style property से icon, caption या दोनों दिखा सकते हैं।
Application.CommandBars("Worksheet Menu Bar").Reset कमांड से आप original menus और toolbars वापस ला सकते हैं, जिससे custom menus हट जाते हैं।
नहीं, अगर आप Temporary:=True सेट करते हैं तो customization केवल उस session के लिए रहती है। permanent customization के लिए add-ins बनाना होता है।

Please Give Us Feedback