Написание макросов и процедур в VBA редакторе и их выполнение

Процедуры в VBA

Макрос – это средство, с помощью которого можно описать какую-то последовательность действий с целью последующего её многократного выполнения. Как правило, макросами называют инструкции, которые записываются специальными инструментами MS Office (Запись макроса на вкладке Разработчик).

Процедура – это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий. В отличие от макроса, процедура – это код, который программист пишет самостоятельно.

Отсюда получается, что макрос написанный самостоятельно – это процедура. Соответственно макрос – это тоже VBA-программа.

Создание процедуры VBA

Прежде чем приступать к написанию кода новой процедуры, нужно создать новый модуль (если он не был ранее создан), нажав InsertModule. Далее нужно открыть окно Code этого модуля, сделав двойной клик левой кнопкой мыши по имени этого модуля в окне Project Explorer. И только теперь можно написать код процедуры VBA в окне Code.

Исходный код процедуры можно разместить в любом месте модуля. Для этого нужно просто поместить курсор в то место модуля, где мы хотим начать вводить текст новой процедуры.

Процедура начинается с оператора Sub и заканчивается оператором End Sub. Это ключевые слова процедуры VBA.

В VBA выделяют два основные типа процедур. Это процедуры типа Sub (подпрограммы) и процедуры типа Function (функции).

Так как модуль может содержать несколько процедур, то каждая новая процедура должна начинаться после оператора End Sub предыдущей процедуры, или перед оператором Sub следующей процедуры.

Пошаговое создание процедуры VBA в приложении MS Word (или Excel):

  1. Открыть документ Word (Excel).
  2. Активизировать редактор VBA, нажав <Alt+F11>, или кликнув по кнопке Visual Basic на вкладке Разработчик.
  3. В окне Project Explorer нужно выделить проект того документа, в котором будет создаваться новая процедура.
  4. Добавить новый модуль к проекту, вызвав контекстное меню (клик правой кнопкой мыши) и выбрав команду InsertModule.

    По умолчанию, новый модуль создается с именем Module(n). Где n – это порядковый номер модуля. Если это ваш первый модуль, то его имя будет Module1.

    В окне свойств, новому модулю можно присвоить какое-нибудь другое имя. Например, «Сообщение».

  5. Написать процедуру в окне Code
Sub Сообщение()
    MsgBox "Здравствуйте. Вы написали свою первую процедуру на VBA."
End Sub

Если вы всё сделали правильно, то в ходе выполнения данной процедуры, в окне Word (Excel) будет выведено диалоговое окно с текстом «Здравствуйте. Вы написали свою первую процедуру на VBA.»

Диалоговое окно VBA

Как выполнить процедуру VBA

  1. Самый быстрый способ нажать в редакторе VBA кнопку Run (или F5).
  2. Запустить процедуру также можно, вызвав диалоговое окно Macros (выбираем в меню редактора VBA Tools — Macros) и нажав в нём кнопку Run.
  3. Ещё один способ запуска процедуры — выбрать команду меню редактора VBA RunRun Macro (аналог первого варианта запуска выполнения процедуры).
  4. Также можно запустить написанную нами процедуру из самого документа Word. Для этого нужно перейти на вкладку Разработчик, кликнуть по кнопке Макрос, в появившемся окне выделить имя нужной процедуры (в нашем случае «Сообщение») и нажать на кнопку Выполнить.

создание процедуры vba

АВТОРИЗАЦИЯ