Лента MS Office Excel - Не удается изменить / скрыть группу редактирования на вкладке Главная
-
22-07-2019 - |
Вопрос
У меня есть надстройка .net для Excel.Надстройка создает ленточный пользовательский интерфейс для Excel 2007 и изменяет назначение некоторых существующих команд, таких как Вырезать, Копировать, Вставить, Сортировать и т.д.
Для вырезания, копирования и вставки я просто переопределяю их значение onAction, чтобы вызывать свою собственную процедуру при нажатии кнопок.Но для команд Sort, Sort Asc и Sort Desc ситуация немного отличается.При нажатии любой из кнопок Сортировать, Сортировать Asc или Сортировать Desc я хочу получать уведомления, а затем вызывать функциональность по умолчанию.Это было возможно в командной строке Excel 2003 путем вызова метода Execute() в CommandBarControl.
В Excel 2007 существует метод ExecuteMso() для программного щелчка элемента ленты, но когда onAction переопределяется, этот метод ExecuteMso() просто выполняет мою собственную процедуру, а не По умолчанию функциональность этой кнопки.
Поэтому я подумал, что скрою кнопки сортировки в группе "Редактирование" на вкладке "Главная" и добавлю к ней свои собственные кнопки сортировки, сортировки по возрастанию и Сортировки по убыванию.Кнопки сначала вызовут мою процедуру, откуда я вызову поведение по умолчанию.
Теперь проблема в том, что я не могу изменить / скрыть группу редактирования (idMso="GroupEditing").Эта встроенная группа недоступна для редактирования?Однако я могу СКРЫТЬ буфер обмена и другие группы (но не могу добавить к ним кнопки).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabHome">
<group idMso="GroupEditing" visible="false" />
</tab>
</tabs>
</ribbon>
</customUI>
Решение
Я думаю, что idMso неверен в отношении скрытия группы редактирования.
idMso="GroupEditingExcel"