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


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

Обновлен: Ноябрь 2007

Применение

Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office.

Тип проекта

  • Проекты уровня документа

Версия Microsoft Office

  • Выпуск 2007 системы Microsoft Office

  • Microsoft Office 2003

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

В документе, который является частью настройки Visual Studio Tools for Office на уровне документа для Microsoft Office Word или Microsoft Office Excel, можно использовать код VBA (Visual Basic for Applications). Во всех настройках на уровне документа код VBA можно вызывать в документе из сборки настройки. В проектах на уровне документа для выпуска 2007 системы Microsoft Office также можно настроить проект таким образом, чтобы разрешить использование в документе кода VBA для вызова кода из сборки ресурсов настройки. Дополнительные сведения см. в разделе Вызов кода настроек уровня документа из VBA.

Поведение кода VBA в настройке на уровне документа

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

При запуске решения обработчики событий и в VBA, и в сборке Visual Studio Tools for Office перехватывают события, возникающие в документе, и выполняют код. Заранее невозможно определить, какой код будет выполнен раньше; в каждом конкретном случае это выясняется путем тестирования. Если оба фрагмента кода нескоординированы и непротестированы, это может привести к непредсказуемым результатам.

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

В документах Word можно вызывать макросы, а в книгах Excel — макросы и функции. Для этого воспользуйтесь одним из указанных ниже методов.

В каждом методе первый параметр определяет имя вызываемого макроса или функции, а остальные параметры — параметры, передаваемые макросу или функции. Первый параметр для приложений Word и Excel имеет различный формат.

  • Для приложения Word первый параметр представляет собой строку, которая может быть любым сочетанием шаблона, модуля и имени макроса. Если указано имя документа, в коде можно будет запускать только макросы из документов в текущем контексте, а не любые макросы из любого документа.

  • Для приложения Excel первый параметр может быть строкой, в которой хранится имя макроса, объектом Range, указывающим местоположение функции, или кодом реестра для зарегистрированной функции DLL (XLL). При передаче строки она будет интерпретироваться в контексте активного листа.

В приведенном ниже примере кода показано, как вызвать макрос с именем MyMacro в проекте на уровне документа для Excel. В данном примере предполагается, что для листа Sheet1 задан макрос MyMacro.

Globals.Sheet1.Application.Run("MyMacro")
Globals.Sheet1.Application.Run("MyMacro", missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing, 
    missing, missing, missing, missing, missing, missing);
3hekt07s.alert_note(ru-ru,VS.90).gifПримечание.

Сведения об использовании в Visual C# вместо необязательных параметров глобальной переменной missing см. в разделе Сравнение программирования на Visual Basic и C#.

См. также

Задачи

Практическое руководство. Предоставление доступа к коду со стороны VBA в проекте Visual Basic

Практическое руководство. Предоставление доступа к коду со стороны VBA в проекте Visual C#

Пошаговое руководство. Вызов кода из VBA в проекте Visual Basic

Пошаговое руководство. Вызов кода из VBA в проекте Visual C#

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

Вызов кода настроек уровня документа из VBA

Создание решений Office в Visual Studio

Сравнение решений Visual Studio Tools for Office и VBA

Общие сведения об использовании сборок в решениях Office