У меня есть два независимых проекта надстроек VSTO Excel (Excel 365), каждый из которых создает новую ленту Excel, скажем, «Проект 1» и «Проект 2».
В каждом проекте я даю уникальное имя ленте, а также вкладку на ленте.
Однако, когда я устанавливаю обе эти надстройки в Excel, вкладки смешиваются друг с другом, и я получаю одну ленту со смесью элементов управления из обоих проектов.
Как мне создать совершенно другую ленту для каждого из проектов?
Свойство элементов управления idQ
позволяет нескольким надстройкам совместно использовать контейнеры, такие как настраиваемые вкладки и группы.
В следующем примере две надстройки совместно используют одну и ту же группу «Образец» на вкладке надстроек; каждый добавляет к нему одну кнопку. Ключом является указание того же уникального пространства имен в теге <customUI>
. Затем элементы управления могут ссылаться на это пространство имен с помощью idQ
.
Первые настройки:
<customUI xmlns = "http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x = "myNameSpace" >
<ribbon>
<tabs>
<tab idMso = "TabAddIns">
<group idQ = "x:Sample" label = "Sample">
<button id = "C1" label = "Sample Button 1" size = "large"
imageMso = "FileSave" onAction = "c_action1" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Вторые настройки:
<customUI xmlns = "http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x = "myNameSpace" >
<ribbon>
<tabs>
<tab idMso = "TabAddIns">
<group idQ = "x:Sample" label = "Sample">
<button id = "C2" label = "Sample Button 2" size = "large"
imageMso = "FileSave" onAction = "c_action2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Поэтому убедитесь, что вы используете уникальное значение атрибута idQ
в каждой надстройке.
Установите для атрибута id
элементов tab
разные значения.
Пример:
<tab id = "Project1" />
<tab id = "Project2" />
Я работал с дизайнером, а не с xml, и мне помогло настроить свойство ControlId вкладки на ControlldType=Custom и CustomId=Project1 или Project2.