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


Написание кода в решениях Office

Написание кода в проектах Office в некоторых аспектах отличается от написания кода в других проектах Visual Studio.Многие из этих отличий связаны с тем, каким образом объектные модели Microsoft Office представлены управляемому коду.Другие отличия связаны с разработкой проектов Office.

Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Office 2013 и Office 2010. См. раздел Доступность функций по типам приложений Office и проектов.

Управляемый код и программирование для Office

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

Bb608596.collapse_all(ru-ru,VS.110).gifСведения об основных сборках взаимодействия

Приложения Microsoft Office предоставляют для автоматизации множество своих функциональных возможностей.Однако управляемый код (например Visual Basic или C#) нельзя использовать непосредственно для автоматизации приложений Microsoft Office.Чтобы автоматизировать приложения Office с помощью управляемого кода, следует применять основные сборки взаимодействия Office (PIA).Основные сборки взаимодействия позволяют управляемому коду взаимодействовать объектной COM-моделью приложений Office.

Каждое приложение Microsoft Office имеет основную сборку взаимодействия.При создании проекта Office в Visual Studio ссылка на соответствующую сборку автоматически добавляется в проект.Чтобы автоматизировать функции других приложений Office в проекте, необходимо вручную добавить соответствующую основную сборку взаимодействия.Дополнительные сведения см. в разделе Практическое руководство. Обращение к приложениям Office с помощью основных сборок взаимодействия.

Bb608596.collapse_all(ru-ru,VS.110).gifИспользование основных сборок взаимодействия при разработке и во время выполнения

Основные сборки взаимодействия Office, установленные и зарегистрированные в глобальном кэше сборок на компьютере разработчика, позволяют выполнять большинство задачи разработки.Дополнительные сведения см. в разделе Настройка компьютера для разработки решений Office.

Необходимо, чтобы на компьютерах пользователей выполняются основных сборках взаимодействия office решения Office, что целевой объект .NET Framework 4 или .NET Framework 4.5.Дополнительные сведения см. в разделе Проектирование и создание решений Office.

Bb608596.collapse_all(ru-ru,VS.110).gifИспользование типов в основных сборках взаимодействия

Основные сборки взаимодействия Office содержат сочетание типов, предоставляющих объектную модель приложений Office и дополнительные инфраструктурные типы, которые не предназначены для непосредственного использования в коде.Общие сведения о типах основных сборок взаимодействия Office см. в разделе Overview of Classes and Interfaces in the Office Primary Interop Assemblies.

Так как типы сборок взаимодействия Office соответствуют типам объектных моделей COM, способ их использования часто отличается от других управляемых типов.Например, способ вызова методов с необязательными параметрами в основной сборке взаимодействия Microsoft Office зависит от используемого в проекте языка программирования.Дополнительные сведения см. в следующих разделах:

Модель программирования для проектов Office

Все проекты Office содержат один или несколько созданных классов, которые предоставляют точку входа для кода.Эти классы также обеспечивают доступ к объектной модели основного приложения, а также к различным функциям (например, к панелям действий или настраиваемым областям задач).

Bb608596.collapse_all(ru-ru,VS.110).gifОбщие сведения о созданных классах

В проектах уровня документов для Excel и Word созданный класс схож с объектом верхнего уровня в объектной модели приложения.Например, созданный класс ThisDocument в проекте документа Word представляет те же элементы, что и класс Microsoft.Office.Interop.Word.Document в объектной модели Word.Дополнительные сведения о созданных классах в проектах уровня документов см. в разделе Настройки программирования уровня документа.

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

Все созданные классы в проектах Office содержат обработчики событий Startup и Shutdown.Чтобы начать создание кода, следует в общем случае добавить код в эти обработчики событий.Для инициализации надстройки можно добавить код в обработчик событий Startup.Для очистки ресурсов, используемых надстройкой, можно добавить код в обработчик событий Shutdown.Дополнительные сведения см. в разделе События в проектах Office.

Bb608596.collapse_all(ru-ru,VS.110).gifДоступ к созданный классам во время выполнения

При загрузке решения Office Visual Studio Tools for Office (cреда выполнения) создает экземпляры всех созданных классов проекта.К этим объектам можно обращаться из любого места кода с помощью класса Globals.Например, класс Globals можно использовать для вызова кода в классе ThisAddIn из обработчика событий кнопки ленты в надстройке уровня приложения.

Дополнительные сведения см. в разделе Глобальный доступ к объектам в проектах Office.

Bb608596.collapse_all(ru-ru,VS.110).gifВопросы пространства имен в решениях Office

После создания проекта Office невозможно изменить пространство имен по умолчанию (или корневое пространство имен в Visual Basic).Пространство имен по умолчанию всегда будет соответствовать имени проекта, заданному при создании проекта.Если проект переименован, пространство имен по умолчанию не меняется.Дополнительные сведения о пространстве имен по умолчанию в проектах см. в разделах Страница "Приложение" в конструкторе проектов (C#) и Страница "Приложение" в конструкторе проектов (Visual Basic).

Bb608596.collapse_all(ru-ru,VS.110).gifИзменение пространства имен классов ведущих элементов в проектах C#

Классы ведущих элементов (например, классы ThisAddIn, ThisWorkbook или ThisDocument) в проектах Office Visual C# имеют собственное пространство имен.По умолчанию пространство имен ведущих элементов проекта соответствует имени проекта, заданному при создании проекта.

Чтобы изменить пространство имен ведущих элементов в проекте Office Visual C#, воспользуйтесь свойством Пространство имен для элемента узла.Дополнительные сведения см. в разделе Свойства в проектах Office.

Поддерживаемые языки программирования в проектах Office

Шаблоны проектов Office в Visual Studio поддерживают только языки программирования Visual Basic и Visual C#.Поэтому эти шаблоны проектов доступны только в узлах Visual Basic и Visual C# диалогового окна Создать проект в Visual Studio.Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Office в Visual Studio.

Выбор языка и программирования Office

Microsoft Office и Visual Basic для приложений (VBA) были разработаны для совместной работы с целью оптимизации рабочего процесса настройки приложения.Visual Basic унаследовал некоторые из этих разработок.Например, Visual Basic поддерживает необязательные параметры, что позволяет писать меньше кода при вызове некоторых методов в основных сборках взаимодействия Microsoft Office, чем при использовании Visual C#.

Программирование с использованием Visual Basic ПРОТИВ. Visual C# в решениях Office

Решения Office можно создавать как на языке Visual Basic, так и на Visual C#.Объектная модель Microsoft Office разработана для применения с языком Microsoft Visual Basic для приложений (VBA). Благодаря этому разработчики, использующие язык Visual Basic, могут свободно работать с объектами, предоставляемыми в приложениях Microsoft Office.В Visual Studio 2012 разработчики Visual C# могут использовать те же самые функции, что и разработчики Visual Basic, но в некоторых случаях для использования объектных моделей Office необходимо создание дополнительного кода.Существуют различия между основными возможностями программирования для Office и управляемым кодом, написанным на Visual Basic и C#.

Ключевые различия между Visual Basic и Visual C# - #

В следующей таблице показаны основные различия в использовании языков Visual Basic и Visual C# при разработке решений Office.

Функция

Описание

Поддержка Visual Basic

Поддержка Visual C#

Необязательные параметры

Во многих методах Microsoft Office предусмотрены необязательные параметры.Если параметру не передается значение, используется установленное для него значение по умолчанию.

В Visual Basic поддерживаются необязательные параметры.

Visual C# в большинстве случаев поддерживает дополнительные параметры.Дополнительные сведения см. в разделе Необязательные параметры в решениях Office.

Передача параметров по ссылке

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

Дополнительные сведения о параметрах типов значений и ссылочных типов см. в разделах Передача аргументов по значению и по ссылке (Visual Basic) (для Visual Basic) и Передача параметров (Руководство по программированию в C#).

Дополнительных действий для передачи параметров по ссылке не требуется.При необходимости компилятор Visual Basic автоматически передает параметры по ссылке.

В большинстве случаев компилятор Visual C# автоматически передает параметры по ссылке при необходимости.Дополнительные сведения см. в разделе Необязательные параметры в решениях Office.

Параметризованные свойства

Некоторые свойства принимают параметры и используются в качестве функций, доступных только для чтения.

В Visual Basic поддерживаются свойства, принимающие параметры.

В Visual C# поддерживаются свойства, принимающие параметры.

Позднее связывание

Позднее связывание подразумевает определение свойств объектов во время выполнения вместо приведения переменных к типу объекта во время разработки.

Visual Basic выполняет позднее связывание, если Option Strict.Если параметр Option Strict включен, необходимо явным образом преобразовать объекты и использовать типы в пространстве имен System.Reflection для доступа к элементам с поздним связыванием.Дополнительные сведения см. в разделе Позднее связывание в решениях Office.

Visual C# выполняет позднее связывание в проектах, предназначенных для .NET Framework 4.Дополнительные сведения см. в разделе Позднее связывание в решениях Office.

Основные различия между разработкой решений Office и управляемым кодом

В следующей таблице показаны основные различия между разработкой решений Office и управляемым кодом, написанным на Visual Basic или Visual C#.

Функция

Описание

Поддержка Visual Basic и Visual C#

Индексы массива

Нижняя граница массива коллекций в приложениях Microsoft Office начинается с 1.В Visual Basic и Visual C# используются массивы, начинающиеся с 0.Дополнительные сведения см. в разделах Массивы (Руководство по программированию на C#) и Массивы в Visual Basic.

Для обращения к элементу коллекции в объектной модели приложения Microsoft Office следует использовать индекс 1, а не 0.

См. также

Задачи

Практическое руководство. Обращение к приложениям Office с помощью основных сборок взаимодействия

Практическое руководство. Создание обработчиков событий в проектах Office

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

Необязательные параметры в решениях Office

Глобальный доступ к объектам в проектах Office

События в проектах Office

Позднее связывание в решениях Office

Совместная разработка решений Office