- •Лабораторная работа №12 по курсу “Компьютерные информационные технологии” разработка программ на языке vba для работы с пользовательскими формами в excel
- •1 Создание пользовательской формы в Excel
- •2 Программа с использованием пользовательской формы: пример 1
- •2.1 Создание элементов управления и указание их свойств
- •2.2 Разработка программы
- •3 Программа с использованием пользовательской формы: пример 2
- •3.1 Создание элементов управления и указание их свойств
- •3.2 Разработка программы
2.2 Разработка программы
Чтобы приступить к написанию программы для работы с созданной пользовательской формой, требуется после создания формы, приведенной на рисунке 1, выбрать команду View – Code. Вызывается редактор VBA, и открывается модуль пользовательской формы. В нем необходимо ввести следующий текст программы (некоторые заголовки подпрограмм будут созданы автоматически):
Private Sub UserForm_Initialize()
Operacii.AddItem "сумма"
Operacii.AddItem "произведение"
Operacii.ListIndex = 0
End Sub
Private Sub Schet_Click()
diap = nach.Value + ":" + kon.Value
Set d = Range(diap)
m = d.Rows.Count
n = d.Columns.Count
If Operacii.ListIndex = 0 Then
Sum = 0
For i = 1 To m
For j = 1 To n
Sum = Sum + d.Cells(i, j).Value
Next j
Next i
rez.Value = Sum
End If
If Operacii.ListIndex = 1 Then
proizv = 1
For i = 1 To m
For j = 1 To n
proizv = proizv * d.Cells(i, j).Value
Next j
Next i
rez.Value = proizv
End If
End Sub
Private Sub Vyhod_click()
Unload sum_proizv
End Sub
Процедура UserForm_Initialize() выполняется в начале работы с пользовательской формой, т.е. выполняет ее инициализацию. Оператор Operacii.AddItem "сумма" означает, что к списку Operacii применяется действие (метод) AddItem, т.е. к списку добавляется заданный элемент – слово “сумма”. Затем в список аналогично включается элемент “произведение”. В операторе operacii.ListIndex = 0 свойству ListIndex списка Operacii присваивается значение 0; это означает, что по умолчанию в списке будет выбран первый по порядку элемент, т.е. элемент “сумма” (элементы списка имеют номера, начиная с нуля).
Процедура Schet_Click() выполняется при нажатии кнопки с именем Schet (т.е. кнопки “Вычислить”). В операторе diap = nach.Value + ":" + kon.Value составляется символьная строка из значений текстовых полей nach и kon, между которыми добавляется двоеточие; таким образом, строка diap будет представлять собой диапазон ячеек, заданный в текстовых полях. Например, если в текстовом поле nach пользователь введет значение B2, а в текстовом поле kon – значение F4, то переменная diap будет иметь значение “B2:F4”.
В операторе Set d = Range(diap) переменная d связывается с диапазоном, заданным переменной diap. В двух следующих операторах определяется количество строк и столбцов в заданном диапазоне.
В операторе If Operacii.ListIndex = 0 Then … проверяется, чему равно свойство ListIndex списка Operacii, т.е. какой элемент выбран в списке Operacii. Если выбран элемент с номером 0 (т.е. первый элемент – “сумма”), то выполняется суммирование значений ячеек в заданном диапазоне. Результат вычислений (переменная Sum) присваивается текстовому полю rez: rez.Value = Sum.
Аналогично, если выбран элемент списка с номером 1 (“произведение”), то вычисляется произведение ячеек в заданном диапазоне, и результат выводится в текстовое поле rez.
Процедура Vyhod_click() выполняется при нажатии кнопки с именем Vyhod (т.е. кнопки “Выход”). Оператор Unload sum_proizv закрывает форму.
На рисунке 2 показан вид созданной пользовательской формы во время работы с ней (т.е. во время выполнения программы, описанной выше).