Клас textbox - створення текстового поля vba

Давайте розглянемо клас TextBox мови VBA, який дозволяє розміщувати на формі текстове поле. Клас vba TextBox дозволяє створювати як багаторядкові, так і однорядкові області для введення тексту, хот в останньому випадку зручніше скористатися функцією MsgBox. Також можна додавати смуги прокрутки і визначати максимальну довжину вводяться символом. TextBox може використовуватися і як компонент для введення пароля.

Клас textbox - створення текстового поля vba

Давайте для початку розглянемо основні властивості класу TextBox і його базове подія, а потім напишемо приклад.

Події класу TextBox VBA мови

Value або Text - текст, який введений в текстове поле TextBox

Visible - дозволяє заховати (значення false) або знову відобразити (значення true) елемент.

MultiLine - ця властивість дозволяє задати, чи буде текстове поле однорядковим (false), або багаторядковим (true).

WordWrap - властивість актуально використовувати, якщо MultiLine містить значення true, в такому випадку, якщо WordWrap встановлено в true, то відбудеться автоматичне перенесення тексту на новий рядок, коли буде досягнута межа текстового поля TextBox.

ScrollBars - дозволяє вказати, будуть або відображатися смуги прокрутки. Властивість може набувати таких значень:

  • 0 - fmScrollBarsNone (смуги прокрутки відсутні)
  • 1 fmScrollBarsHorizontal (горизонтальна смуга прокрутки)
  • 2 - fmScrollBarsVertical (вертикальна смуга прокрутки)
  • 3 - fmScrollBarsBoth (горизонтальна і вертикальна прокрутки)

PasswordChar - дозволяє задати символ, який буде відображатися замість даних, що вводяться. Властивість актуально при введенні пароля.

MaxLength - дозволяє вказати максимальну кількість символів, які можна ввести в текстове поле. За замовчуванням - 0, тобто, обмеження немає.

Як і у інших елементів управління, у класу TextBox є події, основною подією для TextBox є Change - воно виникає кожен раз, коли в текстове поле вводиться символ. Можливо вам доводилося бачити таку картинку: при введенні перевірочного коду, поки його довжина не досягне заданої (наприклад, 12 символів), кнопка "Перевірити" не доступною. Тут теж можна таке реалізувати.

Клас textbox - створення текстового поля vba

Врахуйте, що ім'я вашого модуля і форми можуть відрізнятися.

Тепер нам потрібно написати програмний код на мові VBA, який буде робити наступне:

У текстове поле буде вводитися текст, довжина тексту не більше 12 символів, поки довжина буде менше 12 символів, кнопка "Перевірити" буде недоступна. Як тільки ми досягаємо межі, кнопка стає активною, при натисканні на неї, вміст текстового поля TextBox має відобразитися в полі Label (Напис).

Тут йде обробка одиночного клацання по кнопці, при натисканні на кнопку, властивості Caption об'єкта Label1 (Напис) буде присвоєно вміст текстового поля TextBox1 (властивість Text).

Тут відбувається обробка події Change для текстового поля об'єкта TextBox1 класу vba TextBox. Мінлива LenText буде зберігати довжину введеного тексту, при кожному введенні даних буде відбуватися перевірка довжини, якщо вона рівна 12 - то відбудеться активація кнопки, інакше 0 кнопка буде неактивна.

Клас textbox - створення текстового поля vba

У цій процедурі відбувається настройка початкових значень, деякі з них можна задати і у вікні Властивостей, але я вирішив для наочності прописати все в програмному коді. Тут немає нічого страшно, як тільки форма завантажиться в пам'ять, кнопка "Перевірити" буде неактивною, розмір шрифту для текстового поля і написи встановлений в 20, також ми встановили максимальну довжину тексту для класу TextBox VBA мови і його однорядковими.