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


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

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

Применение

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

Тип проекта

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

Версия Microsoft Office

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

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

В данном руководстве описывается способ вызова метода настроек на уровне документа из кода VBA для документа Microsoft Office Word 2007. Данная процедура состоит из трех основных этапов: добавления метода к классу ведущего элемента ThisDocument, преобразования метода в код VBA и вызова метода из кода VBA в документе.

Несмотря на то, что руководство предназначено исключительно для Word , некоторые рассмотренные понятия также применяются в проектах на уровне документа для Microsoft Office Excel 2007.

В этом руководстве представлены следующие задачи:

  • Создание документа с кодом VBA.

  • Определение размещения документа с помощью центра управления безопасности в Word.

  • Добавление метода к классу ведущего элемента ThisDocument.

  • Преобразование метода в код VBA.

  • Вызов метода из кода VBA.

Bb608609.alert_note(ru-ru,VS.90).gifПримечание.

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

Обязательные компоненты

Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты:

  • Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System).

  • Microsoft Office Word 2007.

Visual Studio Tools for Office устанавливается по умолчанию с нижеперечисленными версиями Visual Studio. Для того чтобы проверить наличие установки, см. раздел Установка средств Visual Studio для Office.

Создание документа с кодом VBA

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

Если документ с кодом VBA уже используется, этот этап можно пропустить.

Для того чтобы создать документ с кодом VBA, выполните следующее.

  1. Запустите документ Word 2007.

  2. Сохраните действующий документ Word в виде Документа с включенными макросами в формате (*.docm) с названием DocumentWithVBA. Выберите удобное место для сохранения, например рабочий стол.

  3. На ленте откройте вкладку Разработчик.

    Bb608609.alert_note(ru-ru,VS.90).gifПримечание.

    Если вкладка Разработчик не отображается на ленте, то ее следует отобразить вручную. Дополнительные сведения см. в разделе Практическое руководство. Отображение вкладки разработчика на ленте.

  4. В группе Код выберите пункт Visual Basic.

    Откроется редактор Visual Basic.

  5. В окне Проект дважды нажмите пункт ThisDocument.

    Откроется файл кода для объекта ThisDocument.

  6. Добавьте следующий код VBA в файл кода. Код содержит простые функции, не выполняющие никаких действий. Единственная задача функции — удостовериться в наличии проекта VBA в документе. Это необходимо сделать для выполнения следующих действий данного руководства.

    Sub EmptySub()
    End Sub
    
  7. Сохраните документ и закройте Word.

Создание проекта

Теперь вы можете создавать проект на уровне документа на базе системы Word 2007, которая активирует документ с макросами, созданными вами ранее.

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

  1. Запустите Visual Studio.

  2. В меню Файл выберите пункт Новый и нажмите Проект. Если интерфейс IDE установлен для использования настроек разработки Visual Basic, в меню Файл выберите пункт Новый проект.

  3. В панели Виды проектов откройте Visual Basic, затем — Office.

  4. Выберите папку 2007.

  5. После этого в панели Шаблоны выберите проект документа Word .

  6. В диалоговом окне Имя введите CallingCodeFromVBA.

  7. Нажмите кнопку .

    Откроется вкладка Мастер проектов набора инструментов Visual Studio для Office.

  8. Выберите Копировать текущий документ. В окне Полный путь к текущему документу укажите расположение с названием DocumentWithVBA. Если используется созданный документ с макросами, укажите путь к документу.

  9. Нажмите кнопку Готово.

    Visual Studio откроет документ DocumentWithVBA в конструкторе и добавит проект CallingCodeFromVBA в раздел Обозреватель решений.

Определение расположения документа

Перед преобразованием кода в код VBA в решении выполните запуск VBA в документе. Это можно сделать несколькими способами. В данном руководстве расположение документа Word определяется в разделе Центр управления безопасностью.

Для того чтобы определить расположение документа

  1. Запустите Word.

  2. Нажмите кнопку Microsoft OfficeКнопка Office 2007.

  3. Нажмите кнопку Параметры Word.

  4. В области "Категории" нажмите Центр управления безопасностью.

  5. В панели "Детали" нажмите Параметры центра управления безопасностью.

  6. В панели "Категории" нажмите Надежные расположения.

  7. В панели "Детали" нажмите Добавить новые расположения.

  8. В диалоговом окне Надежные расположения Microsoft Office откройте папку с проектом CallingCodeFromVBA.

  9. Выберите Вложенные папки с надежными расположениями.

  10. В диалоговом окне Надежные расположения Microsoft Office нажмите кнопку OK.

  11. В диалоговом окне Центр управления безопасностью нажмите кнопку ОК.

  12. В диалоговом окне Параметры Word нажмите кнопку ОК.

  13. Закройте приложение Word.

Добавление метода к классу ThisDocument.

Теперь, когда проект VBA установлен, добавьте метод ThisDocument к классу ведущего элемента, который был получен из кода VBA.

Для того чтобы добавить метод к классу ThisDocument

  1. В Обозревателе решений откройте правой кнопкой файл ThisDocument.vb, а затем нажмите Просмотреть код.

    В редакторе кода откроется файл ThisDocument.vb.

  2. Добавьте следующий метод в класс ThisDocument. Этот метод позволяет создавать таблицу с двумя строками и столбцами в начале документа. Параметры позволяют указать текст, который отображается в первой строке. Позже в данном руководстве мы рассмотрим метод вызова из кода VBA в документе.

    Public Sub CreateTable(ByVal firstColumnHeader As String, _
        ByVal secondColumnHeader As String)
    
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Dim table1 As Word.Table = Me.Tables.Add(Me.Paragraphs(1).Range, 2, 2)
    
        With table1
            .Style = "Table Professional"
            .Cell(1, 1).Range.Text = firstColumnHeader
            .Cell(1, 2).Range.Text = secondColumnHeader
        End With
    End Sub
    
  3. Построить проект.

Преобразование метода в код VBA

Для того чтобы преобразовывать метод CreateTable в код VBA в документе, установите в свойстве EnableVbaCallers для ведущего элемента в функции ThisDocument значение Верно.

Для того чтобы преобразовывать метод в код VBA, выполните следующее.

  1. Дважды нажмите ThisDocument.vb в Обозревателе решений.

    В конструкторе откроется файл DocumentWithVBA.

  2. В окне Свойства выберите свойство EnableVbaCallers и измените его значение на Верно.

  3. В появившимся окне с сообщением нажмите кнопку ОК.

  4. Постройте проект.

Вызов метода из кода VBA

Теперь можно вызвать метод CreateTable из кода VBA в документе.

Bb608609.alert_note(ru-ru,VS.90).gifПримечание.

В данном руководстве мы рассмотрим добавление кода VBA в документ во время откладки проекта. Любой добавляемый в этот документ код VBA перезаписывается во время следующего построения проекта, поскольку Visual Studio заменяет документ в выходной папке создания копией документа из главной папки проекта. Для того чтобы сохранить код VBA, скопируйте документ в папку проекта. Дополнительные сведения см. в разделе Вызов кода настроек уровня документа из VBA.

Для вызова метода из кода VBA выполните следующее.

  1. Нажмите клавишу F5 для запуска проекта.

  2. На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.

    Откроется редактор Visual Basic.

  3. В меню Вставка выберите пункт Модуль.

  4. Добавьте в новый модуль следующий код.

    Этот код вызывает метод CreateTable в сборке Visual Studio Tools for Office. Макрос имеет доступ к этому методу с помощью свойства CallVSTOAssembly объекта ThisDocument. Свойство автоматически создается во время установки EnableVbaCallers, рассмотренной ранее в нашем руководстве.

    Sub CreateTable()
        Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date")
    End Sub
    
  5. Нажмите клавишу F5.

  6. Удостоверьтесь в том, чтобы новые таблицы были добавлены в документ.

  7. Закройте Word без сохранения изменений.

Следующие действия

Дополнительные сведения о вызове кода из VBA в решениях см. в разделе Visual Studio Tools for Office.

См. также

Задачи

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

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

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

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

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

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