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 को बहुत आसान बना सकता है।