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

VBA Excel. Добавление кнопки в контекстное меню

    Программное добавление кнопки в контекстное меню ячейки (строки, столбца) из кода VBA Excel. Свойство CommandBars объекта Application.

    Свойство Application.CommandBars

    Свойство CommandBars объекта Application возвращает коллекцию командных панелей Microsoft Excel.

    Примеры командных панелей, вызываемых кликом правой кнопки мыши (контекстных меню):

    • CommandBars(«Cell») – контекстное меню ячейки;
    • CommandBars(«Row») – контекстное меню строки;
    • CommandBars(«Column») – контекстное меню столбца.

    Добавление кнопки в контекстное меню

    Добавление кнопки из кода VBA Excel в контекстное меню ячейки. Кнопки в контекстные меню строк и столбцов добавляются аналогично.

    Если хотите создать постоянную кнопку для контекстного меню, используйте параметр Temporary метода Controls.Add в значении False, которое применяется по умолчанию:

    Удаление кнопки из контекстного меню

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

    Эта же строка удалит и постоянную кнопку.

    Примеры добавления и удаления кнопок

    Пример 1

    Добавление кнопки в контекстное меню ячейки из кода VBA Excel при открытии книги и удаление кнопки при закрытии книги.

    Добавление кнопки (код размещается в модуле книги):

    Удаление кнопки (код размещается в модуле книги):

    Вызываемая процедура (код размещается в стандартном модуле):

    Пример 2

    Добавление кнопки в контекстное меню ячейки из кода VBA Excel при открытии контекстного меню и удаление кнопки при завершении вызываемой процедуры.

    Добавление кнопки (код размещается в модуле книги):

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

    Вызываемая процедура с кодом удаления вызвавшей ее кнопки из контекстного меню (код размещается в стандартном модуле):

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

    1 комментарий для “VBA Excel. Добавление кнопки в контекстное меню”

    1. Андрей (Yanki)

      Добрый день.
      Для инфо.
      Есть ещё контекстное меню умной таблицы CommandBars("List Range Popup")
      Данный параметр создаёт контекстное меню если нажимать правой кнопкой в диапазоне умной таблицы, если указан какой то другой параметр, то при нажатии правой кнопкой в диапазоне умной таблицы, контекстное меню создаваться не будет.

    Обсуждение закрыто.