Страницы: 1
RSS
Редактирование контекстного меню (ПКМ)
 
Приветствую!  
 
На форуме уже много было вопросов по редактированию контекстного меню, но я к сожалению не нашёл ответа на свой вопрос. То есть, добавить/удалить свои кнопки в то или иное контекстное меню не вызывает вопросов. Вопрос стоит, как удалить/скрыть стандартные опции.  
 
В файле книга с примером. В Module1 макрос OnOffPopupMenu формирует контекстное меню для листа (Ply) и тут же показывает его. После его скрытия на текущем листе в таблице выводятся все опции этого меню. Не запускайте макрос на листе с данными, так как лист очищается полностью в начале макроса.    
 
Макрос DisableHideMenuItems удаляет/отключает или скрывает указанную опцию в указанном меню. Точнее так хотелось бы, но этого не происходит. При клике ПКМ на вкладке листа открывается полное контекстное меню. Но запустив макрос OnOffPopupMenu в таблице не будет опции, которую перед этим удаляли.    
 
В общем, помогите, пожалуйста разобраться с этим вопросом.
Hello! My blog: TRADING WAY
 
файл для 2003 офиса.
Hello! My blog: TRADING WAY
 
Упс. Только сейчас увидел, что файл для 2003-го не прикрепил. :)
Hello! My blog: TRADING WAY
 
не понятно чего собственно нужно. изменить контекстное меню или отключить? Лично я не понял, что в конечном итоге нужно. Такие темы Уже вроде бы обсуждались на форуме не однократно.
 
Хочу разобраться, как отключать стандартные опции в контекстом меню. На примере контекстного меню Ply (листы), если можно.  
 
Да, темы подобные были, но там нет ответа на мой вопрос (вроде бы все просмотрел). Пока не удаётся решить самому.
Hello! My blog: TRADING WAY
 
Отключаем опции. Возможно этот пример поможет?
 
Спасибо за пример, но не получается редактировать вот эти контекстные меню.  
 
Например для "Ply" и "Shapes" уже работать не будет:  
 
With CommandBars("Ply")  
  .Controls(1).Enabled = False  
End With  
 
With CommandBars("Shapes")  
  .Controls(1).Enabled = False  
End With  
 
И вот не могу понять почему. Всё ведь аналогично. )))
Hello! My blog: TRADING WAY
 
При чём отключить полностью можно любые контекстные меню. А убрать опции не у всех.
Hello! My blog: TRADING WAY
 
Решение найдено!  
 
Вот по этой ссылке можно прочитать подробную статью (статьи):  
 
http://msdn.microsoft.com/ru-ru/library/gg469862.aspx  
 
'---  
 
Ключевой момент был раскрыт в этом абзаце (машинный перевод):  
 
В Microsoft Excel 97 — Excel 2003 можно добавить элементы управления для каждого контекстного меню с помощью VBA-кода (хотя это не было протестировано для любого случая) но это не возможно изменение контекстные меню с помощью RibbonX.  
 
Excel 2007 можно добавить элементы управления почти каждый контекстное меню с помощью VBA-кода. Тем не менее не позволяет изменить некоторые контекстные меню, такие как Shapes и Picture контекстное меню с помощью VBA. Кроме того это невозможно изменить контекстное меню с помощью RibbonX.  
 
Excel 2010 можно добавить элементы управления почти каждый контекстное меню с помощью VBA-кода. Действуют те же ограничения для изменения некоторых контекстных меню с помощью VBA как Excel 2007. Кроме того можно добавить кнопки и меню для каждого контекстного меню с помощью RibbonX, но если вы хотите отключить или re-purpose элементы управления, будет возможность найти правильные идентификаторы (idMso).  
 
'---  
 
Например, при редактировании контекстного меню для листов, чтобы убрать кнопку Удалить нужно вставить такие теги:  
 
<contextMenus>  
   <contextMenu idMso="ContextMenuWorkbookPly">  
<button idMso="SheetDelete" enabled="false" visible="false"/>  
   </contextMenu>  
</contextMenus>
Hello! My blog: TRADING WAY
 
"добавить кнопки и меню для каждого контекстного меню с помощью RibbonX,"  
Что такое RibbonX? Помогите, пожалуйста!  
 
Хочу добавить кнопки "Разгруппировать", и "Группировать" с контекстное меню EXCEL 2010
 
Может поможет надстройка для редактирования контекстного меню.
Страницы: 1
Наверх