/ / Екцел ВБА Усерформ

Екцел ВБА Усерформ

Додајте контроле | Покажите Усерформ | Додели макре | Тестирајте Усерформ

Ово поглавље вас учи како да креирате Екцел ВБА Усерформ. Кориснички облик који ћемо креирати изгледа овако:

Екцел ВБА Усерформ

Додајте контроле

Да бисте додали контроле у ​​Усерформ, извршите следеће кораке.

1. Отворите Висуал Басиц Едитор. Ако Пројецт Екплорер није видљив, кликните Виев, Пројецт Екплорер.

2. Кликните на Инсерт, Усерформ. Ако се Тоолбок не појави аутоматски, кликните Виев, Тоолбок. Ваш екран треба да буде подешен као доле.

Усерформ Сцреен Сетуп у Екцел ВБА

3. Додајте контроле наведене у доњој табели. Када ово буде завршено, резултат мора бити у складу са приказом корисничког образца који је приказан раније. На пример, креирајте контролу над текстуалним оквиром кликом на ТектБок из алатке. Затим можете превући текст поље на Усерформ. Када стигнете до Аутомобилског оквира, не заборавите прво да нацртате овај оквир пре него што поставите два опциона дугмета у њему.

4. Промените имена и називе контрола према табелама испод. Имена се користе у Екцел ВБА коду. Написи су они који се појављују на вашем екрану. Добра пракса је промена назива контрола. Ово ће вам олакшати читање вашег кода. Да бисте променили имена и називе контрола, кликните Виев, Пропертиес Виндов и кликните на сваку контролу.

Контрола Име Цаптион
Усерформ ДиннерПланнерУсерФорм Планер вечере
Поље за текст НамеТектБок
Поље за текст ПхонеТектБок
Листа кутија ЦитиЛистБок
Цомбо Бок ДиннерЦомбоБок
Поље за потврду ДатеЦхецкБок1 13. јуна
Поље за потврду ДатеЦхецкБок2 20. јуна
Поље за потврду ДатеЦхецкБок3 27. јуна
Рам ЦарФраме Цар
Опција Дугме ЦарОптионБуттон1 да
Опција Дугме ЦарОптионБуттон2 Не
Поље за текст МонеиТектБок
Спин Буттон МонеиСпинБуттон
Командно дугме ОКБуттон У реду
Командно дугме ЦлеарБуттон Јасно
Командно дугме ЦанцелБуттон Поништити, отказати
7 Налепнице Нема потребе за промјеном Име :, Број телефона :, итд.

Напомена: комбинација је падајућа листа од које корисник може изабрати ставку или попунити свој избор. Може се одабрати само један од дугмади опције.

Покажите Усерформ

Да бисте приказали Усерформ, поставите командно дугме на свој радни лист и додајте следећу линију кода:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Сада ћемо креирати Суб УсерФорм_Инитиализе. Када користите методу Схов за Усерформ, овај суб ће аутоматски бити извршен.

1. Отворите Висуал Басиц Едитор.

2. У Пројецт Екплореру, десним тастером миша кликните на ДиннерПланнерУсерФорм, а затим кликните на Прикажи код.

3. Из падајуће листе изаберите ставку Усерформ. Изаберите Инитиализе са десне падајуће листе.

4. Додајте следеће линије кода:

Private Sub UserForm_Initialize()

"Empty NameTextBox
NameTextBox.Value = ""

"Empty PhoneTextBox
PhoneTextBox.Value = ""

"Empty CityListBox
CityListBox.Clear

"Fill CityListBox
With CityListBox
    .AddItem "San Francisco"
    .AddItem "Oakland"
    .AddItem "Richmond"
End With

"Empty DinnerComboBox
DinnerComboBox.Clear

"Fill DinnerComboBox
With DinnerComboBox
    .AddItem "Italian"
    .AddItem "Chinese"
    .AddItem "Frites and Meat"
End With

"Uncheck DataCheckBoxes

DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False

"Set no car as default
CarOptionButton2.Value = True

"Empty MoneyTextBox
MoneyTextBox.Value = ""

"Set Focus on NameTextBox
NameTextBox.SetFocus

End Sub

Објашњење: празне се текстуалне кутије, пописне кутије и комбо-кутије су попуњене, поља за потврду нису означена, итд.

Додели макре

Сада смо направили први део Усерформ-а. Иако изгледа већ чисто, ништа се неће догодити када кликнемо на командне дугмад на Усерформу.

1. Отворите Висуал Басиц Едитор.

2. У Пројецт Екплорер-у, двапут кликните на ДиннерПланнерУсерФорм.

3. Двапут кликните на дугме за центрирање новца.

4. Додајте следећу линију кода:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Објашњење: ова линија кода обнавља текстуално поље када користите тастер за окретање.

5. Двапут кликните на дугме ОК.

6. Додајте следеће линије кода:

Private Sub OKButton_Click()

Dim emptyRow As Long

"Make Sheet1 active
Sheet1.Activate

"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

"Transfer information
Cells(emptyRow, 1).Value = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption

If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption

If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

If CarOptionButton1.Value = True Then
    Cells(emptyRow, 6).Value = "Yes"
Else
    Cells(emptyRow, 6).Value = "No"
End If

Cells(emptyRow, 7).Value = MoneyTextBox.Value

End Sub

Објашњење: прво, активирамо Схеет1. Затим, одредимо празну руку. Варијабла емптиРов је први празан ред и повећава се сваки пут када се дода запис. Коначно, преносимо информације из Усерформ-а у одређене ступце емптиРов.

7. Двапут кликните на дугме Обриши.

8. Додајте следећу линију кода:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Објашњење: ова линија кода позива Суб УсерФорм_Инитиализе када кликнете на дугме Обриши.

9. Двапут кликните на дугме Цанцел (Откажи).

10. Додајте следећу линију кода:

Private Sub CancelButton_Click()

Unload Me

End Sub

Објашњење: ова линија кода затвара Усерформ када кликнете на дугме Откажи.

Тестирајте Усерформ

Изађите из Висуал Басиц Едитор-а, унесите етикете приказане испод у ред 1 и тестирајте Усерформ.

Резултат:

Тестирајте Усерформ

Такође прочитајте: