Пошаговое руководство. Вызов кода из VBA в проекте Visual Basic
Обновлен: Ноябрь 2007
Применение |
---|
Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
В данном руководстве описывается способ вызова метода настроек на уровне документа из кода VBA для документа Microsoft Office Word 2007. Данная процедура состоит из трех основных этапов: добавления метода к классу ведущего элемента ThisDocument, преобразования метода в код VBA и вызова метода из кода VBA в документе.
Несмотря на то, что руководство предназначено исключительно для Word , некоторые рассмотренные понятия также применяются в проектах на уровне документа для Microsoft Office Excel 2007.
В этом руководстве представлены следующие задачи:
Создание документа с кодом VBA.
Определение размещения документа с помощью центра управления безопасности в Word.
Добавление метода к классу ведущего элемента ThisDocument.
Преобразование метода в код VBA.
Вызов метода из кода VBA.
Примечание. |
---|
На компьютере могут отображаться имена или расположения некоторых элементов пользовательского интерфейса 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, выполните следующее.
Запустите документ Word 2007.
Сохраните действующий документ Word в виде Документа с включенными макросами в формате (*.docm) с названием DocumentWithVBA. Выберите удобное место для сохранения, например рабочий стол.
На ленте откройте вкладку Разработчик.
Примечание. Если вкладка Разработчик не отображается на ленте, то ее следует отобразить вручную. Дополнительные сведения см. в разделе Практическое руководство. Отображение вкладки разработчика на ленте.
В группе Код выберите пункт Visual Basic.
Откроется редактор Visual Basic.
В окне Проект дважды нажмите пункт ThisDocument.
Откроется файл кода для объекта ThisDocument.
Добавьте следующий код VBA в файл кода. Код содержит простые функции, не выполняющие никаких действий. Единственная задача функции — удостовериться в наличии проекта VBA в документе. Это необходимо сделать для выполнения следующих действий данного руководства.
Sub EmptySub() End Sub
Сохраните документ и закройте Word.
Создание проекта
Теперь вы можете создавать проект на уровне документа на базе системы Word 2007, которая активирует документ с макросами, созданными вами ранее.
Для того чтобы создать новый проект, выполните следующее.
Запустите Visual Studio.
В меню Файл выберите пункт Новый и нажмите Проект. Если интерфейс IDE установлен для использования настроек разработки Visual Basic, в меню Файл выберите пункт Новый проект.
В панели Виды проектов откройте Visual Basic, затем — Office.
Выберите папку 2007.
После этого в панели Шаблоны выберите проект документа Word .
В диалоговом окне Имя введите CallingCodeFromVBA.
Нажмите кнопку OК.
Откроется вкладка Мастер проектов набора инструментов Visual Studio для Office.
Выберите Копировать текущий документ. В окне Полный путь к текущему документу укажите расположение с названием DocumentWithVBA. Если используется созданный документ с макросами, укажите путь к документу.
Нажмите кнопку Готово.
Visual Studio откроет документ DocumentWithVBA в конструкторе и добавит проект CallingCodeFromVBA в раздел Обозреватель решений.
Определение расположения документа
Перед преобразованием кода в код VBA в решении выполните запуск VBA в документе. Это можно сделать несколькими способами. В данном руководстве расположение документа Word определяется в разделе Центр управления безопасностью.
Для того чтобы определить расположение документа
Запустите Word.
Нажмите кнопку Microsoft Office.
Нажмите кнопку Параметры Word.
В области "Категории" нажмите Центр управления безопасностью.
В панели "Детали" нажмите Параметры центра управления безопасностью.
В панели "Категории" нажмите Надежные расположения.
В панели "Детали" нажмите Добавить новые расположения.
В диалоговом окне Надежные расположения Microsoft Office откройте папку с проектом CallingCodeFromVBA.
Выберите Вложенные папки с надежными расположениями.
В диалоговом окне Надежные расположения Microsoft Office нажмите кнопку OK.
В диалоговом окне Центр управления безопасностью нажмите кнопку ОК.
В диалоговом окне Параметры Word нажмите кнопку ОК.
Закройте приложение Word.
Добавление метода к классу ThisDocument.
Теперь, когда проект VBA установлен, добавьте метод ThisDocument к классу ведущего элемента, который был получен из кода VBA.
Для того чтобы добавить метод к классу ThisDocument
В Обозревателе решений откройте правой кнопкой файл ThisDocument.vb, а затем нажмите Просмотреть код.
В редакторе кода откроется файл ThisDocument.vb.
Добавьте следующий метод в класс 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
Построить проект.
Преобразование метода в код VBA
Для того чтобы преобразовывать метод CreateTable в код VBA в документе, установите в свойстве EnableVbaCallers для ведущего элемента в функции ThisDocument значение Верно.
Для того чтобы преобразовывать метод в код VBA, выполните следующее.
Дважды нажмите ThisDocument.vb в Обозревателе решений.
В конструкторе откроется файл DocumentWithVBA.
В окне Свойства выберите свойство EnableVbaCallers и измените его значение на Верно.
В появившимся окне с сообщением нажмите кнопку ОК.
Постройте проект.
Вызов метода из кода VBA
Теперь можно вызвать метод CreateTable из кода VBA в документе.
Примечание. |
---|
В данном руководстве мы рассмотрим добавление кода VBA в документ во время откладки проекта. Любой добавляемый в этот документ код VBA перезаписывается во время следующего построения проекта, поскольку Visual Studio заменяет документ в выходной папке создания копией документа из главной папки проекта. Для того чтобы сохранить код VBA, скопируйте документ в папку проекта. Дополнительные сведения см. в разделе Вызов кода настроек уровня документа из VBA. |
Для вызова метода из кода VBA выполните следующее.
Нажмите клавишу F5 для запуска проекта.
На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.
Откроется редактор Visual Basic.
В меню Вставка выберите пункт Модуль.
Добавьте в новый модуль следующий код.
Этот код вызывает метод CreateTable в сборке Visual Studio Tools for Office. Макрос имеет доступ к этому методу с помощью свойства CallVSTOAssembly объекта ThisDocument. Свойство автоматически создается во время установки EnableVbaCallers, рассмотренной ранее в нашем руководстве.
Sub CreateTable() Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date") End Sub
Нажмите клавишу F5.
Удостоверьтесь в том, чтобы новые таблицы были добавлены в документ.
Закройте Word без сохранения изменений.
Следующие действия
Дополнительные сведения о вызове кода из VBA в решениях см. в разделе Visual Studio Tools for Office.
Вызов кода из VBA в настройках Visual C#. Процесс вызова отличается от процесса вызова в Visual Basic. Дополнительные сведения см. в разделе Пошаговое руководство. Вызов кода из VBA в проекте Visual C#.
Вызов кода из VBA в надстройках на уровне приложения. Дополнительные сведения см. в разделе Пошаговое руководство. Вызов кода из VBA в настройках на уровне приложения.
См. также
Задачи
Практическое руководство. Предоставление доступа к коду со стороны VBA в проекте Visual Basic
Практическое руководство. Предоставление доступа к коду со стороны VBA в проекте Visual C#
Пошаговое руководство. Вызов кода из VBA в проекте Visual C#