Обзор ленты 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, выполните указанные ниже действия.
- Создайте проект надстройки COM. Создаваемая надстройка должна реализовывать интерфейс Extensibility.IDTExtensibility2 , реализуемый всеми надстройками COM, а также интерфейс IRibbonExtensibility , который находится в пространстве имен Microsoft.Office.Core.
- Соберите проект надстройки и установки, а затем установите проект.
- Запустите приложение Office. При загрузке надстройки запускается событие IDTExtensibility2::OnConnection , которое инициализирует надстройку, как и в предыдущих версиях Office.
- Затем вызывается метод QueryInterface, определяющий, реализован ли интерфейс IRibbonExtensibility.
- Если это так, вызывается метод IRibbonExtensibility::GetCustomUI, который загружает разметку XML из файла настройки XML или разметки XML, встроенной в процедуру, а затем загружает изменения в приложение.
- После этого измененный пользовательский интерфейс готов к использованию.
Настройка ленты с помощью файлов Office Open XML
Чтобы изменить пользовательский интерфейс с помощью разметки XML, выполните указанные ниже действия.
Создайте файл настройки в любом текстовом редакторе. Составьте разметку XML, которая добавляет на ленту новые компоненты, меняет существующие или скрывает их. Сохраните файл под именем customUI.xml.
Создайте на рабочем столе папку с именем customUI и скопируйте в нее файл настройки.
Проверьте разметку XML с помощью пользовательской схемы интерфейса.
Примечание.
Это действие необязательно.
Создайте документ в приложении Office, а затем сохраните его как файл Open XML Formats с одним из следующих расширений: DOCX, DOCM, XLSX, XLSM, PPTM или PPTX. Для безопасности файлы, содержащие макросы, имеют суффикс m и могут включать процедуры, вызываемые командами и элементами управления RibbonX.
Добавьте к имени документа расширение ZIP и откройте файл.
Добавьте в контейнер файл настройки, перетащив на файл папку.
Извлеките файл RELS из ZIP-файла на рабочий стол. Папка _rels, содержащая файл RELS, будет скопирована на рабочий стол.
Откройте RELS-файл и добавьте строку, создающую связь между файлом документа и файлом настройки, а затем сохраните файл.
Добавьте папку _rels обратно в контейнер, перезаписав существующий файл.
Восстановите изначальное имя файла, удалив расширение 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 внесены следующие изменения в следующем порядке:
Объявляются стандартное и пользовательское пространства имен.
Скрывается встроенная группа GroupFont, расположенная на встроенной вкладке Главная.
Добавляется новая пользовательская вкладка CustomTab справа от последней встроенной вкладки.
Примечание.
Атрибут id= identifier используется для создания пользовательских элементов, например вкладок. Атрибут idMso= identifier используется для ссылки на встроенный элемент, например вкладку TabHome.
На вкладку My Tab (моя вкладка) добавляется группа SampleGroup (образец группы).
Добавляет большую кнопку ToggleButton1 в группу "Моя группа " и задает обратный вызов onAction вместе с обратным вызовом GetPressed.
Добавляет флажок CheckBox1 в раздел "Моя группа" с настраиваемой подсказкой и указывает обратный вызов onAction.
Добавляет поле редактирования EditBox1 в раздел "Моя группа" и задает обратный вызов onChange.
Добавляет поле со списком Combo1 в группу "Моя группа" с тремя элементами. Для него указывается метод обратного вызова onChange, который использует текст каждого элемента.
Добавляет средство запуска Launcher1 в группу "Моя группа" с набором обратного вызова onAction. Кнопка запуска также позволяет выводить диалоговое окно, предлагающее пользователю дополнительные функции.
На пользовательскую вкладку добавляется группа MyGroup (моя группа).
Добавляет в MyGroup кнопку большого размера Button1 и задает обратный вызов onAction.
Добавляет кнопку 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 находится в одном файле, его легко настраивать по мере изменения требований. Также можно увеличить эффективность работы пользователей, помещая команды в легкодоступных местах. Кроме того, лента добавляет приложениям однородности, что сокращает время, необходимое для изучения каждого из них.
См. также
- Настройка ленты Microsoft Office Fluent с помощью управляемой надстройки COM
- Настройка ленты Microsoft Office Fluent с помощью файла форматов Open XML
- Настройка ленты Office Fluent с помощью надстройки COM Visual Basic
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.