Настройки уровня документа программы

При расширении приложения Microsoft Office Word или Microsoft Office Excel с помощью настройки уровня документа вы можете выполнять следующие задачи.

  • Автоматизация приложения с помощью его объектной модели.

  • Добавление элементов управления в документ.

  • Вызов Visual Basic для кода приложений (VBA) в документе из сборки настройки.

  • Вызов кода в сборке настройки из VBA.

  • Управление определенными аспектами документа, если он находится на сервере, на котором не установлен Microsoft Office.

  • Настройка пользовательского интерфейса приложения.

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

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

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

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

При создании проекта уровня документа Visual Studio автоматически создает в этом проекте класс, который можно использовать для начала создания кода. Visual Studio создает для Word и Excel разные классы.

  • В проектах уровня документа для Word класс называется ThisDocument по умолчанию.

  • Проекты уровня документа для Excel имеет несколько создаваемых классов: один для самой книги и по одному для каждого листа. По умолчанию эти классы имеют следующие имена:

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

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

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

В проектах, предназначенных для платформа .NET Framework 4 или платформа .NET Framework 4.5, типы элементов узла в среде выполнения набор средств Visual Studio для Office являются интерфейсами, поэтому созданные классы не могут наследовать их реализацию. Вместо этого создаваемые классы наследуют большинство своих членов от следующих базовых классов.

  • ThisDocument: производный от DocumentBase.

  • ThisWorkbook: производный от WorkbookBase.

  • Sheetn: производный от WorksheetBase.

    Эти базовые классы перенаправляют все вызовы их членов во внутреннюю реализацию соответствующих интерфейсов элементов узла в среде выполнения набор средств Visual Studio для Office. Например, при вызове Protect метода ThisDocument класса DocumentBase класс перенаправляет этот вызов во внутреннюю реализацию Document интерфейса в среде выполнения набор средств Visual Studio для Office.

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

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

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

this.Save();

Чтобы выполнить это же действие без использования класса ThisDocument , используйте для получения доступа к классу Globals объект ThisDocument . Например, можно добавить этот код в файл кода области действий, если требуется включить кнопку Сохранить в пользовательский интерфейс панели действий.

Globals.ThisDocument.Save();

Поскольку класс ThisDocument получает большинство своих членов от ведущего элемента Document , метод Save , вызываемый в этом коде, фактически является методом Save ведущего элемента Document . Этот метод соответствует методу Save объекта Document в объектной модели Word.

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

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

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

Чтобы настроить пользовательский интерфейс документа, можно добавлять элементы управления Windows Forms или элементы управления ведущего приложения в область документа. Используя различные сочетания элементов управления и создавая код, можно привязать элементы управления к данным, собирать сведения от пользователя и реагировать на действия пользователя.

Элементы управления ведущего приложения — это классы, которые расширяют некоторые объекты в объектных моделях Word и Excel. Например, элемент управления ведущего приложения ListObject предоставляет все функциональные возможности ListObject в Excel. Однако элемент управления ведущего приложения ListObject также имеет дополнительные события и возможности привязки данных.

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

Объединение настроек VBA и уровня документов

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

Дополнительные сведения см. в разделе "Объединение настроек VBA и уровня документа".

Управление документами на сервере

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

Дополнительные сведения см. в разделе "Управление документами на сервере" с помощью класса ServerDocument.

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

С помощью настройки уровня документа вы можете настраивать пользовательский Интерфейс Word и Excel следующими способами.

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

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

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

Общие сведения о методах GetVstoObject и HasVstoObject

Чтобы протестировать собственный объект Office, используйте в своем проекте методы HasVstoObject и GetVstoObject.

  • Используйте метод HasVstoObject, чтобы определить, имеет ли собственный объект Office расширенный объект в вашей настройке. Этот метод возвращает значение true , если собственный объект Office имеет расширенный объект, и значение false в противном случае.

  • Используйте метод GetVstoObject, если нужно получить расширенный объект для собственного объекта Office. Этот метод возвращает объект ListObject, Workbook, Worksheetили Document , если его имеет указанный собственный объект Office. GetVstoObject В противном случае возвращает значение NULL. Например, метод GetVstoObject возвращает Document, если указанный Document является базовым объектом для документа в текущем проекте документа Word.

    В проектах на уровне документа метод нельзя использовать GetVstoObject для создания нового WorkbookWorksheetэлемента или Document узла во время выполнения. Этот метод можно использовать только для доступа к существующим ведущим элементам, созданным в текущем проекте во время разработки. Если вы хотите создать новые элементы узла во время выполнения, необходимо разработать проект надстройки VSTO. Дополнительные сведения см. в разделе "Программные ограничения" элементов узла и элементов управления узлами, а также расширение документов Word и книг Excel в надстройках VSTO во время выполнения.

Использование методов GetVstoObject и HasVstoObject

Чтобы вызвать HasVstoObject и GetVstoObject метод, используйте или Globals.Factory.HasVstoObject метод и передайте Globals.Factory.GetVstoObject собственный объект Word или Excel (например, или DocumentWorksheet), который требуется проверить.