Скрыть вкладки надстроек из ленты MS Office (например, вкладка PowerPivot)

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

Я знаю, что вы можете удалить все вкладки, используя <ribbon startFromScratch="true"> , но мне нужно оставить их на месте (я фактически использую callback getVisible, чтобы скрыть их от пользователя, но покажу их в Admin).

Итак, следующие вопросы:

  1. Есть ли способ применить «default» getVisible callback для всех незарегистрированных вкладок (я думаю, что ответ отрицательный)
  2. Как я могу определить tabID других вкладок надстроек
  3. Учитывая, что PowerPivot все более широко распространен (особенно в Excel 2013) – каков tabID для этой вкладки?

Это удивительный вопрос, есть небольшая документация или примеры работы с сторонними лентами. Я много сделал, и могу помочь вам с большей частью того, что вы хотите. Я отвечу, что у вас вопросы немного не по порядку, но здесь.

3) Идентификатор вкладки для дополнения PowerPivot является идентификатором идентификатора (поэтому его необходимо использовать с idQ) и является tabGemini . Вы должны использовать его в пространстве имен: Microsoft.AnalysisServices.Modeler.FieldList . Вы можете проверить это, добавив пространство имен в схему:

xmlns:x1="Microsoft.AnalysisServices.Modeler.FieldList"

а затем, объявив идентификатор вашей вкладки, используйте следующую команду, чтобы вставить вкладку перед вкладкой PowerPivot:

insertBeforeQ="x1:tabGemini"

2) Мне было сложно найти идентификатор вкладки для PowerPivot, так как это добавление VSTO COM, чтобы вы не могли получить доступ к XML, как вы можете, с помощью .xlam-файлов. Ответ прост, но вам нужен Office 2010 или новее. С открытием Excel и добавлением, которое вам тоже интересно, зайдите в меню «Файл», а затем «Параметры». Выберите «Настроить ленту» и справа от окна вверху выберите «Настроить ленту: основные вкладки». Теперь снимите флажки с вкладками, которые вам интересны, и нажмите внизу Import / Export для экспорта XML-схемы. Откройте этот файл в текстовом редакторе, и вы увидите, как они объявили свои вкладки.

1) Я думаю, что проблема, с которой вы столкнулись с обратным вызовом getVisible, заключается в том, что независимо от того, как вы помечаете свой XML, если кто-то загрузит надстройку после вас, он переопределит все, что вы сделали. Ниже приведены часто задаваемые вопросы о Fluent Ribbon for Developers (http://msdn.microsoft.com/en-us/library/office/aa722523%28v=office.12%29.aspx#a16c7df5-93f3-4920-baa8-7b7290794c15_FAQ )

Что происходит, когда две надстройки пытаются пересортировать один и тот же встроенный элемент управления? Последняя надстройка, которая пытается перепрофилировать элемент управления, становится активной надстройкой.

Теперь я не пошел дальше этого, но если вы можете импортировать / экспортировать эту схему платы в Office, то, если вы можете найти, куда импортируется этот get, возможно, вы можете вручную перезаписать его в VBA с помощью объекта filescripting. Очевидно, только если он хранится в виде текста. Немного длинного выстрела, но стоит посмотреть дальше? Удачи!

Вкладка PowerPivot представляет собой надстройку COM. Чтобы просмотреть его прогид и другие надстройки COM, выполните следующие действия:

 Sub ListCOMAddins() Dim lngRow As Long, objCOMAddin As COMAddIn lngRow = 1 With ActiveSheet For Each objCOMAddin In Application.COMAddIns .Cells(lngRow, "A").Value = objCOMAddin.Description .Cells(lngRow, "B").Value = objCOMAddin.Connect .Cells(lngRow, "C").Value = objCOMAddin.progID lngRow = lngRow + 1 Next objCOMAddin End With End Sub` 

В моем случае прогеймой вкладки PowerPivot является «Microsoft.AnalysisServices.Modeler.FieldList». Таким образом, чтобы закрыть вкладку:

 Private Sub Workbook_Open() Application.COMAddIns("Microsoft.AnalysisServices.Modeler.FieldList").Connect = False End Sub 
  • Динамически отключить пользовательские (VBA) кнопки контекстного меню Excel?
  • Как держать кнопку на ленте
  • VBA, когда пользователь нажимает «Отправить как прикрепление»
  • Использовать изображение .ico в ленте.
  • IdMso кнопки «Без заполнения» в наборе цветов для заполнения ячейки (Excel)
  • Excel-2010 - CustomUI - Backstage: ошибки при открытии различных файлов в одном экземпляре
  • Можно ли хранить пользовательские данные в документах Microsoft?
  • Excel 2013 Invalidate Ribbon control не работает
  • Изменение пользовательских кнопок
  • Пользовательская ленточная лента Excel отсутствует
  • ContextMenu для таблицы xml excel
  • Interesting Posts

    Формирование Excel

    триггерная формула заполнения на основе ячейки другого листа

    Код VBA для сохранения TOP 11 строк

    Получение столбца в массив из excel в python

    Добавление значений с помощью int.parse

    Ошибка времени выполнения 91: переменная объекта или с не установленным блоком

    MS превосходит время в диапазоне

    Оператор IF, вложенный в MEDIAN Функция, не генерирующая список в Excel

    Матричная визуализация с несколькими цветами и оттенками

    Есть ли для … Следующий цикл для перехода между веб-страницами для очистки?

    VBA для сопоставления столбцов 1-го столбца с столбцами 2-го столбца

    Неверный вызов процедуры или аргумент при передаче Excel. Перейдите из библиотеки VBA в C #

    Listbox не возвращает данные правильно в excel vba

    Excel VBA 2010 самостоятельная ссылка Активная кнопка X изнутри собственного действия

    Как проверить, какие фигуры / объекты выбраны / активны?

    Давайте будем гением компьютера.