Настройка ленты Office Fluent с помощью управляемой надстройки COM

Компонент ленты пользовательского интерфейса Microsoft Office Fluent в наборах Microsoft Office предоставляет пользователям гибкий способ работы с приложениями Office. Для расширения возможностей ленты используется простая текстовая описательная разметка XML.

В примере кода в этом разделе показано, как настроить ленту в приложении Office независимо от того, какой документ открыт. На следующих шагах вы создадите настройки уровня приложения с помощью управляемой надстройки COM и создадите надстройку в Microsoft Visual Studio 2012 с помощью Microsoft Visual C#. Проект добавляет в ленту пользовательскую вкладку, группу и кнопку. Для завершения процедуры необходимо выполнить указанные ниже действия.

  1. Создайте файл настройки XML.

  2. Создайте управляемый проект надстройки COM в Microsoft Visual Studio 2012 с помощью C#.

  3. Добавьте к проекту файл настройки XML в качестве внедренного ресурса.

  4. Реализуйте интерфейс IRibbonExtensibility.

  5. Создайте метод обратного вызова, который активируется при выборе кнопки.

  6. Соберите, установите и протестируйте проект.

Создание XML-файла настройки

На этом этапе создается файл, добавляющий на ленту пользовательские компоненты.

  1. В текстовом редакторе добавьте следующую разметку 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> 
    
  2. Закройте файл и сохраните его под именем customUI.xml.

Создание управляемого проекта надстройки COM

На этом шаге вы создадите проект C# надстройки COM в Microsoft Visual Studio 2012.

  1. Запустите приложение Microsoft Visual Studio 2012.

  2. В меню Файл выберите Создать проект.

  3. В диалоговом окне Новый проект в разделе Типы проектов разверните узел Другие проекты, выберите Проекты расширяемости, а затем дважды щелкните Общие надстройки.

  4. Укажите имя проекта, например RibbonXSampleCS.

  5. На первом экране мастера общих надстроек нажмите кнопку Далее.

  6. Выберите Создать надстройку с помощью Visual C#, а затем нажмите кнопку Далее.

  7. Очистите все выбранные элементы, кроме Microsoft Word, а затем нажмите кнопку Далее.

  8. Введите имя и описание надстройки, а затем нажмите кнопку Далее.

  9. На экране Выбор параметров надстройки выберите Я хочу, чтобы надстройка загружался при загрузке ведущего приложения , а затем нажмите кнопку Далее.

  10. Нажмите кнопку Готово , чтобы завершить работу мастера.

Добавление внешних ссылок в проект

На этом этапе добавляются ссылки на первичные сборки взаимодействия Microsoft Word и библиотеку типов.

  1. В Обозреватель решений щелкните правой кнопкой мыши ссылки и выберите добавить ссылку.

    Примечание.

    Если папка Ссылки не отображается, выберите меню Проект , а затем — Показать все файлы.

  2. На вкладке .NET прокрутите список вниз, нажмите и удерживайте клавишу CTRL, а затем выберите пункт Microsoft.Office.Interop.Word.

  3. На вкладке COM прокрутите вниз, выберите библиотеку объектов Microsoft Office 15.0 (или библиотеку, соответствующую вашей версии Office), а затем нажмите кнопку ОК.

  4. Добавьте следующие ссылки на пространство имен в проект, если они еще не существуют, сразу под строкой пространства имен .

     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-файл настройки в качестве внедренного ресурса в проект.

  1. В Обозреватель решений щелкните правой кнопкой мыши RibbonXSampleCS, наведите указатель мыши на пункт Добавить и выберите Существующий элемент.

  2. Перейдите к созданному файлуcustomUI.xml , выберите файл и нажмите кнопку Добавить.

  3. В обозревателе решений щелкните правой кнопкой мыши файл customUI.xml и выберите команду Properties (Свойства).

  4. В окно свойств выберите Действие сборки, а затем прокрутите вниз до пункта Внедренный ресурс.

Реализация интерфейса IRibbonExtensibility

На этом шаге вы добавите код в extensibility.IDTExtensibility2::OnConnection, чтобы создать ссылку на приложение Word во время выполнения. Вы также реализуете единственный член интерфейса IRibbonExtensibility— GetCustomUI.

  1. В Обозреватель решений щелкните правой кнопкой мыши файл Connect.cs и выберите пункт Просмотреть код.

  2. После метода Connect добавьте следующее объявление, создающее ссылку на объект Word Application (Приложение Word):

    private MSword.Application applicationObject;

  3. Добавьте следующую строку в метод OnConnection. Этот оператор создает экземпляр объекта Word Application:

    applicationObject =(MSword.Application)application;

  4. В конце инструкции public class Connect добавьте запятую и введите IRibbonExtensibility.

    Примечание.

    Используйте Microsoft IntelliSense для вставки методов интерфейса. Например, в конце инструкции общедоступного класса Connect введите IRibbonExtensibility, щелкните правой кнопкой мыши и наведите указатель мыши на пункт Реализовать интерфейс, а затем выберите пункт Реализовать интерфейс явным образом. При этом создается заглушка метода GetCustomUI. Реализация подобна приведенному ниже коду.

       string IRibbonExtensibility.GetCustomUI(string RibbonID) 
     { 
     }
    
  5. Вставьте следующую инструкцию в метод GetCustomUI , перезаписав существующий код: return GetResource("customUI.xml");

  6. Вставьте следующий метод под методом 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.

  7. Добавьте следующий метод после метода 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 закрыто.

  1. В меню Проект выберите Сборка решения. По завершении сборки в левом нижнем углу окна появится уведомление.

  2. В Обозреватель решений щелкните правой кнопкой мыши RibbonXSampleCSSetup и выберите команду Сборка.

  3. Щелкните правой кнопкой мыши RibbonXSampleCSSetup и выберите Установить , чтобы запустить мастер установки RibbonXSampleCSSetup.

  4. Нажмите кнопку Далее на каждом из экранов, а затем нажмите кнопку Закрыть на последнем экране.

  5. Запустите Word. Справа от других вкладок должна появиться вкладка My Tab (Моя вкладка).

Тестирование проекта

Перейдите на вкладку Моя вкладка , а затем выберите Вставить название компании , чтобы вставить название компании в документ на курсоре. Если настраиваемая лента не отображается, может потребоваться добавить запись в реестр Windows, выполнив следующие действия.

Предостережение

Следующие несколько этапов содержат сведения об изменении реестра. Прежде чем приступить к этой процедуре, создайте резервную копию реестра и убедитесь, что вы знаете, как восстановить его в случае возникновения проблем. Дополнительные сведения о резервном копировании, восстановлении и изменении реестра см. в этой статье базы знаний Майкрософт: Сведения о реестре Windows для опытных пользователей (256986).

  1. В Обозреватель решений щелкните правой кнопкой мыши проект установки RibbonXSampleCSSetup, наведите указатель мыши на пункт Просмотр и выберите Реестр.

  2. На вкладке Registry (Реестр) найдите ключ для надстройки: HKCU\Software\Microsoft\Office\Word\AddIns\RibbonXSampleCS.Connect

    Примечание.

    Если ключ RibbonXSampleCS.Connect не существует, его можно создать. Для этого щелкните правой кнопкой мыши папку Addins , наведите указатель мыши на пункт Создать и выберите пункт Ключ. Назовите ключ RibbonXSampleCS.Connect. Добавьте DWord LoadBehavior и задайте для нее значение 3.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.