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

Елемент управління ListBox vba дозволяє додавати список з даними на форму. На відміну від комбінованого списку ComboBox, ListBox має наступні відмінності:

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

  • Тут не можна вводити власні значення, а лише милуватися тими, що були додані спочатку
  • Є можливість вибирати відразу кілька значень.

ColumnCount - дозволяє задати кількість стовпчиків у списку

ColumnHeads - дозволяє задати режим відображення заголовків для колонок: true - заголовки відображаються, false - заголовки не відображаються. Дана властивість актуально при використанні компонента vba ListBox в Exel.

ColumnWidths - властивість визначає ширину колонок, наприклад, "20; 30; 15". Як бачимо, значення строкове, тут ми задали ширину для трьох стовпчиків, якщо ми поставимо нуль, то стовпчик не буде доступний широкому.

TextColumn - містить ціле значення, що визначає, вміст якого шпальти має повертати властивість Text.

BoundColumn - містить ціле значення, що визначає, вміст якого шпальти має повертати властивість Value.

Якщо для TextColumn і BoundColumn прописати 0, то буде повертатися номер обраного значення в списку об'єкта ListBox VBA мови.

Якщо вам треба вивести значення для заданого стовпчика, то треба просто прописати властивість Column задавши після нього в круглих дужках числовий індекс. Як все це працює, я покажу на прикладі далі.

MultiSelect - дозволяє визначити, як відбувається вибір елементів: 0 - fmMultuSelectSingle (тільки одиночний вибір), 1 - fmMultuSelectMulti (можливість вибирати кілька елементів клацанням миші або за допомогою натискання клавіші "пробіл"), 2 - fmMultuSelectExtended (можливість вибирати кілька елементів за допомогою натискання клавіші " Shift ").

VBA Excel ListBox

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

Тепер треба попрактикуватися, напишемо приклад використання компонента VBA ListBox в Excel. Але перш за все, треба заповнити чотири стовпчики різними даними. Я створив книгу в Excel і заповнив перші чотири стовпчики такими даними:

Добре, таблицю в Excel ми зробили, тепер можна приступити до роботи з проектом. І так, додайте в проект новий модуль і форму.

Зовнішній вигляд форми ви можете побачити на малюнку. На формі повинні бути розташовані два елементи управління vba excel ListBox, три елементи TextBox і одна кнопка (CommandButton). Перший список буде містити чотири стовпці, в яких буде відображатися вміст перших п'ятдесяти осередків для A, B, C і D. Другий список буде містити також всі 4 стовпчика, але відображатися буде тільки перший. При натисканні на кнопку, відбудеться зчитування обраного елемента в другому списку, і в текстових полях відобразиться вміст для другої, третьої і четвертої колонки.

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

Щоб не плутати все ще більше, приступимо до практики:

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

UserForm_Initialize - настройка даних при ініціалізації форми (UserForm). Тут відбувається настройка властивостей для першого і другого об'єкта ListBox vba мови:

ListBox1 - буде відображатися заголовок, компонент містить чотири колонки, їх ширина: 60; 80; 60; 30. Дані в список будуть додаватися з діапазону A2: D50, присутня можливість виділяти тільки один елемент у списку.

ListBox2 - тут практично все те ж саме, що і для першого списку, тільки ширина колонок: 60; 0; 0; 0 - тобто, буде відображатися вміст тільки першої колонки.

CommandButton1_Click - тут відбувається обробка клацання по кнопці, а саме: відбувається перевірка, вибрано чи щось у другому списку (vba excel ListBox), якщо так, то на початку текстове поле запишеться вміст з другої колонки, в другу - з третьої і в третє - з четвертої.

Схожі статті