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

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

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

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

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

Общие сведения о основных сборках взаимодействия

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

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

Использование основных сборок взаимодействия во время разработки и среды выполнения

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

ПиА Office не требуются на компьютерах конечных пользователей для запуска решений Office, предназначенных для платформа .NET Framework 4 или более поздней версии. Дополнительные сведения см. в статье "Проектирование и создание решений Office".

Использование типов в основных сборках взаимодействия

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

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

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

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

Общие сведения о созданных классах

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

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

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

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

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

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

Рекомендации по пространству имен в решениях Office

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

Изменение пространства имен классов элементов узла в проектах C#

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

Чтобы изменить пространство имен ведущих элементов в проекте 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 поддерживает необязательные параметры. Это означает, что по сравнению с языком Visual C#, вы можете написать меньше кода при вызове некоторых методов в основных сборках взаимодействия Microsoft Office.

Программа с Visual Basic и Visual C# в решениях Office

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

Основные различия между Visual Basic и Visual C#

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

Функция Description Поддержка Visual Basic Поддержка Visual C#
Необязательные параметры Многие методы Microsoft Office имеют параметры, которые не являются обязательными при вызове метода. Если для параметра никакое значение не передается, используется значение по умолчанию. Visual Basic поддерживает необязательные параметры. Visual C# поддерживает необязательные параметры в большинстве случаев. Дополнительные сведения см. в разделе "Необязательные параметры" в решениях Office.
Передача параметров по ссылке В большинстве основных сборок взаимодействия Microsoft Office необязательные параметры могут передаваться по значению. Однако в некоторых основных сборках взаимодействия необязательные параметры, которые принимают ссылочные типы, должны передаваться по ссылке.

Дополнительные сведения о параметрах значений и ссылочных типов см. в разделе "Сквозные аргументы по значению" и по ссылке (Visual Basic) (для Visual Basic) и параметров pass (руководство по программированию на 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#.

Функция Description Поддержка Visual Basic и Visual C#
Индексы массивов Нижняя граница массива коллекций в приложениях Microsoft Office начинается с 1. Visual Basic и Visual C# используют массивы, которые начинаются с нуля. Дополнительные сведения см. в разделе "Массивы" (руководство по программированию на C#) и массивы в Visual Basic. Для доступа к первому элементу коллекции в объектной модели приложения Microsoft Office используйте индекс 1 вместо 0.