MS Office Excel Ribbon - Невозможно изменить / скрыть группу редактирования на домашней вкладке - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть расширение .net для Excel. Надстройка создает ленточный интерфейс для Excel 2007 и повторно использует некоторые существующие команды, такие как «Вырезать», «Копировать», «Вставить», «Сортировать» и т. Д.

Для функций Вырезать, Копировать и Вставить я просто переопределяю их значение OnAction, чтобы вызывать мою собственную процедуру при нажатии кнопок. Но для команд Sort, Sort Asc и Sort Desc ситуация несколько иная. При нажатии любой из кнопок Sort, Sort Asc или Sort Desc я хочу получить уведомление и затем вызвать функциональность по умолчанию. Это стало возможным в панелях команд Excel 2003 путем вызова метода Execute () для CommandBarControl.

В Excel 2007 есть метод ExecuteMso () для программного щелчка по элементу ленты, но когда OnAction переопределяется, этот метод ExecuteMso () просто выполняет мою собственную процедуру, а не стандартную функциональность этого кнопка.

Поэтому я подумал, что спрятал кнопки «Сортировка» в группе «Редактирование» на вкладке «Главная» и добавил к ней свои собственные кнопки «Сортировка», «Сортировка по Asc» и «Сортировка по дескриптору». Сначала кнопки вызовут мою процедуру, откуда я вызову поведение по умолчанию.

Теперь проблема в том, что я не могу изменить / скрыть группу редактирования (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>

1 Ответ

1 голос
/ 13 января 2010

Я думаю, что idMso неверно в отношении скрытия группы редактирования.

idMso = "GroupEditingExcel"

...