Программные надстройки VSTO

Если приложение Microsoft Office расширяется путем создания надстройки VSTO, код создается непосредственно для класса ThisAddIn соответствующего проекта. Этот класс можно использовать для выполнения таких задач, как получение доступа к объектной модели ведущего приложения Microsoft Office, настройка пользовательского интерфейса приложения, а также предоставление объектов созданной надстройки VSTO другим решениям Office.

Область применения. Сведения в этом разделе относятся к проектам надстроек VSTO. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

Создание кода для надстроек VSTO несколько отличается от работы над другими типами проектов в Visual Studio. Многие отличия связаны с тем, каким образом объектные модели Office предоставляются управляемому коду. Дополнительные сведения см. в статье "Написание кода в решениях Office".

Общие сведения о надстройках VSTO и других типах решений, которые можно создать с помощью средств разработки Office в Visual Studio, см. в обзоре разработки решений Office (VSTO).

Использование класса ThisAddIn

Создание кода надстройки VSTO начинается в классе ThisAddIn . Visual Studio автоматически создает этот класс в файле кода ThisAddIn.vb (в Visual Basic) или ThisAddIn.cs (в C#) в проекте надстройки VSTO. Среда выполнения набор средств Visual Studio для Office автоматически создает экземпляр этого класса, когда microsoft Приложение Office lication загружает надстройку VSTO.

В классе ThisAddIn существует два обработчика событий по умолчанию. Для выполнения кода при загрузке надстройки VSTO следует добавить код в обработчик событий ThisAddIn_Startup . Для выполнения кода непосредственно перед выгрузкой надстройки VSTO следует добавить код в обработчик событий ThisAddIn_Shutdown . Дополнительные сведения об этих обработчиках событий см. в разделе "События" в проектах Office.

Примечание.

В Outlook обработчик событий ThisAddIn_Shutdown не вызывается при каждой выгрузке надстройки VSTO по умолчанию. Дополнительные сведения см. в разделе "События" в проектах Office.

Доступ к объектной модели ведущего приложения

Доступ к объектной модели ведущего приложения можно получить с помощью поля Application класса ThisAddIn . Это поле возвращает объект, представляющий текущий экземпляр ведущего приложения. В приведенной ниже таблице представлены типы возвращаемых значений для поля Application в каждом проекте надстройки VSTO.

Ведущее приложение Тип возвращаемого значения
Microsoft Office Excel Application
Microsoft Office InfoPath Application
Microsoft Office Outlook Application
Microsoft Office PowerPoint Приложение
Microsoft Office Project Microsoft.Office.Interop.MSProject.Application
Microsoft Office Visio Microsoft.Office.Interop.Visio.Application
Microsoft Office Word Application

В следующем примере кода показано, как использовать Application поле для создания книги в надстройке VSTO для Microsoft Office Excel. Код в примере должен выполняться из класса ThisAddIn .

Excel.Workbook newWorkbook = this.Application.Workbooks.Add(System.Type.Missing);

Чтобы выполнить это же действие без использования класса ThisAddIn , используйте для получения доступа к классу Globals объект ThisAddIn . Дополнительные сведения об объекте см. в статье "Глобальный Globals доступ к объектам в проектах Office".

Excel.Workbook newWorkbook = Globals.ThisAddIn.Application.Workbooks.Add(System.Type.Missing);

Дополнительные сведения об объектных моделях конкретных приложений Microsoft Office см. в следующих статьях:

Доступ к документу при запуске Приложение Office ликации

Не все приложения Office 2010 автоматически открывают документ при запуске, и ни одно из приложений Office 2013 не открывает документ при запуске. Поэтому не добавляйте код в ThisAdd-In_Startup обработчик событий, если коду требуется открыть документ. Вместо этого добавьте код в событие, которое приложение Office генерирует, когда пользователь создает или открывает документ. В этом случае документ точно будет открыт, прежде чем созданный вами код проведет с ним какие-то операции.

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

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.DocumentOpen +=
new Word.ApplicationEvents4_DocumentOpenEventHandler(WorkWithDocument);

        ((Word.ApplicationEvents4_Event)this.Application).NewDocument +=
            new Word.ApplicationEvents4_NewDocumentEventHandler(WorkWithDocument);  
    }
    
    private void WorkWithDocument(Microsoft.Office.Interop.Word.Document Doc)
    {
        try
        {
            Word.Range rng = Doc.Range(0, 0);
            rng.Text = "New Text";
            rng.Select();
        }
        catch (Exception ex)
        {
            // Handle exception if for some reason the document is not available.
        }
    }

Элементы ThisAddIn, используемые для других задач

В приведенной ниже таблице описаны наиболее распространенные задачи и члены класса ThisAddIn , которые можно использовать для выполнения этих задач.

Задача Используемый член
Выполнение кода для инициализации надстройки VSTO при ее загрузке. Добавьте код в метод ThisAddIn_Startup . Этот метод является обработчиком событий по умолчанию для события Startup . Дополнительные сведения см. в разделе "События" в проектах Office.
Выполнение кода для очистки используемых надстройкой VSTO ресурсов перед выгрузкой надстройки VSTO. Добавьте код в метод ThisAddIn_Shutdown . Этот метод является обработчиком событий по умолчанию для события Shutdown . Дополнительные сведения см. в разделе "События" в проектах Office. Примечание. В Outlook по умолчанию ThisAddIn_Shutdown обработчик событий не всегда вызывается при выгрузке надстройки VSTO. Дополнительные сведения см. в разделе "События" в проектах Office.
Отображение настраиваемой области задач. Используйте поле CustomTaskPanes . Дополнительные сведения см. в разделе "Пользовательские области задач".
Предоставление доступа к объектам в надстройке VSTO другим решениям Microsoft Office. Переопределите метод RequestComAddInAutomationService. Дополнительные сведения см. в разделе "Код вызова" в надстройках VSTO из других решений Office.
Настройка функции в системе Microsoft Office путем реализации интерфейса расширяемости. Переопределите метод RequestService для возврата экземпляра класса, который реализует интерфейс. Дополнительные сведения см. в разделе "Настройка возможностей пользовательского интерфейса с помощью интерфейсов расширяемости". Примечание. Чтобы настроить пользовательский интерфейс ленты, можно также переопределить CreateRibbonExtensibilityObject метод.

Общие сведения о проектировании класса ThisAddIn

В проектах, предназначенных для платформа .NET Framework 4, AddIn является интерфейсом. Класс ThisAddIn является производным от класса AddInBase . Этот базовый класс перенаправляет все вызовы его членов во внутреннюю реализацию AddIn интерфейса в среде выполнения набор средств Visual Studio для Office.

В проектах надстроек VSTO для Outlook ThisAddIn класс является производным от Microsoft.Office.Tools.Outlook.OutlookAddIn класса в проектах, предназначенных для платформа .NET Framework 3.5, и от OutlookAddInBase проектов, предназначенных для платформа .NET Framework 4. Эти базовые классы предоставляют дополнительные функции для поддержки областей форм. Дополнительные сведения о регионах форм см. в разделе "Создание областей форм Outlook".

Настройка пользовательского интерфейса microsoft Приложение Office lications

Используя надстройку VSTO, можно настроить пользовательский интерфейс для приложений Microsoft Office программными средствами. Например, можно настроить ленту таким образом, чтобы в ней отображалась настраиваемая панель задач, или создать настраиваемую область формы в Outlook. Дополнительные сведения см. в разделе "Настройка пользовательского интерфейса Office".

Visual Studio предоставляет конструкторы и классы, которые можно использовать для создания настраиваемых областей задач, настроек ленты и областей формы Outlook. Такие конструкторы и классы упрощают процесс настройки этих функций. Дополнительные сведения см. в разделе "Пользовательские области задач", "Конструктор лент" и "Создание областей форм Outlook".

Если какую-то из этих функций необходимо настроить способом, который не поддерживается классами и конструкторами, можно реализовать эти функции в надстройке VSTO интерфейса расширяемости . Дополнительные сведения см. в разделе "Настройка возможностей пользовательского интерфейса с помощью интерфейсов расширяемости".

Кроме того, можно изменить пользовательский интерфейс документов Word и книг Excel, создавая ведущие элементы, которые расширяют поведение документов и книг. Это позволяет добавлять управляемые элементы управления в документы и листы. Дополнительные сведения см. в разделе "Расширение документов Word" и книг Excel в надстройках VSTO во время выполнения.

Код вызова надстроек VSTO из других решений

Доступ к объектам в надстройке VSTO можно предоставлять другим решениям, включая решения Office. Это полезно, если надстройка VSTO предоставляет службу, доступ к которой нужно предоставить другим решениям. Например, если у вас есть надстройка VSTO для Microsoft Office Excel, которая выполняет вычисления по финансовым данным из веб-службы, другие решения могут выполнять эти вычисления, вызывая надстройку VSTO Excel во время выполнения.

Дополнительные сведения см. в разделе "Код вызова" в надстройках VSTO из других решений Office.