Структура макроса VBA

Рассмотрим структуру макроса и его составные части. Результатом записи макроса является так называемая подпрограмма (subprogram). Если вы рассмотрите несколько записанных макросов, то увидите, что все они имеют общую структуру. Каждый макрос VBA начинается со слова Sub (сокращение слова subprogram – подпрограмма), следом за которым идет имя макроса. Строку с ключевым словом Sub и именем макроса называют строкой объявления макроса. Имя макроса должно начинаться сбуквы, но может содержать и числа. Имя макроса не может включать в себя пробелы или знаки препинания. В Excel максимальная длина имени макроса – 64 символа, а в Word она может составлять до 80 символов. За именем макроса всегда следуют пустые круглые скобки. Сразу за объявлением макроса следует тело макроса, которое может содержать, либо не содержать комментарии. Комментарий – это строка в макросе VBA, которая не содержит инструкций, это поясняющий текст. Строки комментариев начинаются с прямого апострофа ('), который находится на той же клавише, где кавычки. Используются комментарии для того, чтобы код подпрограммы был более понятен при чтении.

Struktura_makrosov_VBA

Каждая строка в теле макроса состоит из одного или нескольких операторов VBA. Оператор VBA – это последовательность ключевых слов и других символов, которые совместно составляют одну полную инструкцию. На одной строке можно записать несколько инструкций, разделив их двоеточием, но, как правило, каждую инструкцию начинают с новой строки, это улучшает наглядность текста программ. За телом макроса следует строка, содержащая ключевые слова End Sub, что свидетельствует о том, что достигнут конец макроса. При выполнении инструкции End Sub никаких видимых действий не происходит, но при этом освобождается вся память, которая использовалась для выполнения подпрограммы. При просмотре макросов можно заметить, что различные части текста макроса отображаются различными цветами. Так, например, комментарии имеют зеленый цвет шрифта, а ключевые слова, имеющие строго определенный смысл отображаются синим цветом. Остальной текст макроса отображается черным цветом. При возникновении ошибок в программе, часть кода подкрашивается красным цветом. Для выделения различных секций макроса используются отступы в коде. Каждый уровень отступа помогает отделять одну часть макроса от другой. Отступы делать не обязательно, макросы будут выполняться независимо от них, размещение строк с отступом выполняется макрорекордером и хорошими программистами для более легкого чтения их программ. В коде макроса зачастую можно встретить сочетание пробела и символа подчеркивания (_) в конце строки. Эта комбинация называется символом продолжения строки и сообщает о том, что следующая строка макроса должна быть присоединена к текущей строке для образования единого оператора.

В чем отличие макроса от процедуры?

Многие пользователи используют термин «макрос» как для макросов, записанных рекордером, так и для макросов, написанных вручную. Существует термин, помогающий различать эти макросы. Термин «макрос», по большому счету, применим только к макросам, записанным при помощи макрорекордера и не имеющим переменных величин. Макросы, которые написаны, как говорится, с нуля, вручную, более точно называются подпроцедурами (subprocedures) или просто процедурами (procedures). В VBA предусмотрены процедуры типа Sub (подпрограмма) – универсальная процедура для выполнения каких-либо действий и процедуры типа Function (функция) – набор команд, возвращающий вызвавшей её программе какое-либо значение, которое там будет использовано.