Note: The other languages of the website are Google-translated. Back to English

Как добавить пользовательскую кнопку в контекстное меню правой кнопки мыши в Excel?

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

Добавить пользовательскую кнопку в контекстное меню в Excel с кодом VBA


Добавить пользовательскую кнопку в контекстное меню в Excel с кодом VBA

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

1. нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окно, дважды щелкните Эта рабочая тетрадь слева Проекты под застройку панель. Затем скопируйте и вставьте приведенный ниже код VBA в ThisWorkbook (Код) окно.

Код VBA: добавить пользовательскую кнопку в контекстное меню в Excel

Private Sub Workbook_Deactivate()
    On Error Resume Next
        With Application
            .CommandBars("Cell").Controls("MyMacro").Delete
        End With
    On Error GoTo 0
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim cmdBtn As CommandBarButton
    On Error Resume Next
        With Application
            .CommandBars("Cell").Controls("MyMacro").Delete
            Set cmdBtn = .CommandBars("Cell").Controls.Add(Temporary:=True)
        End With

        With cmdBtn
           .Caption = "MyMacro"
           .Style = msoButtonCaption
           .OnAction = "MyMacro"
        End With
    On Error GoTo 0
End Sub

Внимание: В коде замените все «MyMacro» с именем макроса, который вы создали в Excel.

3. нажмите другой + Q ключи для выхода из Microsoft Visual Basic для приложений окно.

Теперь вы вернетесь в интерфейс Excel, после щелчка правой кнопкой мыши по ячейке вы увидите, что новая кнопка с указанным именем добавлена ​​в контекстное меню, как показано ниже. При нажатии на кнопку немедленно запускается соответствующий макрос.


Статьи по теме:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (15)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Добавить кнопку VBA в контекстное меню работает хорошо. Спасибо. Как добавить больше кнопок? (не силен в VBA, отсюда и вопрос).
Этот комментарий был сведен к минимуму модератором на сайте
Привет Вик,
Следующий код VBA может помочь вам решить проблему, попробуйте.

Частная вспомогательная книга_Deactivate ()
Dim xArrB как вариант
Dim xFNum как целое число
Dim xStr как строка
On Error Resume Next
С применением
xArrB = Массив («МойМакрос01», «МойМакрос02», «МойМакрос03»)
Для xFNum = 0 в UBound(xArrB)
xStr = xArrB(xFNum)
.CommandBars("Ячейка").Controls(xStr).Удалить
Следующий xFNum
Конец с
По ошибке GoTo 0
End Sub

Private Sub Workbook_SheetBeforeRightClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim cmdBtn как CommandBarButton
Dim xArrB как вариант
Dim xFNum как целое число
Dim xStr как строка
On Error Resume Next
xArrB = Массив («МойМакрос01», «МойМакрос02», «МойМакрос03»)
Для xFNum = 0 в UBound(xArrB)
xStr = xArrB(xFNum)
С применением
.CommandBars("Ячейка").Controls(xStr).Удалить
Установите cmdBtn = .CommandBars("Cell").Controls.Add(Temporary:=True)
Конец с
С cmdBtn
.Caption = xStr
.Стиль = мсобуттонкаптион
.OnAction = xStr
Конец с
Следующий xFNum
По ошибке GoTo 0
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
У меня это не работает, я сделал точно так же, как вышеприведенный макрос, только с одним меню, у кого-то еще работает или я что-то не так делаю?

Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Не работайте с моим Excel 2013
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Ив, я протестировал этот код в Excel 2013, и он отлично работает. Вы получили сообщение об ошибке? Мне нужно знать больше о вашей проблеме
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за ваш ответ, но не работает на столе. На обычной камере работает отлично.
Этот комментарий был сведен к минимуму модератором на сайте
Привет yves, проблема теперь ясна, и мне нужно время, чтобы исправить это. Пожалуйста подождите. Спасибо за ваш отзыв.
Этот комментарий был сведен к минимуму модератором на сайте
большое спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо
Это работает для всех книг даже после перезапуска Excel или только для выбранной книги, в которой сохранен макрос?
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Это работает только для книги, в которой сохраняется макрос. Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
Разместите код в отдельном модуле, для того чтобы это работало для всех документов
Этот комментарий был сведен к минимуму модератором на сайте
Привет,

Je déterre le sujet car j'ai un soucis, j'ai récupérer un fichier qui m'a remplacé le menu du click droit et je ne sais pas comment revenir au menu par défaut...
Ça модификатор меню для импорта из Excel. Используйте Excel 2016.

Je précise que le fichier coupable un mot de passe pour accéder à son code VBA. Mot de passe qu'évidemment je ne possède pas..

Merci d'Avance Pour Votre Aide !!
Этот комментарий был сведен к минимуму модератором на сайте
Привет Оливье,
Извините, я не совсем понимаю, что вы имеете в виду. Вы имеете в виду вернуться к обычному контекстному меню?
Этот комментарий был сведен к минимуму модератором на сайте
Zdravím dokázal byste mi prosím někdo poradit s podobným problemem? Po possledním updateu Office přibyla v excelu po stisknutí pravého tlačítka nad kopírovat a vyjmout volba hledat v nabídkach která mi tam vadí a chtěl bych jí odstranit. Dá se to udělat i obráceně a nějakou funkci odstranit?

Благодарю вас
Этот комментарий был сведен к минимуму модератором на сайте
Привет Томаш,
Я не сталкивался с этой ситуацией. Можете ли вы прикрепить скриншот, чтобы более четко описать проблему, с которой вы столкнулись.
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL