В этой статье мы познакомимся с таким элементом управления vba как Label – надпись. Как и UserForm, Label является классом, с наборами свойств, методов и событий, нужно понимать, что большая их часть актуальна для всех элементов, а не только для одного.
В этой статье я рассмотрю лишь некоторые свойства, которые актуальны для объекта vba Label, а потом приведу простой пример кода.
И так, после того, как мы добавили в проект форму, рядом с ней должно появиться окно ToolBox, если его нет, то просто в меню View выберите пункт ToolBox. Хорошо, на панели несколько компонентов, но нам пока нужен только компонент Label.
Задача: добавить на форму надпись, в которой будет отображаться текущее время и дата, надпись должна быть большой и с заданным цветом.
AutoSize – определяет, будет ли размер элемента управления Label vba подстраиваться под введенный в нем текст (Caption), или будет фиксированным (Height и Width). Значение true – автоматический размер, а false – фиксированный.
Height и Width – высота и ширина области
Name и Caption – имя класса Label (как правило, Label1, Label2, …. , LabelN) и текст надписи. Текст можно вводить сразу на поле Label.
Multiline – тут можно задать, будет ли надпись многострочной (значение true) или однострочной (значение false).
Visible – позволяет скрыть (false) или отобразить компонент (true)
WordWrap – позволяет разрешить (true) или запретить (false) перенос текста на новую строку, если он не умещается в пределы области Label vba.
FontSize – определяет размер текста, как не странно, но в окне Свойств его нет.
ForeColor – цвет текста.
Хорошо, теперь давайте приступим к практике.
Как я уже сказал: запустите редактор Visual Basic (комбинация Alt+F11) и добавьте новый модуль в проект (меню Insert, пункт Module). Хорошо, теперь добавьте новую форму (меню Insert, пункт UserForm). В редакторе кода для модуля пропишите:
Sub Module1() UserForm1.Show End Sub |
Тут Module1 – имя модуля, у вас оно может быть другим, UserForm1 – имя объекта, у вас оно тоже может отличаться.
Теперь перетащите элемент Label на область класса UserForm.
Вот какие значения я установил для класса UserForm:
- Caption – Первая программа
- Height – 179.25
- Width – 215.25
Саму надпись я растянул по всей поверхности формы, оставив небольшой отступ снизу, цвет установил в синий.
Хорошо, теперь нам нужно написать процедуры для класса UserForm и Label vba языка, но прежде нужно открыть редактор кода для самой формы. Тут есть два пути:
- Дважды щелкнуть по рабочей области
- Выбрать объект в окне Проектов и нажать на кнопку ViewCode
Хорошо, в редакторе кода пропишите такие три процедуры:
Private Sub UserForm_Activate() Dim info As String info = "Дата:" & vbCrLf Label1.Caption = info & Format(Now, "dddddd hh ч. mm мин.") Label1.FontSize = 25 End Sub Private Sub UserForm_Click() Label1.Visible = False End Sub Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Label1.Visible = True End Sub |
UserForm_Activate – тут мы обрабатываем событие Activate класса UserForm, событие возникает, как только объект загружается в память. В процедуре мы объявили переменную info типа String, и потом присвоили ей строку «Дата:», vbCrLf – это перевод строки, а & — объединение.
- Label1.Caption – тут мы свойству Caption присвоили значение переменной info и текущую дату и время.
- Label1.FontSize – тут мы определили размер шрифта в 25
UserForm_Click – обработка щелчка по области, свойству Visible объекта Label1 присваивается значение false, то есть, при одинарном щелчке надпись станет невидимой.
UserForm_DblClick – тут при двойном щелчке надпись снова станет видимой.
Не волнуйтесь, если что-то непонятно, по ходу, я буду выкладывать материалы и по синтаксису языка VBA, хотя…. Есть одна хитрость, синтаксис языка VBA практически идентичен языку VBScript.