Офисное программирование - Страница 14
Пример 16. Создать программу, рассчитывающую значения выражений в зависимости от выбранного переключателя на форме и введенных значений в текстовые поля. Основная программа после нажатия на кнопку Вычислить вызывает процедуру Shet, рассчитывающую все необходимые выражения. После нажатия на кнопку Закрыть разработанное приложение закрывается (рис. 34).
Примечание. При разработке данной формы используется новый элемент Переключатель
(optionButton), который позволяет выбрать один из нескольких взаимоисключающих параметров или действий. Наиболее часто используемые свойства элемента управления OptionButton:
value – возвращает True, если переключатель выбран, и False в противном случае;
enabled – допустимые значения: Тrue (пользователь может выбрать переключатель) и False (в противном случае);
visible – допустимые значения: Тrue (переключатель отображается во время выполнения программы) и False (в противном случае);
caption – надпись, отображаемая рядом с переключателем.

Рис. 34. Форма примера 16 в режиме конструктора и рабочем состоянии
Технология выполнения
1. Откройте приложение Word, сохраните документ и перейдите в редактор VBA.
2. Создайте форму (рис. 34).
3. Пропишите обработчики событий кнопок Закрыть и Вычислить.
Объявление глобальных переменных
Dim a, b, c, k, l, m As Double
Создание процедуры Shet
Sub shet()
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
c = Val(TextBox3.Text)
k = a * b + b / c
l = Sin(a) + (b + c) ^ 2
m = a + b + c
End Sub
Кнопка Вычислить
Private Sub CommandButton1_Click()
Call shet
If OptionButton1.Value = True Then
Label5.Caption = «a*b+b/c=» & k
End If
If OptionButton2.Value = True Then
Label5.Caption = «sin(a)+(b+c)^2=» & l
End If
If OptionButton3.Value = True Then
Label5.Caption = «a+b+c=» & m
End If
End Sub
Кнопка Закрыть
Private Sub CommandButton2_Click()
Unload Me
End Sub
4. Откомпилируйте программу.
5. Запустите форму на выполнение.
Пример 17. Создать программу, выполняющую следующее: при вводе имени пользователя, среднего балла и числа пропусков в соответствующие текстовые поля формы:
• если средний балл от 4 до 5, число пропусков меньше 100, то приложение выдает сообщение: «Имя, Вы в поощрительном списке у директора!» (рис. 35);
• если средний балл меньше 4 и число пропусков больше 100, то выдается сообщение: «Имя, Вы еще учитесь здесь?».
При другом раскладе выдумайте свое сообщение.

Рис. 35. Форма примера 17 в рабочем состоянии
Примечание. Можно использовать различные варианты построения данной программы, один из них – использование инструкций If else или Select case.
Пример 18. Создать программу, выполняющую следующее: при вводе имени пользователя, среднего балла студента в текстовые поля формы и выбора числа пропусков:
• если средний балл 5, число пропусков меньше 100, то приложение выдает сообщение: «Имя, Вы молодец! У Вас меньше 100 часов пропуска и … средний балл»;
• если средний балл от 4 до 5 и число пропусков меньше 150, то выдается сообщение: «Имя, хорошо! У Вас меньше 150 часов пропуска и … средний балл» (рис. 36);
• если средний балл от 3 до 4 и число пропусков до 200, то выдается сообщение: «Имя, надо лучше! У Вас до 200 часов пропуска и … средний балл»;
• если средний балл от 2 до 3 и число пропусков больше 200, то выдается сообщение: «Имя, плохо! У Вас больше 200 часов пропуска и … средний балл».
При другом раскладе выдумайте свое сообщение.

Рис. 36. Форма примера 18 в рабочем состоянии
Пример 19. Создать программу, выполняющую следующее: при вводе имени пользователя и возраста в текстовые поля формы, выбора среднего балла и числа пропусков:
• если средний балл 5, число пропусков меньше 100, то приложение выдает сообщение: «Имя, Вы молодец! У Вас меньше 100 часов пропуска, средний балл равен 5, и Вам всего … лет!»;
• если средний балл от 4 до 5, число пропусков меньше 150, то приложение выдает сообщение: «Имя, Вы молодец!
У Вас меньше 150 часов пропуска, средний балл от 4 до 5, и Вам всего … лет!» (рис. 37);
• если средний балл от 3 до 4, число пропусков меньше 200, то приложение выдает сообщение: «Имя, надо лучше! У Вас до 200 часов пропуска и средний балл от 3 до 4, и Вам уже … лет!»;
• если средний балл от 2 до 3, число пропусков больше 200, то приложение выдает сообщение: «Имя, плохо! У Вас больше 200 часов пропуска, средний балл от 2 до 3, и Вам уже … лет!».
Примечание. Предусмотреть выбор переключателей в произвольном порядке и прописать это в коде.
При другом раскладе выдумайте свое сообщение.

Рис. 37. Форма примера 19 в рабочем состоянии
Глава 4
Создание VBA-программ
4.1. Элемент управления ListBox
В данной главе будут анализироваться VBA-программы, создаваемые в приложении Word без вывода результата в документ Word, поэтому программы применимы во всех приложениях пакета MS Office. Рассматриваемые примеры используют весь теоретический материал, рассмотренный в главах 1–3, а также добавляют новые возможности программирования.
Во многих создаваемых приложениях используют возможности массивов. Для доступа к элементам массивов часто применяют элемент управления ListBox. Элемент управления ListBox (список) создается с помощью кнопки Список
(ListBox). Данный элемент нужен для хранения списка значений. Из списка пользователь может выбрать одно или несколько значений, которые в последующем могут использоваться в тексте программы.
Наиболее часто используемые свойства элемента управления ListBox:
ListIndex – возвращает номер текущего элемента списка, нумерация элементов списка начинается с нуля;
Listcount – возвращает число элементов списка;
TopIndex – возвращает элемент списка с наибольшим номером;
columnCount – устанавливает число столбцов в списке;
textcolumn – устанавливает столбец в списке, элемент которого возвращается свойством text;
text – возвращает выбранный в списке элемент;
List (row, column) – возвращает элемент списка, стоящий на пересечении указанных строки и столбца;
RowSourse – устанавливает диапазон, содержащий элементы списка;
ControlCourse – устанавливает диапазон (ячейку), куда возвращается выбранный элемент из списка;
multiSelect – устанавливает способ выбора элементов списка. Допустимые значения:
• fmMultiSelectSingle – выбор только одного элемента;
• fmMultiSelectMulti – разрешен выбор нескольких элементов посредством либо щелчка, либо нажатием клавиши Пробел;
• fmMultiSelectExtended – разрешено использование клавиши shift при выборе ряда последовательных элементов списка;