Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При расширении 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 имеют несколько созданных классов: один для самой книги и один для каждого листа. По умолчанию эти классы имеют следующие имена:
ThisWorkbookSheet1Sheet2Sheet3
Созданный класс включает обработчики событий, которые вызываются при открытии или закрытии документа. Чтобы запустить код при открытии документа, добавьте код в
Startupобработчик событий. Чтобы запустить код непосредственно перед закрытием документа, добавьте код вShutdownобработчик событий. Дополнительные сведения см. в разделе "События" в проектах Office.
Общие сведения о проектировании созданных классов
В проектах, предназначенных для .NET Framework 4 или .NET Framework 4.5, элементы узла в среде выполнения Visual Studio Tools for Office представлены интерфейсами, поэтому генерируемые классы не могут наследовать их реализацию от них. Вместо этого созданные классы являются производными от большинства членов из следующих базовых классов:
ThisDocument: производный от DocumentBase.ThisWorkbook: производный от WorkbookBase.Sheetn: производный от WorksheetBase.Эти базовые классы перенаправляют все вызовы своих членов на внутренние реализации соответствующих интерфейсов элементов хоста в среде выполнения Visual Studio Tools для Office. Например, при вызове Protect метода
ThisDocumentкласса DocumentBase класс перенаправляет этот вызов во внутреннюю реализацию Document интерфейса в visual Studio Tools для среды выполнения Office.
Доступ к объектной модели ведущего приложения
Чтобы получить доступ к объектной модели ведущего приложения, используйте элементы созданного класса в проекте. Каждый из этих классов соответствует объекту в объектной модели Excel или Word, и они содержат большинство из этих свойств, методов и событий. Например, класс ThisDocument в проекте уровня документа для Word предоставляет большинство таких же членов, как объект Document в объектной модели Word.
В следующем примере кода показано, как использовать объектную модель Word для сохранения документа, который является частью настройки уровня документа для Word. Этот пример предназначен для запуска из ThisDocument класса.
Чтобы сделать то же самое вне ThisDocument класса, используйте Globals объект для доступа к классу ThisDocument . Например, этот код можно добавить в файл кода области действий, если вы хотите включить кнопку "Сохранить " в пользовательский интерфейс области действий.
Поскольку класс ThisDocument получает большую часть своих членов из Document основного элемента, метод Save, который вызывается в этом коде, действительно является методом SaveDocument основного элемента. Этот метод соответствует 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
Пользовательский интерфейс Word и Excel можно настроить следующим образом с помощью настройки на уровне документа:
Добавьте элементы управления хостом или элементы управления Windows Forms на поверхность документа.
Дополнительные сведения см. в статье "Автоматизация Word с помощью расширенных объектов", "Автоматизация Excel" с помощью расширенных объектов и элементов управления Windows Forms в документах Office.
Добавьте область действий в документ.
Дополнительные сведения см. в обзоре области действий.
Добавьте настраиваемые вкладки на ленту.
Дополнительные сведения см. в обзоре ленты.
Добавьте настраиваемые группы на встроенную вкладку на ленте.
Дополнительные сведения см. в разделе "Практическое руководство. Настройка встроенной вкладки".
Дополнительные сведения о настройке пользовательского интерфейса приложений Microsoft Office см. в разделе "Настройка пользовательского интерфейса Office".
Получение расширенных объектов из собственных объектов Office в настройках уровня документа
Многие обработчики событий Office получают собственный объект Office, представляющий книгу, лист или документ, вызвавшее событие. В некоторых случаях может потребоваться выполнить некоторый код, только если книга или документ в настройке уровня документа вызвали событие. Например, в настройке на уровне документа для Excel может потребоваться запустить код, когда пользователь активирует один из листов в настраиваемой книге, но не когда пользователь активирует лист в другой книге, которая будет открыта одновременно.
Если у вас есть собственный объект Office, вы можете проверить, был ли этот объект расширен в элементе узла или элементе управления узлом в настройке уровня документа. Элементы узла и элементы управления узлами — это типы, предоставляемые средствами Visual Studio для среды выполнения Office, которые добавляют функциональные возможности в объекты, которые существуют изначально в объектных моделях Word или Excel (называемых собственными объектами Office). Вместе элементы узла и элементы управления узлами также называются расширенными объектами. Дополнительные сведения о элементах узла и элементах управления узла см. в обзоре элементов узла и элементов управления узлами.
Общие сведения о методах GetVstoObject и HasVstoObject
Чтобы протестировать собственный объект Office, используйте HasVstoObjectGetVstoObject методы в проекте:
Используйте метод
HasVstoObject, если вы хотите определить, имеет ли собственный объект Office расширенный объект в вашей настройке. Этот метод возвращает значение true , если собственный объект Office имеет расширенный объект и значение false в противном случае.Используйте метод,
GetVstoObjectесли вы хотите получить расширенный объект для собственного объекта Office. Этот метод возвращает объект ListObject, Workbook, Worksheet или Document, если указанный родной объект Office имеет такой.GetVstoObjectВ противном случае возвращает значение NULL. Например,GetVstoObjectметод возвращает Document , если указанный Document объект является базовым объектом для документа в проекте документа Word.В проектах на уровне документа нельзя использовать метод
GetVstoObjectдля создания нового Workbook, Worksheet или Document элемента во время выполнения. Этот метод можно использовать только для доступа к существующим элементам узла, созданным в проекте во время разработки. Если вы хотите создавать новые хост-элементы во время выполнения программы, необходимо разработать проект надстройки VSTO. Дополнительные сведения см. в разделах "Программные ограничения узловых элементов и узловых контролей" и "Расширение документов Word и книг Excel в надстройках VSTO во время выполнения".
Использование методов GetVstoObject и HasVstoObject
Чтобы вызвать метод HasVstoObject и GetVstoObject, используйте метод Globals.Factory.GetVstoObject или Globals.Factory.HasVstoObject и передайте собственный объект Word или Excel (например, Document или Worksheet), который требуется проверить.