Настройка ленты Office Fluent с помощью управляемой надстройки COM
Компонент ленты пользовательского интерфейса Microsoft Office Fluent в наборах Microsoft Office предоставляет пользователям гибкий способ работы с приложениями Office. Для расширения возможностей ленты используется простая текстовая описательная разметка XML.
В примере кода в этом разделе показано, как настроить ленту в приложении Office независимо от того, какой документ открыт. На следующих шагах вы создадите настройки уровня приложения с помощью управляемой надстройки COM и создадите надстройку в Microsoft Visual Studio 2012 с помощью Microsoft Visual C#. Проект добавляет в ленту пользовательскую вкладку, группу и кнопку. Для завершения процедуры необходимо выполнить указанные ниже действия.
Создайте файл настройки XML.
Создайте управляемый проект надстройки COM в Microsoft Visual Studio 2012 с помощью C#.
Добавьте к проекту файл настройки XML в качестве внедренного ресурса.
Реализуйте интерфейс IRibbonExtensibility.
Создайте метод обратного вызова, который активируется при выборе кнопки.
Соберите, установите и протестируйте проект.
Создание XML-файла настройки
На этом этапе создается файл, добавляющий на ленту пользовательские компоненты.
В текстовом редакторе добавьте следующую разметку XML.
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="CustomTab" label="My Tab"> <group id="SampleGroup" label="Sample Group"> <button id="Button" label="Insert Company Name" size="large" onAction="InsertCompanyName" /> </group > </tab> </tabs> </ribbon> </customUI>
Закройте файл и сохраните его под именем customUI.xml.
Создание управляемого проекта надстройки COM
На этом шаге вы создадите проект C# надстройки COM в Microsoft Visual Studio 2012.
Запустите приложение Microsoft Visual Studio 2012.
В меню Файл выберите Создать проект.
В диалоговом окне Новый проект в разделе Типы проектов разверните узел Другие проекты, выберите Проекты расширяемости, а затем дважды щелкните Общие надстройки.
Укажите имя проекта, например RibbonXSampleCS.
На первом экране мастера общих надстроек нажмите кнопку Далее.
Выберите Создать надстройку с помощью Visual C#, а затем нажмите кнопку Далее.
Очистите все выбранные элементы, кроме Microsoft Word, а затем нажмите кнопку Далее.
Введите имя и описание надстройки, а затем нажмите кнопку Далее.
На экране Выбор параметров надстройки выберите Я хочу, чтобы надстройка загружался при загрузке ведущего приложения , а затем нажмите кнопку Далее.
Нажмите кнопку Готово , чтобы завершить работу мастера.
Добавление внешних ссылок в проект
На этом этапе добавляются ссылки на первичные сборки взаимодействия Microsoft Word и библиотеку типов.
В Обозреватель решений щелкните правой кнопкой мыши ссылки и выберите добавить ссылку.
Примечание.
Если папка Ссылки не отображается, выберите меню Проект , а затем — Показать все файлы.
На вкладке .NET прокрутите список вниз, нажмите и удерживайте клавишу CTRL, а затем выберите пункт Microsoft.Office.Interop.Word.
На вкладке COM прокрутите вниз, выберите библиотеку объектов Microsoft Office 15.0 (или библиотеку, соответствующую вашей версии Office), а затем нажмите кнопку ОК.
Добавьте следующие ссылки на пространство имен в проект, если они еще не существуют, сразу под строкой пространства имен .
using System.Reflection; using Microsoft.Office.Core; using System.IO; using System.Xml; using Extensibility; using System.Runtime.InteropServices; using MSword = Microsoft.Office.Interop.Word;
Добавление XML-файла настройки в качестве внедренного ресурса
На этом шаге вы добавите XML-файл настройки в качестве внедренного ресурса в проект.
В Обозреватель решений щелкните правой кнопкой мыши RibbonXSampleCS, наведите указатель мыши на пункт Добавить и выберите Существующий элемент.
Перейдите к созданному файлуcustomUI.xml , выберите файл и нажмите кнопку Добавить.
В обозревателе решений щелкните правой кнопкой мыши файл customUI.xml и выберите команду Properties (Свойства).
В окно свойств выберите Действие сборки, а затем прокрутите вниз до пункта Внедренный ресурс.
Реализация интерфейса IRibbonExtensibility
На этом шаге вы добавите код в extensibility.IDTExtensibility2::OnConnection, чтобы создать ссылку на приложение Word во время выполнения. Вы также реализуете единственный член интерфейса IRibbonExtensibility— GetCustomUI.
В Обозреватель решений щелкните правой кнопкой мыши файл Connect.cs и выберите пункт Просмотреть код.
После метода Connect добавьте следующее объявление, создающее ссылку на объект Word Application (Приложение Word):
private MSword.Application applicationObject;
Добавьте следующую строку в метод OnConnection. Этот оператор создает экземпляр объекта Word Application:
applicationObject =(MSword.Application)application;
В конце инструкции public class Connect добавьте запятую и введите IRibbonExtensibility.
Примечание.
Используйте Microsoft IntelliSense для вставки методов интерфейса. Например, в конце инструкции общедоступного класса Connect введите IRibbonExtensibility, щелкните правой кнопкой мыши и наведите указатель мыши на пункт Реализовать интерфейс, а затем выберите пункт Реализовать интерфейс явным образом. При этом создается заглушка метода GetCustomUI. Реализация подобна приведенному ниже коду.
string IRibbonExtensibility.GetCustomUI(string RibbonID) { }
Вставьте следующую инструкцию в метод GetCustomUI , перезаписав существующий код:
return GetResource("customUI.xml");
Вставьте следующий метод под методом GetCustomUI :
private string GetResource(string resourceName) { Assembly asm = Assembly.GetExecutingAssembly(); foreach (string name in asm.GetManifestResourceNames()) { if (name.EndsWith(resourceName)) { System.IO.TextReader tr = new System.IO.StreamReader(asm.GetManifestResourceStream(name)); //Debug.Assert(tr != null); string resource = tr.ReadToEnd(); tr.Close(); return resource; } } return null; }
Метод GetCustomUI вызывает метод GetResource. Метод GetResource задает ссылку на эту сборку во время выполнения, а затем циклически просматривает внедренный ресурс, пока не найдет тот, с именем customUI.xml. После этого создается экземпляр объекта StreamReader, который считывает внедренный файл с разметкой XML. Процедура передает код XML обратно методу GetCustomUI, который возвращает его на ленту. В качестве варианта вы можете составить строку, содержащую разметку XML, и считать ее непосредственно в метод GetCustomUI.
Добавьте следующий метод после метода GetResource. Он вставляет название организации в начало страницы документа.
public void InsertCompanyName(IRibbonControl control) { // Inserts the specified text at the beginning of a range or selection. string MyText; MyText = "Microsoft Corporation"; MSword.Document doc = applicationObject.ActiveDocument; //Inserts text at the beginning of the active document. object startPosition = 0; object endPosition = 0; MSword.Range r = (MSword.Range)doc.Range( ref startPosition, ref endPosition); r.InsertAfter(MyText); }
Сборка и установка проекта
На этом шаге вы создадите надстройку и проект ее установки. Перед тем как продолжить, убедитесь, что приложение Word закрыто.
В меню Проект выберите Сборка решения. По завершении сборки в левом нижнем углу окна появится уведомление.
В Обозреватель решений щелкните правой кнопкой мыши RibbonXSampleCSSetup и выберите команду Сборка.
Щелкните правой кнопкой мыши RibbonXSampleCSSetup и выберите Установить , чтобы запустить мастер установки RibbonXSampleCSSetup.
Нажмите кнопку Далее на каждом из экранов, а затем нажмите кнопку Закрыть на последнем экране.
Запустите Word. Справа от других вкладок должна появиться вкладка My Tab (Моя вкладка).
Тестирование проекта
Перейдите на вкладку Моя вкладка , а затем выберите Вставить название компании , чтобы вставить название компании в документ на курсоре. Если настраиваемая лента не отображается, может потребоваться добавить запись в реестр Windows, выполнив следующие действия.
Предостережение
Следующие несколько этапов содержат сведения об изменении реестра. Прежде чем приступить к этой процедуре, создайте резервную копию реестра и убедитесь, что вы знаете, как восстановить его в случае возникновения проблем. Дополнительные сведения о резервном копировании, восстановлении и изменении реестра см. в этой статье базы знаний Майкрософт: Сведения о реестре Windows для опытных пользователей (256986).
В Обозреватель решений щелкните правой кнопкой мыши проект установки RibbonXSampleCSSetup, наведите указатель мыши на пункт Просмотр и выберите Реестр.
На вкладке Registry (Реестр) найдите ключ для надстройки: HKCU\Software\Microsoft\Office\Word\AddIns\RibbonXSampleCS.Connect
Примечание.
Если ключ RibbonXSampleCS.Connect не существует, его можно создать. Для этого щелкните правой кнопкой мыши папку Addins , наведите указатель мыши на пункт Создать и выберите пункт Ключ. Назовите ключ RibbonXSampleCS.Connect. Добавьте DWord LoadBehavior и задайте для нее значение 3.
См. также
- Обзор ленты Office Fluent
- Настройка ленты Microsoft Office Fluent с помощью файла форматов Open XML
- Настройка ленты Office Fluent с помощью надстройки COM Visual Basic
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.