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

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

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

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

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

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

Const COMP_NAME As String = “Microsoft”

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

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

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

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

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

Sub ConstModule()
    ConstForm.Show
End Sub

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

Внешний вид формы следующий: на поверхности формы добавьте восемь текстовых меток (объект 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 = "Белый"
End Sub
Sub ConstantList()
    Const DAY_MONDEY As String = "Понедельник"
    Const DAY_TUESDEY As String = "Вторник"
    Const DAY_WEDNESDEY As String = "Среда"
    Const DAY_THURSDAY As String = "Четверг"
    Const DAY_FRIDAY As String = "Пятница"
    Const DAY_SATURDAY As String = "Субота"
    Const DAY_SUNDAY As String = "Неделя"
    TextBox1.MultiLine = True
    TextBox1.Text = DAY_MONDEY & vbCrLf _
        & DAY_TUESDEY & vbCrLf _
        & DAY_WEDNESDEY & vbCrLf _
        & DAY_THURSDAY & vbCrLf _
        & DAY_FRIDAY & vbCrLf _
        & DAY_SATURDAY & vbCrLf _
        & DAY_SUNDAY
End Sub
Private Sub UserForm_Initialize()
    Call ColorList
    Call ConstantList
End Sub

Давайте разберем код 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.

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