Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Создание пользовательского меню

    Создание пользовательского меню в VBA Excel для отдельной книги с помощью объекта CommandBars, который позволяет добавлять меню и кнопки к интерфейсу приложения.

    Пользовательские меню в Excel

    Создание пользовательских меню в Excel с помощью VBA — это мощный способ улучшить пользовательский интерфейс для рабочих книг с большим количеством макросов. Это позволяет быстро запускать часто используемые процедуры, не заходя в редактор VBA. Пользовательские меню особенно полезны для сложных рабочих книг, где автоматизация играет ключевую роль.

    Существует несколько подходов к созданию пользовательских меню в VBA, но мы остановимся на использовании объекта CommandBars, так как это универсальный метод, работающий во всех версиях Excel, хотя и считается устаревшим для современной ленты.

    Исследования показывают, что для современных версий Excel предпочтительнее кастомизация ленты через XML, но это требует более сложного подхода, включающего создание пользовательского интерфейса в формате XML и его загрузку через свойства рабочей книги. Это выходит за рамки данной статьи.

    Создание пользовательского меню

    Объект CommandBars позволяет в VBA добавлять меню и кнопки к интерфейсу Excel. Пример кода, представленный ниже, добавляет меню «Моё меню» с одним пунктом (кнопкой) «Запуск макроса».

    Процедуры для размещения в стандартном модуле

    Цифровые коды иконок для пунктов меню смотрите на этом сайте.

    Процедуры для размещения в модуле книги

    Чтобы меню добавлялось автоматически при открытии рабочей книги и удалялось при закрытии, используются следующие события рабочей книги:

    Этот подход обеспечивает то, что меню присутствует только во время работы с конкретной рабочей книгой, что удобно для пользователей.

    Где найти новое меню?

    1. В версиях до 2007 года пользовательское меню отображается в строке меню, что соответствует классическому интерфейсу. Это удобно для пользователей, привыкших к старому дизайну.
    2. В Excel 2007 и новее пользовательское меню появляется на вкладке «Надстройки». Обычно эта вкладка скрыта, так как изначально на ней нет элементов для отображения. После добавления пользовательского меню вкладка «Надстройки» отображается автоматически.

    Пользовательское меню с одной кнопкой

    Сравнение методов создания меню

    Версия Excel Метод Место отображения Преимущества Ограничения
    До 2007 CommandBars Строка меню Интуитивно для старых пользователей До версии 2007 нет ограничений
    2007 и новее CommandBars Вкладка «Надстройки» Работает во всех версиях, простота Менее интегрировано в ленту
    2007 и новее XML для ленты Индивидуальная вкладка Полная кастомизация, современный вид Требует знания XML, сложнее в реализации

    Создание пользовательских меню в Excel с помощью VBA — это доступный способ улучшить интерфейс для пользователей. Метод с CommandBars универсален и вполне приемлем для современных версий Excel.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.