Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 1-13 3ий сем (Задания) / КИТ_лр12_VBA_пользовательские_формы.doc
Скачиваний:
26
Добавлен:
15.06.2014
Размер:
1.63 Mб
Скачать

2.2 Разработка программы

Чтобы приступить к написанию программы для работы с созданной пользовательской формой, требуется после создания формы, приведенной на рисунке 1, выбрать команду ViewCode. Вызывается редактор 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 показан вид созданной пользовательской формы во время работы с ней (т.е. во время выполнения программы, описанной выше).