Ще ви представя един бърз и лесен начин за създаване на формa в Microsoft Excel и за събиране на информацията, която се въвежда в тази форма, с помощта на Visual Basic for Excel.
Главните елементи в потребителските електронни форми се наричат контроли.Най-основните контроли, които могат да се добавят към Excel VBA, са:
- Label – примери на етикети в показаната форма са: „Име“, „Отдел“и др.
- TextBox – полетата до етикетите „Име“, „Фамилия“ са текстови.
- Comboboxes – нарича се още „Падащ списък” – контрола с определено съдържание, от което може да се избира една единствена стойност.
- ChechBox – квадратчетата за избор. Служат за избор на няколко опции едновременно. Могат да се избират повече от едно. Изборът на месеци е с ChechBox.
- RadioButton – бутони за избор. При тях се избира едно от много. В случай, че се избере едно, то другото се изключва. Изборът на превозно средство е зададен чрез RadioButton
- Button – Командни бутони. Три командни бутони в долната част на формата, са примери за командни бутони.
Създаване на потребителска форма
- Отворете Visual Basic.
- Изберете десен бутон върху файла, в който искате да добавите потребителска форма.
- От Insert ->UserForm. Екрана би трябвало да изглежда така:
Ако не се вижда лентата с инструменти Toolbox, то се избира View ->Toolbox.
4. Добавят се различните контроли върху формата
5. Задават се съответните имена на всички контроли, както и текста, който да се показва. Това се прави в Properties на всяка от контролите, където полето Name служи за задаване на служебно име, а полето Caption за име, което ще се изобразява на екрана.
Съвет: Добра практика е да се преименуват имената на контролите. Това прави кода по-четим.
Отваряне на форма
За да се отвори формата за попълване може да се използва следния код, който да се присвои към бутон от работния лист:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
UserForm_Initialize – инициализиране на форма.
Това е най-важната част (инициализиране), за да работи формата.
За да инициализираме форматa:
1. Променя се изгледа на View Code:
2. Изписва се следния код, в който важната част е изписана в заглавието: Initialize. Останалата част от кода описва опциите в падащия списък:
Private Sub UserForm_Initialize()
With ComboBoxDepartment
.AddItem "IT"
.AddItem "Security"
.AddItem "Finance"
End With
End Sub
Събиране на въведената информация
Това става с избирането на бутон OK. Този бутон трябва да съдържа следния код:
Private Sub OKButton_Click()
Dim emptyRow As Integer
‘определяне на последен ред
Sheets(1).Select
Range("A1").Select
Selection.CurrentRegion.Select
emptyRow = Selection.Rows.Count + 1
‘въвеждане на име
Cells (emptyRow, 1).Value = txtName.Value
‘въвеждане на Фамилия
Cells (emptyRow, 2).Value = txtLastName.Value
‘въвеждане на отдел
Cells (emptyRow, 3).Value = ComboBoxDepartment.Value
‘въвеждане на стойности от CheckBox
If CheckBox1.Value = True Then Cells (emptyRow, 4).Value = CheckBox1.Caption
If CheckBox2.Value = True Then Cells (emptyRow, 4).Value = Cells (emptyRow, 4).Value & " " & CheckBox2.Caption
If CheckBox3.Value = True Then Cells (emptyRow, 4).Value = Cells (emptyRow, 4).Value & " " & CheckBox3.Caption
‘въвеждане на стойности от Радио бутон
If OptionButton1.Value = True Then
Cells (emptyRow, 5).Value = "Лек автомобил"
Else
Cells (emptyRow, 5).Value = "Автобус"
End If
End Sub
Затваряне на форма
Следния код затваря прозореца на формата:
Private Sub CancelButton_Click()
Unload Me
End Sub
Изчистване на форма
Следния код изчиства формата:
Private Sub ClearButton_Click()
'Изчистване на txtName
txtName.Value = ""
' Изчистване на txtLastName
txtLastName.Value = ""
‘Изчистване на ComboBoxDepartment
ComboBoxDepartment.Value = ""
‘Изчистване на CheckBoxes
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
' Изчистване на OptionButton
OptionButton1.Value = False
OptionButton2.Value = False
End Sub