Если ваш пользовательский интерфейс статический, то есть вам не нужно программно изменять поведение или добавлять / удалять элементы пользовательского интерфейса на лету, вы можете определить пользовательский интерфейс в шаблоне с поддержкой макросов. Вы можете использовать свои функции VBA в качестве обратных вызовов для элементов пользовательского интерфейса, определенных в XML.
Посмотрите это руководство . В двух словах, вы определяете файл customUI\customUI14.xml
в архиве .dotm. Этот XML описывает ваши пользовательские элементы ленты, используя эту схему .
Это определенно работает для шаблонов Word (файлы .dotm). Я думаю, что подобный подход работает для любого формата OOXML.