На форуме уже много было вопросов по редактированию контекстного меню, но я к сожалению не нашёл ответа на свой вопрос. То есть, добавить/удалить свои кнопки в то или иное контекстное меню не вызывает вопросов. Вопрос стоит, как удалить/скрыть стандартные опции.
В файле книга с примером. В Module1 макрос OnOffPopupMenu формирует контекстное меню для листа (Ply) и тут же показывает его. После его скрытия на текущем листе в таблице выводятся все опции этого меню. Не запускайте макрос на листе с данными, так как лист очищается полностью в начале макроса.
Макрос DisableHideMenuItems удаляет/отключает или скрывает указанную опцию в указанном меню. Точнее так хотелось бы, но этого не происходит. При клике ПКМ на вкладке листа открывается полное контекстное меню. Но запустив макрос OnOffPopupMenu в таблице не будет опции, которую перед этим удаляли.
В общем, помогите, пожалуйста разобраться с этим вопросом.
не понятно чего собственно нужно. изменить контекстное меню или отключить? Лично я не понял, что в конечном итоге нужно. Такие темы Уже вроде бы обсуждались на форуме не однократно.
Ключевой момент был раскрыт в этом абзаце (машинный перевод):
В Microsoft Excel 97 — Excel 2003 можно добавить элементы управления для каждого контекстного меню с помощью VBA-кода (хотя это не было протестировано для любого случая) но это не возможно изменение контекстные меню с помощью RibbonX.
Excel 2007 можно добавить элементы управления почти каждый контекстное меню с помощью VBA-кода. Тем не менее не позволяет изменить некоторые контекстные меню, такие как Shapes и Picture контекстное меню с помощью VBA. Кроме того это невозможно изменить контекстное меню с помощью RibbonX.
Excel 2010 можно добавить элементы управления почти каждый контекстное меню с помощью VBA-кода. Действуют те же ограничения для изменения некоторых контекстных меню с помощью VBA как Excel 2007. Кроме того можно добавить кнопки и меню для каждого контекстного меню с помощью RibbonX, но если вы хотите отключить или re-purpose элементы управления, будет возможность найти правильные идентификаторы (idMso).
'---
Например, при редактировании контекстного меню для листов, чтобы убрать кнопку Удалить нужно вставить такие теги: