VBA Excel
241 subscribers
88 photos
23 links
VBA Excel для начинающих. Справка по VBA Excel. Visual Basic for Applications. Справочник. Самоучитель.
Download Telegram
🍰 Создание пользовательского меню

Создание пользовательских меню в 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