У меня есть проект, который добавляет функциональность Microsoft Word с помощью пакета расширения XML. В настоящее время, когда открывается документ, который мы предоставляем клиенту, он загружает наш пакет, который выполняет метод SmartDocInitialize, который добавляет вещи в главное меню и панель инструментов с помощью Microsoft.Office.Core.CommandBar.Controls.Add и т. П. Без изменений, когда они открываются в Word 2007, эти кнопки добавляются на вкладке «Надстройки», но это не идеально, поскольку кнопки все маленькие, не сгруппированы должным образом, и нет возможности добавить вкладку надстроек в когда документ загружен.Программно добавив ленту к Microsoft Word 2007
Я хотел был бы сохранить эту функциональность так же, если документ открыт в Office 2003, но если документ открывается в Office 2007, я хотел бы прочитать в XML-файле, который описывает мою новую вкладку Ribbon, и все кнопки. Все, что мне удалось найти в Интернете, казалось, привело к тому, что файл ленты был загружен только в том случае, если у вас очень специфическая комбинация магии (встроена в Visual Studio, и она работает, но нет никакой информации о том, как вы могли бы развернуть ее для пользователей) и будет работать только в том случае, если у вас есть весь проект, созданный первоначально с помощью инструментов Visual Studio для свойств Office, которых у меня сейчас нет.
Наша среда разработки XP, Visual Studio 2005, C#, .NET 2.0
Все, что я видел для надстроек COM, говорит, что они загружены приложением, а не для каждого документа. К сожалению, я не могу справиться с этим. Я понял, как добавить ленту на основе каждого документа, но таким образом функция onAction, похоже, должна быть макросом VBA, и мне сложно определить, как заставить мой макрос VBA звонить мои обработчики событий в C#. Если вы что-то знаете об этом, добавьте ответ на этот вопрос: http://stackoverflow.com/questions/1288717/is-it-possible-to-call-c-dlls-from-visual-basic-code-contained -in-a-word-2007-fi –
Мое предположение: вам нужно, чтобы классы .NET, видимые каким-то образом, VBA (который является базами COM) могли видеть и работать с ними. Тем не менее, это вне моего опыта. –
Я нашел это. Только для информации. https://social.msdn.microsoft.com/Форумы/office/en-US/ddf4a3fe-16af-440d-9697-9a3bf53b52c3/customize-microsoft-word-2007-in-cnet-windows-application-using-microsoftofficeinteropword? forum = worddev Невозможно, я думаю. .. –