🍰 Создание пользовательского меню
Создание пользовательских меню в Excel — это способ ускорить работу с большим количеством макросов. 🚀 Кнопки для часто используемых процедур будут всегда под рукой, без необходимости захода в редактор VBA.
В этом посте мы рассмотрим создание пользовательского меню для отдельной книги Excel с помощью объекта CommandBars. 🍧
Объект CommandBars позволяет добавлять меню и кнопки к интерфейсу Excel. Вот пример кода, который добавляет меню "Моё меню" с одним пунктом "Запуск макроса".
1️⃣ Процедуры, которые размещаются в стандартном модуле:
2️⃣ Процедуры, которые размещаются в модуле книги:
💡 Особенности для разных версий Excel
🔸 В версиях до 2007 года пользовательское меню отображается в строке меню.
🔸 В Excel 2007 и новее пользовательское меню появляется на вкладке "Надстройки" (Add-Ins).
#VBA #ExcelVBA #Меню #Создание #CommandBars
Создание пользовательских меню в Excel — это способ ускорить работу с большим количеством макросов. 🚀 Кнопки для часто используемых процедур будут всегда под рукой, без необходимости захода в редактор VBA.
В этом посте мы рассмотрим создание пользовательского меню для отдельной книги Excel с помощью объекта CommandBars. 🍧
Объект CommandBars позволяет добавлять меню и кнопки к интерфейсу Excel. Вот пример кода, который добавляет меню "Моё меню" с одним пунктом "Запуск макроса".
1️⃣ Процедуры, которые размещаются в стандартном модуле:
'Создание нового меню "Моё меню"
Sub AddCustomMenu()
Dim cb As CommandBar
Set cb = Application.CommandBars("Worksheet Menu Bar")
Dim cbc As CommandBarControl
' Удаляем существующее меню, если оно есть
On Error Resume Next
cb.Controls("Моё меню").Delete
On Error GoTo 0
' Добавляем новое меню
Set cbc = cb.Controls.Add(Type:=msoControlPopup)
cbc.Caption = "Моё меню"
' Добавляем пункт меню
Dim cbb As CommandBarButton
Set cbb = cbc.Controls.Add(Type:=msoControlButton)
cbb.Caption = "Запуск макроса"
cbb.FaceId = 263 'Иконка для пункта меню
cbb.OnAction = "MyMacro"
End Sub
'Удаление существующего меню "Моё меню"
Sub DeleteCustomMenu()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("Моё меню").Delete
On Error GoTo 0
End Sub
'Макрос, привязанный к пункту меню "Запуск макроса"
Sub MyMacro()
MsgBox "Кнопка работает, макрос запущен!"
End Sub
2️⃣ Процедуры, которые размещаются в модуле книги:
'Запускает создание меню "Моё меню" при открытии книги
Private Sub Workbook_Open()
AddCustomMenu
End Sub
'Запускает удаление меню "Моё меню" при закрытии книги
Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteCustomMenu
End Sub
💡 Особенности для разных версий Excel
🔸 В версиях до 2007 года пользовательское меню отображается в строке меню.
🔸 В Excel 2007 и новее пользовательское меню появляется на вкладке "Надстройки" (Add-Ins).
#VBA #ExcelVBA #Меню #Создание #CommandBars
👍8