Помимо переменных, в коде языка 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).
Хорошо, теперь в редакторе кода для формы (делаем форму активной в редакторе проектов и нажимаем на кнопку 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.