Высокоуровневые методы информатики и программирования. Степанов А.Г. - 93 стр.

UptoLike

Составители: 

93
Пример 31. Для задачи, рассмотренной в примере 30, предусмотрим вклю-
чение пользовательской формы за счет нажатия специальной кнопки на рабочем
листе. Разместим на рабочем листе Excel кнопку, нажатие на которую приводит к
активизации формы, и назовем ее Форма. Предположим, что создаваемая нами
форма имеет имя UserForm1. Процедура обработки нажатий на кнопку имеет вид:
Private Sub ToggleButton1_Click()
If ToggleButton1.Value Then
UserForm1.Show
Else
UserForm1.Hide
End If
End Sub
Здесь используется свойство кнопки (ToggleButton) последовательно при на-
жатиях менять свое значение (Value) на значения истина или ложь и связанный с
формой метод отображения (Show) и скрытия (Hide) пользовательской формы.
Пример 32. Предположим, что на рабочем листе Excel подготовлена и запро-
граммирована таблица рис. 15, предназначенная для расчета заработной платы в
соответствии с рассматриваемым примером, а также таблица значений ставки оп-
латы труда. Создадим процедуру инициализации формы, которая будет выпол-
няться каждый раз, как форма отображается на экране. Опишем начальные назна-
чения переменных формы, которые будут выполнены во время выполнения этой
процедуры. Допустим, что начальное размещение списка сотрудников на рабочем
определено и не будет изменяться. Кроме этого известны количество сотрудников,
которым начисляется заработная плата, а также определены положения на листе
списка возможных используемых ставок и их количество.
'Инициализация формы
Private Sub UserForm_Activate()
'Объявление переменных с указанием признака %, соответствующего типу Integer
Dim Строка_списка%, Колонка_списка%, Элементов%, i%
'Задание начального адреса размещения поля со списком
Строка_списка = 3
Колонка_списка = 1
'Задание количества элементов списка
Элементов = 4
'Очистка списка и подготовка к его заполнению
ComboBox1.Clear
ComboBox1.ColumnCount = 2
'Заполнение списка тем
For i = 0 To Элементов - 1
ComboBox1.AddItem (Cells(Строка_списка + i, Колонка_списка).Value)
'Запоминание рабочего адреса
ComboBox1.List(i, 1) = Cells(Строка_списка + i, Колонка_списка + 1).Address
Next i
'Задание начального адреса размещения списка
Строка_списка = 11
Колонка_списка = 1
'Задание количества элементов списка
Элементов = 5
'Очистка списка и подготовка к его заполнению
ListBox1.Clear
ListBox1.ColumnCount = 2
'Заполнение списка тем
For i = 0 To Элементов - 1