/ / Excel VBA Multicolumn Combo Box

Excel VBA Multicolumn Combo Box

Нижче ми розглянемо програму в Росії Excel VBA який створює Userform, який містить a багатоколірна комбінація.

Формат Userform, який ми збираємося створити, виглядає наступним чином:

Multicolumn Combo Box у Excel VBA

Щоб створити цю Userform, виконайте наступні кроки.

1. Відкрийте редактор Visual Basic. Якщо Провідник проекту не відображається, натисніть Переглянути, Провідник проекту.

2. Клацніть Insert, Userform. Якщо панель інструментів не відображається автоматично, натисніть Переглянути, Панель інструментів. Ваш екран повинен бути налаштований як показано нижче.

Налаштування екрана Userform у програмі Excel VBA

3. Додайте ярлик, комбіноване поле та кнопки команд. Після того, як це буде завершено, результат має відповідати картині формату Userform, показаному раніше. Наприклад, створіть комбінацію клавіш, натиснувши ComboBox з панелі інструментів. Далі ви можете перетягнути комбіноване поле в Userform.

4 Ви можете змінювати імена та підписи елементів керування. Імена використовуються в коді Excel VBA. Підписи - це ті, які з'являються на вашому екрані. Рекомендовано змінити назви елементів керування, але тут немає необхідності, оскільки в цьому прикладі ми маємо лише декілька елементів керування. Щоб змінити заголовок кнопок Userform, label і command, клацніть View, Properties Window і клацніть по кожному елементу керування.

5. Щоб показати Userform, помістіть на вашій робочій клавіші команду та додайте наступну кодову рядок:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ми збираємось створити Sub UserForm_Initialize. Якщо ви використовуєте метод Show для форми Userform, цей підрозділ буде автоматично виконано.

6. Відкрийте редактор Visual Basic.

7. У Провіднику проекту клацніть правою кнопкою миші на UserForm1 і натисніть кнопку Перегляд коду.

8. Оберіть Userform з розкривного списку ліворуч. У спадному списку праворуч виберіть «Ініціалізувати».

9. Додайте наступні кодові рядки:

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Пояснення: Перша кодова лінія встановлює кількість стовпців комбінованого поля на 2. Замість того, щоб встановлювати кількість стовпчиків під час виконання, ви також можете налаштувати цей параметр під час проектування. Для цього клацніть правою клавішею миші на контрольній панелі, клацніть Властивості та встановіть властивість ColumnCount на 2. Далі ми оголошуємо та ініціалізуємо двовимірний масив. Остання кодова рядок призначає масив у комбіноване поле.

Тепер ми створили першу частину Userform. Хоча це виглядає вже акуратно, ще нічого не станеться, коли ми натискаємо кнопки команд у Userform.

10. У Провіднику проекту двічі клацніть на UserForm1.

11. Двічі клацніть на кнопці ОК.

12. Додайте наступні кодові рядки:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Примітка: ці кодові лінії закривають Excel VBA Userform і показують вибраний елемент і жанр. Заява "Про помилку відновити далі" ігнорує помилку, коли користувач заповнює свій власний фільм (у цьому випадку немає доступного жанру).

13. Двічі клацніть на кнопку Скасувати.

14. Додайте наступну кодову лінію:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Результат під час вибору швидкості та натисніть кнопку ОК.

Результат багатоколірного комбо-вікна

Результат багатоколірного комбо-вікна

Також читайте: