Обзор ленты Office Fluent

Примечание.

Использование commandBars в некоторых приложениях Microsoft Office было заменено новым компонентом ленты пользовательского интерфейса Office Fluent.

Лента интерфейса Office Fluent заменяет предыдущую систему многослойных меню, панелей инструментов и задач из предыдущих версий Office. Она отличается более простой системой, оптимизированной для эффективности и удобства навигации. Лента содержит улучшенные контекстные меню, экранные подсказки, мини-панель инструментов и сочетания клавиш, позволяющие повысить продуктивность вашей работы.

Кроме того, для улучшения интерфейса можно воспользоваться расширяемостью ленты (или RibbonX). С помощью языка XML и одного из традиционных языков программирования вы можете управлять компонентами, которые ее составляют. Так как файлы XML содержат обычный текст, их можно создавать в любом текстовом редакторе или предпочитаемом редакторе XML. Файлы настроек можно повторно использовать с минимумом изменений, поскольку во всех приложениях используется одна модель программирования. Например, можно повторно использовать файлы настройки, создаваемые в Word, Excel, Access или PowerPoint.

Использование файлов с элементами разметки XML для настройки ленты значительно уменьшает необходимость создания сложных надстроек, основанных на объектной модели панели команд CommandBar. Однако надстройки, написанные в предыдущих версиях Office, могут работать в ленте без изменений или с незначительными модификациями. Вы можете создать настройки на уровне приложения для ленты в Word, Excel или PowerPoint, выполнив одно из следующих действий:

  • Используйте надстройки COM в управляемом или неуправляемом коде.
  • Используйте надстройки для конкретных приложений, такие как PPAM-файлы и XLAM.
  • Используйте шаблоны (DOTM-файлы) в Word.

Обычно код надстройки COM содержит процедуры, возвращающие разметку XML из внешнего файла настройки или из XML в самом коде. При запуске приложения надстройка загружает и выполняет код, который возвращает разметку XML. Office проверяет разметку XML на соответствие схеме XSD, а затем загружает ее в память и применяет к ленте перед отображением ленты. Пункты меню и элементы управления используют процедуры обратного вызова для выполнения кода надстройки.

Для изменений на уровне документов используется та же разметка XML и файл Open XML Formats с одним из следующих расширений: DOCX, DOCM, XLSX, XLSM, PPTX или PPTM. В таком случае файл настройки, содержащий разметку XML, создается и сохраняется в папке. Затем изменяются части в контейнере Open XML Formats, указывающие путь к файлу настройки. При открытии документа в приложении Office этот файл загружается в память и применяется к ленте. После этого команды и элементы управления вызывают код, содержащийся в документе, для реализации соответствующих функций.

Существующие решения

В версиях Office, предшествующих Office 2007, разработчики использовали объектную модель CommandBars для создания кода Visual Basic, изменяющего пользовательский интерфейс. В Office этот устаревший код продолжает работать в большинстве случаев без изменений. Однако изменения, внесенные в панели инструментов в Office 2003, теперь отображаются на вкладке Надстройки в Office.

Тип отображаемой настройки зависит от структуры надстройки. Например, Office создает группу Команды меню, которая содержит элементы, добавленные вами в прежнюю структуру меню (меню Файл, Вставка, Сервис и т. д.). Также создается группа Команды панелей инструментов, которая содержит элементы, добавленные в старые встроенные панели инструментов (например, Стандартная, Форматирование и Изображение). Кроме того, пользовательские панели инструментов из надстроек и документов отображаются в группе Пользовательские панели инструментов на вкладке Надстройки.

Процедуры обратного вызова добавляют функциональные возможности на ленту

С помощью расширяемости ленты вы указываете обратные вызовы для обновления свойств и выполнения действий из пользовательского интерфейса во время выполнения. Например, рассмотрим метод обратного вызова onAction для кнопки в следующей разметке RibbonX: <button id="myButton" onAction="MyButtonOnAction" />

Эта разметка сообщает Office, что при нажатии кнопки необходимо вызвать функцию MyButtonOnAction . Функция MyButtonOnAction имеет определенную сигнатуру, которая зависит от выбранного вами языка; Ниже приведен пример в Visual C#.

public void MyButtonOnAction (IRibbonControl control) 
   { 
      if (control.Id=="myButton") 
      { 
         System.Windows.Forms.MessageBox.Show("Button clicked!"); 
      } 
   } 

Настройка ленты с помощью надстроек COM

При настройке на уровне приложения измененная лента отображается в приложении независимо от того, какой документ открыт. В основном надстройки COM создаются для таких изменений. Чтобы изменить ленту с помощью надстроек COM, выполните указанные ниже действия.

  1. Создайте проект надстройки COM. Создаваемая надстройка должна реализовывать интерфейс Extensibility.IDTExtensibility2 , реализуемый всеми надстройками COM, а также интерфейс IRibbonExtensibility , который находится в пространстве имен Microsoft.Office.Core.
  2. Соберите проект надстройки и установки, а затем установите проект.
  3. Запустите приложение Office. При загрузке надстройки запускается событие IDTExtensibility2::OnConnection , которое инициализирует надстройку, как и в предыдущих версиях Office.
  4. Затем вызывается метод QueryInterface, определяющий, реализован ли интерфейс IRibbonExtensibility.
  5. Если это так, вызывается метод IRibbonExtensibility::GetCustomUI, который загружает разметку XML из файла настройки XML или разметки XML, встроенной в процедуру, а затем загружает изменения в приложение.
  6. После этого измененный пользовательский интерфейс готов к использованию.

Настройка ленты с помощью файлов Office Open XML

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

  1. Создайте файл настройки в любом текстовом редакторе. Составьте разметку XML, которая добавляет на ленту новые компоненты, меняет существующие или скрывает их. Сохраните файл под именем customUI.xml.

  2. Создайте на рабочем столе папку с именем customUI и скопируйте в нее файл настройки.

  3. Проверьте разметку XML с помощью пользовательской схемы интерфейса.

    Примечание.

    Это действие необязательно.

  4. Создайте документ в приложении Office, а затем сохраните его как файл Open XML Formats с одним из следующих расширений: DOCX, DOCM, XLSX, XLSM, PPTM или PPTX. Для безопасности файлы, содержащие макросы, имеют суффикс m и могут включать процедуры, вызываемые командами и элементами управления RibbonX.

  5. Добавьте к имени документа расширение ZIP и откройте файл.

  6. Добавьте в контейнер файл настройки, перетащив на файл папку.

  7. Извлеките файл RELS из ZIP-файла на рабочий стол. Папка _rels, содержащая файл RELS, будет скопирована на рабочий стол.

  8. Откройте RELS-файл и добавьте строку, создающую связь между файлом документа и файлом настройки, а затем сохраните файл.

  9. Добавьте папку _rels обратно в контейнер, перезаписав существующий файл.

  10. Восстановите изначальное имя файла, удалив расширение ZIP. При открытии файла Office появится лента с внесенными изменениями.

Общий формат XML-файлов разметки

Используйте разметку XML для настройки ленты. В следующем примере показан общий формат XML-файла разметки, который можно использовать для настройки ленты в Word.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
  <ribbon> 
    <tabs> 
      <tab idMso="TabHome"> 
        <group idMso="GroupFont" visible="false" /> 
      </tab> 
      <tab id="CustomTab" label="My Tab"> 
        <group id="SampleGroup" label="Sample Group"> 
          <toggleButton id="ToggleButton1" size="large" label="Large Toggle Button" getPressed="MyToggleMacro"  /> 
          <checkBox id="CheckBox1" label="A CheckBox" screentip="This is a check box" onAction="MyCheckboxMacro" /> 
          <editBox id="EditBox1" getText="MyTextMacro" label="My EditBox" onChange="MyEditBoxMacro"/> 
          <comboBox id="Combo1" label="My ComboBox" onChange="MyComboBoxMacro"> 
            <item id="Zip1" label="33455" /> 
            <item id="Zip2" label="81611" /> 
            <item id="Zip3" label="31561" /> 
          </comboBox> 
          <advanced> 
            <button id="Launcher1" screentip="My Launcher" onAction="MyLauncherMacro" /> 
          </advanced> 
        </group> 
        <group id="MyGroup" label="My Group" > 
          <button id="Button" label="My Large Button" size="large" onAction="MyButtonMacro" /> 
          <button id="Button2" label="My Normal Button" size="normal" onAction="MyOtherButtonMacro" /> 
        </group > 
      </tab> 
    </tabs> 
  </ribbon> 
</customUI> 

В этом примере в ленту Word внесены следующие изменения в следующем порядке:

  1. Объявляются стандартное и пользовательское пространства имен.

  2. Скрывается встроенная группа GroupFont, расположенная на встроенной вкладке Главная.

  3. Добавляется новая пользовательская вкладка CustomTab справа от последней встроенной вкладки.

    Примечание.

    Атрибут id= identifier используется для создания пользовательских элементов, например вкладок. Атрибут idMso= identifier используется для ссылки на встроенный элемент, например вкладку TabHome.

  4. На вкладку My Tab (моя вкладка) добавляется группа SampleGroup (образец группы).

  5. Добавляет большую кнопку ToggleButton1 в группу "Моя группа " и задает обратный вызов onAction вместе с обратным вызовом GetPressed.

  6. Добавляет флажок CheckBox1 в раздел "Моя группа" с настраиваемой подсказкой и указывает обратный вызов onAction.

  7. Добавляет поле редактирования EditBox1 в раздел "Моя группа" и задает обратный вызов onChange.

  8. Добавляет поле со списком Combo1 в группу "Моя группа" с тремя элементами. Для него указывается метод обратного вызова onChange, который использует текст каждого элемента.

  9. Добавляет средство запуска Launcher1 в группу "Моя группа" с набором обратного вызова onAction. Кнопка запуска также позволяет выводить диалоговое окно, предлагающее пользователю дополнительные функции.

  10. На пользовательскую вкладку добавляется группа MyGroup (моя группа).

  11. Добавляет в MyGroup кнопку большого размера Button1 и задает обратный вызов onAction.

  12. Добавляет кнопку Button1 обычного размера в MyGroup и задает обратный вызов onAction.

Работа с устаревшими надстройками панели команд

При создании надстроек COM, как правило, необходим способ взаимодействия пользователей с надстройкой. В более ранних версиях Office элементы меню и кнопки панелей инструментов добавлялись с помощью объектной модели панелей команд CommandBars. В этой версии Office пользовательские приложения в большинстве случаев работают на ленте без изменений. Однако изменения, внесенные с помощью объектной модели CommandBars , или любой другой технологии, изменяющей меню или панели инструментов, например WordBasic или XML, отображаются на отдельной вкладке Надстройки . Это упрощает пользователям поиск элементов управления.

Динамическое обновление ленты

Процедуры обратного вызова, которые возвращают свойства элементов управления, как правило, вызываются один раз, если не указано повторение вызова. Повторить запрос к процедуре обратного вызова можно, реализовав метод onLoad в элементе CustomUI. Этот обратный вызов вызывается один раз при успешной загрузке файла разметки RibbonX, а затем передает код объекту IRibbonUI .

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

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ribbonLoaded">

В C# напишите обратный вызов в классе Connect .

IRibbonUI myRibbon; 
 
     public void ribbonLoaded(IRibbonUI ribbon) { 
         myRibbon = ribbon; 
     } 

Лента обеспечивает пользователям удобную работу с приложениями Office. Для ее создания и изменения используется простая текстовая описательная разметка XML. С помощью нескольких строк XML можно создать именно тот интерфейс, который необходим пользователю. Так как разметка XML находится в одном файле, его легко настраивать по мере изменения требований. Также можно увеличить эффективность работы пользователей, помещая команды в легкодоступных местах. Кроме того, лента добавляет приложениям однородности, что сокращает время, необходимое для изучения каждого из них.

См. также

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

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