То, что вы себе представляете, к сожалению, невозможно.
По замыслу , Ribbon XML связан с кодом в том же «контейнере».XML-лента, хранящаяся в документе Office , должна работать с обратными вызовами в коде VBA того же документа.Если вы используете Office Open XML для вставки ленты XML в документ Word, то код, с которым он работает, должен находиться в компоненте VBA в том же документе.(Стоит также отметить, что компоненты VBA не в формате XML, а двоичные и, следовательно, не могут быть созданы с использованием Open XML - только импортированы.)
По тому же признаку, XML ленты загружаетсяНадстройка COM (основанная на IDTExtensibility2, будь то VSTO или любая другая надстройка COM) должна работать с кодом в этой надстройке.Обратные вызовы ленты не могут быть в каком-либо другом «контейнере», хотя код обратного вызова может вызывать код вне «контейнера».(Обратите внимание, что лента VSTO не может быть вызвана кодом VBA ... и лента не хранится в любом документе.)
При использовании ленты XML в надстройках VBA и COM это возможно поделиться Лента контролирует, назначив им Q
идентификатор.Для общих элементов управления код в любом контейнере может ссылаться на них, пока известен идентификатор.
Ленты, определенные в надстройках Office JS, также зависят от кода, находящегося в том же контейнере.Однако модель Office JS (еще?) Не работает с концепцией общих элементов управления.
В заключение: надстройки Office JS по-прежнему очень ограничены по сравнению с объектными моделями COM, независимо от того,объектная модель приложения Office или лента («команды» на языке Office JS).Функциональность постоянно расширяется, в последнее время особое внимание уделяется Excel.Другие вещи (надеюсь) последуют.
Если есть определенная функциональность, которая, по вашему мнению, имеет действительно высокий приоритет, вам следует обратиться к UserVoice для разработки Office.Если запрос уже сделан, проголосуйте.Если вы не можете его найти, создайте его.