Поделиться через


Пошаговое руководство. Создание настраиваемой вкладки с помощью XML-лент

Обновлен: Ноябрь 2007

Применимость

Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office.

Тип проекта

  • Проекты уровня документа

  • Проекты уровня приложения

Версия Microsoft Office

  • Excel 2007

  • Word 2007

  • Outlook 2007

  • PowerPoint 2007

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

В данном пошаговом руководстве демонстрируется, как создать настраиваемую вкладку ленты при помощи элемента Лента (XML).

В этом пошаговом руководстве представлены следующие задачи:

  • Добавление кнопок к вкладке Надстройки. Вкладка Надстройки является вкладкой, определенной по умолчанию в XML-файле ленты.

  • Автоматизация Microsoft Office Word 2007 с помощью кнопок на вкладке Надстройки.

Aa942955.alert_note(ru-ru,VS.90).gifПримечание.

На компьютере могут отображаться разные имена или расположения некоторых элементов пользовательского интерфейса Visual Studio, отличающиеся от указанных в дальнейших инструкциях. Эти элементы определяются используемой версией Visual Studio и ее параметрами. Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты:

  • Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System).

  • Microsoft Office Word 2007.

Visual Studio Tools for Office устанавливается по умолчанию с перечисленными версиями Visual Studio. Чтобы проверить, установлен ли данный пакет инструментов, см. раздел Установка средств Visual Studio для Office.

Создание проекта

Для начала следует создать проект надстройки Word 2007. После этого следует настроить вкладку Надстройки данного документа.

Создание нового проекта

  • Создайте проект Надстройка Word с именем MyRibbonAddIn.

    Убедитесь, что используется шаблон проекта Надстройка Word для выпуска 2007 системы Microsoft Office. Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Visual Studio Tools for Office.

    Visual Studio открывает файл кода ThisAddIn.cs или ThisAddIn.vb и добавляет проект MyRibbonAddIn к Обозревателю решений.

Создание вкладки надстройки

Для создания вкладки Надстройки, добавьте элемент Лента (XML) к проекту. После этого, в этом пошаговом руководстве, к этой вкладке будут добавлены кнопки.

Создание вкладки надстройки

  1. В меню Проект выберите команду Добавить новый элемент.

  2. В диалоговом окне Добавить новый элемент выберите элемент Лента (XML).

  3. Измените имя новой ленты на MyRibbon и нажмите кнопку Добавить.

    В конструкторе открывается файл MyRibbon.cs или MyRibbon.vb. XML-файл с именем MyRibbon.xml также добавляется к проекту.

  4. В Обозревателе решений щелкните правой кнопкой мыши файл ThisAddin.cs или ThisAddin.vb, затем выберите команду Перейти к коду.

  5. Добавьте следующий код к классу ThisAddin. Этот код переопределяет метод CreateRibbonExtensibilityObject и возвращает класс XML-ленты приложению Office.

    Protected Overrides Function CreateRibbonExtensibilityObject() As  _
    Microsoft.Office.Core.IRibbonExtensibility
        Return New MyRibbon()
    End Function
    
    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        return new MyRibbon();
    }
    
  6. В Обозревателе решений щелкните правой кнопкой мыши проект MyRibbonAddIn, затем щелкните пункт Построение. Убедитесь, что проект строится без ошибок.

Добавление кнопок к вкладке надстроек

Цель этой надстройки — предоставить пользователям способ добавлять текст шаблона и специальную таблицу к активному документу. Для обеспечения интерфейса пользователя, добавьте две кнопки к вкладке Надстройки, изменив файл XML-ленты. Далее, в этом пошаговом руководстве будут определены методы обратного вызова для кнопок. Дополнительные сведения о XML-файлах ленты см. в разделе XML-ленты.

Добавление кнопок к вкладке "Надстройки"

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

  2. Замените содержимое элемента tab следующим XML-кодом. Этот XML-код заменяет метки группы элементов управления по умолчанию на Content, а также добавляет две новых кнопки с метками Insert Text и Insert Table.

    <tab idMso="TabAddIns">
        <group id="ContentGroup" label="Content">
            <button id="textButton" label="Insert Text"
                 screentip="Text" onAction="OnTextButton"
                 supertip="Inserts text at the cursor location."/>
            <button id="tableButton" label="Insert Table"
                 screentip="Table" onAction="OnTableButton"
                 supertip="Inserts a table at the cursor location."/>
        </group>
    </tab>
    

Автоматизация документа с использованием кнопок

Следует добавить методы обратного вызова onAction для кнопок Вставить текст и Вставить таблицу, чтобы выполнить действия при нажатии пользователем кнопок. Дальнейшие сведения о методах обратного вызова для элемента управления лента, см. XML-ленты.

Добавление методов обратного вызова для кнопок

  1. В Обозревателе решений щелкните правой кнопкой мыши MyRibbon.cs или MyRibbon.vb, а затем нажмите кнопку Открыть.

  2. Добавьте следующий код в начало файла MyRibbon.cs или MyRibbon.vb. В этом коде создается псевдоним Microsoft.Office.Interop.Word для пространства имен.

    Imports Word = Microsoft.Office.Interop.Word
    
    using Word = Microsoft.Office.Interop.Word;
    
  3. Добавьте следующий метод в класс MyRibbon. Это — метод обратного вызова для кнопки Вставить текст, добавляющий строку к активному элементу по текущему положению курсора.

    Public Sub OnTextButton(ByVal control As Office.IRibbonControl)
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        currentRange.Text = "This text was added by the Ribbon."
    End Sub
    
    public void OnTextButton(Office.IRibbonControl control)
    {
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the Ribbon.";
    }
    
  4. Добавьте следующий метод в класс MyRibbon. Это — метод обратного вызова для кнопки Вставить таблицу, добавляющий таблицу к активному элементу по текущему положению курсора.

    Public Sub OnTableButton(ByVal control As Office.IRibbonControl)
        Dim missing As Object = System.Type.Missing
    
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        Dim newTable As Word.Table = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add( _
                   currentRange, 3, 4)
    
        ' Get all of the borders except for the diagonal borders.
        Dim borders() As Word.Border = New Word.Border(6) {}
        borders(0) = newTable.Borders(Word.WdBorderType.wdBorderLeft)
        borders(1) = newTable.Borders(Word.WdBorderType.wdBorderRight)
        borders(2) = newTable.Borders(Word.WdBorderType.wdBorderTop)
        borders(3) = newTable.Borders(Word.WdBorderType.wdBorderBottom)
        borders(4) = newTable.Borders(Word.WdBorderType.wdBorderHorizontal)
        borders(5) = newTable.Borders(Word.WdBorderType.wdBorderVertical)
    
        ' Format each of the borders.
        For Each border As Word.Border In borders
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle
            border.Color = Word.WdColor.wdColorBlue
        Next
    End Sub
    
    public void OnTableButton(Office.IRibbonControl control)
    {
        object missing = System.Type.Missing;
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        Word.Table newTable = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add(
        currentRange, 3, 4, ref missing, ref missing);
    
        // Get all of the borders except for the diagonal borders.
        Word.Border[] borders = new Word.Border[6];
        borders[0] = newTable.Borders[Word.WdBorderType.wdBorderLeft];
        borders[1] = newTable.Borders[Word.WdBorderType.wdBorderRight];
        borders[2] = newTable.Borders[Word.WdBorderType.wdBorderTop];
        borders[3] = newTable.Borders[Word.WdBorderType.wdBorderBottom];
        borders[4] = newTable.Borders[Word.WdBorderType.wdBorderHorizontal];
        borders[5] = newTable.Borders[Word.WdBorderType.wdBorderVertical];
    
        // Format each of the borders.
        foreach (Word.Border border in borders)
        {
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle;
            border.Color = Word.WdColor.wdColorBlue;
        }
    }
    

Проверка надстройки

При выполнении проекта открывается Word 2007, и вкладка с именем Надстройки появляется на месте. Insert Text и Insert Table на вкладке Надстройки.

Проверка надстройки

  1. Нажмите клавишу F5 для запуска проекта.

  2. Подтвердите, что вкладка Надстройки видима на ленте.

  3. Щелкните вкладку Надстройки.

  4. Подтвердите, что группа Содержимое видна на ленте.

  5. Щелкните кнопку Вставить текст в группе Содержимое.

    Строка добавляется к документу в текущее положение курсора.

  6. Щелкните кнопку Вставить таблицу в группе Содержимое.

    Таблица добавляется к документу в текущее положение курсора.

Следующие действия

Дополнительные сведения о настройке пользовательского интерфейса Office см. в следующих разделах:

См. также

Задачи

Пошаговое руководство. Создание настраиваемой вкладки с помощью конструктора лент

Основные понятия

Обзор ленты

XML-ленты