http://blogs.msdn.com/b/vsto/archive/2008/03/10/share-a-ribbon-customization-between-office-applications.aspx
Office 2007
Создание ленты
- Создание проекта 2007 Excel, Outlook, PowerPoint или Word 2007в Visual Studio.Для выполнения этих шагов создайте проект C # и назовите проект RibbonStarterProject.
- Добавьте элемент ленты (Visual Designer) в проект.Для этих шагов примите имя по умолчанию «Лента1».
- Сохраните и закройте проект.
Создайте проект библиотеки классов
- Создайте новый проект библиотеки классов в Visual Studio.Для этих шагов назовите проект SharedRibbonLibrary.
- Добавьте ссылку на проект в сборку Microsoft.Office.Tools.Common.v9.0.
- В меню проекта в Visual Studioщелкните «Добавить существующий элемент».
- В диалоговом окне «Добавить существующий элемент» перейдите в каталог проекта «RibbonStarterProject», выберите файл Ribbon.cs и нажмите «Добавить».Ribbon1.cs копируется в каталог проекта и отображается под узлом проекта в обозревателе решений.
- Дважды щелкните Ribbon1.cs.Появится дизайнер ленты.
- На вкладке Элементы управления ленты Office на панели инструментов перетащите кнопку на группу 1.
- Нажмите кнопку 1, чтобы выбрать ее.
- В окне "Свойства" выберитеустановите Модификаторы в Public.Примечание. По умолчанию элементы управления, добавляемые на ленту, являются внутренними.Это делает их доступными только для кода внутри одной сборки.Однако, когда вы получите доступ к этим элементам управления, вы получите доступ к ним через ссылку на сборку.Поэтому, чтобы получить доступ к ним из кода, вы должны сделать их публичными.Подробнее об этом в ближайшее время.
- Щелкните правой кнопкой мыши конструктор ленты и выберите «Свойства».
- В окне «Свойства» выберите свойство RibbonType и выберите идентификаторы ленты для приложений или Outlook.Окна инспектора, в которых вы хотите, чтобы появилась лента.Дополнительные сведения об этом свойстве см. В справочном разделе MSDN для свойства RibbonType.
- В обозревателе решений щелкните правой кнопкой мыши Ribbon1.cs и выберите команду Просмотреть код.
- Измените пространство именкласс «SharedRibbonLibrary».
- Повторите этот шаг для файла Ribbon1.designer.cs.
- Скомпилируйте и сохраните проект SharedRibbonLibrary.Теперь вы можете использовать полученную сборку в любом проекте VSTO, который поддерживает ленту.
Использовать настройку ленты
- Создать 2007 Excel, Outlook, PowerPoint или Word проект.
- Добавьте ссылку на сборку SharedRibbonLibrary.
Добавьте следующий код в класс ThisAddin, ThisWorkbook или ThisDocument вашего проекта.Этот код переопределяет метод CreateRibbonExtensibilityObject и возвращает ленту в приложение Office.
protected override Microsoft.Office.Core.IRibbonExtensibility
CreateRibbonExtensibilityObject()
{
return new Microsoft.Office.Tools.Ribbon.RibbonManager(
new Microsoft.Office.Tools.Ribbon.OfficeRibbon[] { new
SharedRibbonLibrary.Ribbon1() });
}
Добавить новый класс в проект.Примите имя по умолчанию «Class1.cs».
Замените код в файле Class1 следующим:
partial class ThisRibbonCollection : Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection
{
internal SharedRibbonLibrary.Ribbon1 Ribbon1
{
get { return this.GetRibbon<SharedRibbonLibrary.Ribbon1>(); }
}
}
Ok -Вы сделали!Теперь вы можете получить доступ к ленте и кнопке, которую вы добавили к ленте в своем коде.Давайте попробуем обработать событие в потребляющем проекте.
Обработка события нажатия кнопки
Добавьте следующий код в обработчик события запуска проекта.
Globals.Ribbons.Ribbon1.button1.Click += new EventHandler<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>(button1_Click);
Добавьте следующий обработчик событий в ваш проект:
void button1_Click(object sender,
Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs e)
{
System.Windows.Forms.MessageBox.Show("I can handle events!");
}
Запустите проект.
Когда откроется приложение Office, перейдите на вкладку «Надстройки» и нажмите кнопку.Появляется сообщение «Я могу обрабатывать события!».
Реализация Office 2010 : http://blogs.msdn.com/b/vsto/archive/2010/06/23/sharing-a-ribbon-customization-between-office-projects-in-visual-studio-2010-mclean-schofield.aspx
Реализация 2010 года фактически добавляет дваЛенты - по одной на каждую надстройку.Я считаю, что статья применима только к надстройкам на одной ленте в разных продуктах Office (например, Word и Excel), но не к двум надстройкам Excel.
Единственный другойя обнаружил, что это сторонний компонент: http://www.add -in-express.com / creation-addins-blog / 2012/11/05 / excel-addin-shared-ribbon-tabs /