Элемент управления пользовательской формы Label, применяемый в VBA Excel для отображения надписей, меток, информационного текста. Свойства Label, примеры кода.
Элемент управления Label
Элемент управления Label, как и другие элементы управления, реагирует на нажатия мышью, то есть его можно использовать для запуска подпрограмм, изменения собственных свойств, свойств пользовательской формы и других элементов управления.
Свойства элемента Метка
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера надписи. True – размер автоматически подстраивается под длину набираемой строки. False – размер элемента управления определяется свойствами Width и Height. |
Caption | Текст надписи (заголовок). |
ControlTipText | Текст всплывающей подсказки при наведении курсора на метку. |
Enabled | Возможность взаимодействия пользователя с элементом управления Label. True – взаимодействие включено, False – отключено (цвет текста становится серым). |
Font | Шрифт, начертание и размер текста надписи. |
Height | Высота элемента управления. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
Picture | Добавление изображения вместо текста метки или дополнительно к нему. |
PicturePosition | Выравнивание изображения и текста в поле надписи. |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0. |
TextAlign* | Выравнивание текста надписи: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
Visible | Видимость элемента управления Label. True – элемент отображается на пользовательской форме, False – скрыт. |
Width | Ширина элемента управления. |
WordWrap | Перенос текста надписи на новую строку при достижении ее границы. True – перенос включен, False – перенос выключен. |
* При загруженной в надпись картинке свойство TextAlign не работает, следует использовать свойство PicturePosition.
Свойство по умолчанию для элемента Label – Caption, основное событие – Click.
В таблице перечислены только основные, часто используемые свойства надписи. Все доступные свойства отображены в окне Properties элемента управления Label.
Примеры кода VBA с Label
Пример 1
Загрузка элемента управления Label на пользовательскую форму с параметрами, заданными в коде VBA Excel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Private Sub UserForm_Initialize() 'Устанавливаем значения свойств 'пользовательской формы With Me .Width = 200 .Height = 110 .Caption = "Пользовательская форма" End With 'Устанавливаем значения свойств 'метки (надписи) Label1 With Label1 .Caption = "Добрый доктор Айболит!" _ & vbNewLine & "Он под деревом сидит." .Width = 150 .Height = 40 .Left = 20 .Top = 20 .Font.Size = 12 .BorderStyle = fmBorderStyleSingle .BackColor = vbYellow End With End Sub |
Добавьте на пользовательскую форму элемент управления Label1, а в модуль формы представленный выше код VBA. При запуске формы или процедуры UserForm_Initialize()
откроется следующее окно:
Пример 2
Изменение цвета элемента управления Label при нажатии на нем любой (правой, левой) кнопки мыши, и возвращение первоначального цвета при отпускании кнопки:
1 2 3 4 5 6 7 8 9 10 11 12 |
'Событие перед щелчком кнопки мыши при нажатии Sub Label1_MouseDown(ByVal Button As Integer, _ ByVal Shift As Integer, ByVal X As Single, _ ByVal Y As Single) Label1.BackColor = vbBlue End Sub 'Событие перед щелчком кнопки мыши при отпускании Sub Label1_MouseUp(ByVal Button As Integer, _ ByVal Shift As Integer, ByVal X As Single, _ ByVal Y As Single) Label1.BackColor = Me.BackColor End Sub |
При нажатии кнопки мыши над меткой, ее цвет станет синим. При отпускании кнопки – цвет станет таким же, как цвет формы.
Для наглядной демонстрации второго примера вы можете добавить эти две процедуры к коду первого примера или создать новую пользовательскую форму с элементом управления Label1 и добавить процедуры в ее модуль.