Урок 6 по VBA — Константы

Урок 6 по VBA — Константы Макросы на VBA

Помимо переменных, в коде языка VBA можно использовать константы. Константы VBA – это по сути те же переменные, но тут происходит присвоение значения один раз. Если вы присвоите константе значение 100, то изменить его уже не сможете.

Использование констант VBA актуально в следующих случаях:

  • Если в коде часто используется одно значение, например, код цвета, или параметры компонента.
  • Универсальность – вы можете в одной строке сразу прописать идентификатор, назначить тип данных и присвоить нужное значение.
  • Поиск и исправление – не надо пробегаться по всему коду в поисках данных для исправления.

В большинстве случаев имена констант прописывают заглавными буквами, дабы отличать их от имен переменных, например:

Const COMP_NAME AsString = “Microsoft”

Как видим, для объявления константы используется ключевое слово Const, в отличии от переменных, константные значения занимают меньше места.

Именованные константы VBA

Язык VBA, впрочем, как и VBScript или Visual Basic предоставляют пользователю готовый набор статических значений, так называемых – именованных констант. Их отличительной особенностью является префикс “vb”. Вы можете скачать справочник в формате PDF, в котором я собрал описание именованных констант.

Хорошо, теперь давайте напишем небольшой пример…

В редактор проектов добавьте новую форму (назовите ее ConstForm, свойство Name) и новый модуль (имя — ConstModule). В редакторе кода для модуля пропишите:

Sub ConstModule()    ConstForm.ShowEndSub

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

Внешний вид формы следующий: на поверхности формы добавьте восемь текстовых меток (объект Label) и одно текстовое поле (объект TextBox).

Форма VBA с выводом констант

Хорошо, теперь в редакторе кода для формы (делаем форму активной в редакторе проектов и нажимаем на кнопку View Code) пропишите:

Sub ColorList()    Label1.FontSize = 15    Label1.ForeColor = vbBlack    Label1.Caption = "Черный"     Label2.FontSize = 15    Label2.ForeColor = vbRed    Label2.Caption = "Красный"     Label3.FontSize = 15    Label3.ForeColor = vbGreen    Label3.Caption = "Зеленый"     Label4.FontSize = 15    Label4.ForeColor = vbYellow    Label4.Caption = "Желтый"     Label5.FontSize = 15    Label5.ForeColor = vbBlue    Label5.Caption = "Синий"     Label6.FontSize = 15    Label6.ForeColor = vbMagenta    Label6.Caption = "Фиолетовый"     Label7.FontSize = 15    Label7.ForeColor = vbCyan    Label7.Caption = "Бирюзовый"     Label8.FontSize = 15    Label8.ForeColor = vbWhite    Label8.Caption = "Белый"EndSubSub ConstantList()    Const DAY_MONDEY AsString = "Понедельник"    Const DAY_TUESDEY AsString = "Вторник"    Const DAY_WEDNESDEY AsString = "Среда"    Const DAY_THURSDAY AsString = "Четверг"    Const DAY_FRIDAY AsString = "Пятница"    Const DAY_SATURDAY AsString = "Субота"    Const DAY_SUNDAY AsString = "Неделя"    TextBox1.MultiLine = True    TextBox1.Text = DAY_MONDEY & vbCrLf _        & DAY_TUESDEY & vbCrLf _        & DAY_WEDNESDEY & vbCrLf _        & DAY_THURSDAY & vbCrLf _        & DAY_FRIDAY & vbCrLf _        & DAY_SATURDAY & vbCrLf _        & DAY_SUNDAYEndSubPrivateSub UserForm_Initialize()    Call ColorList    Call ConstantListEndSub

Давайте разберем код VBA….

Процедура ColorList – тут происходит задание начальных значений для текстовых меток, а именно, мы определяем размер текста (свойство FontSize), цвет текста (свойство ForeColor) и текст метки (свойство Caption). Обратите внимание, что цвет текста я прописал не в виде цифр, а в виде литеральных констант VBA (vbBlack, vbRed и так далее).

Процедура ConstantList – тут мы прописываем собственные константы VBA. Все они типа String и содержат название дня недели. В свойстве MultiLine объекта TextBox мы прописали значение true, что определяет текстовое поле как многострочное. В свойство Text происходит запись содержимого наших констант, при чем, не в одну строку, а каждое значение с новой, за перевод строки отвечает константа VBA vbCrLf.

Процедура UserForm_Initialize – данная процедура вызывается при инициализации (загрузке) формы, в ней просто идет вызов предыдущих двух процедур.

Обратите внимание, что пользовательские константы VBA я прописал с большой буквы, это помогает визуально отличить их от перемененных. Хотя, некоторые авторы просто пишут первую букву “c”, от слова Const, но это лишь вопрос вкуса, как именовать VBA константы.

И так, в этой статье мы рассмотрели константы VBA языка, которые могут быть как пользовательскими – созданы пользователем для собственных нужд, так и именованными – зарезервированные значения самим языком Visual Basic. Также мы рассмотрели небольшой пример кода VBA с использование компонентов формы редактора Visual Basic, сам код тестировался в программе Word.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий