4) установить низкую безопасность, так как создаваемая форма не несет никакой угрозы для операционной системы вашего компьютера (рис. 17);
5) закрыть приложение (Word или Excel) и запустить его вновь.
Рассмотрим простейшие примеры работы с циклами.
Все переменные вводятся в текстовые поля формы. При нажатии на кнопку «Результат» происходят выбор действия и вывод полученного значения в специальную метку формы.
Рис. 17. Включение режима низкой безопасности
Технология выполнения
1. Активизируйте приложение Word, сохраните документ под именем Case.
2. Перейдите в редактор VBA и создайте форму (рис. 18).
3. Пропишите обработчик кнопки «Результат».
Dim a, b, c, d As Integer
Private Sub CommandButton1_Click()
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
c = Val(TextBox3.Text)
Select Case a
Case 5
d = b + c
Label4.Caption = «Результат: d=» & d
Case 0
d = – b – c
Label4.Caption = «Результат: d=» & d
Case 10
d = b * c
Label4.Caption = «Результат: d=» & d
Case Else
Label4.Caption = «Введено не то значение»
End Select
End Sub
Рис. 18. Форма примера 5 в режиме конструктора
Для того чтобы программа работала корректно, необходимо перевести все текстовые значения, которые вводятся в текстовые поля, в числовые. Для этого прописывают в коде преобразование: a = Val(TextBox1.Text) и т. д. После чего программа уже работает с числовыми значениями.
Если программа в итоге выдает значение одного типа (числовое или строковое), то строку вывода результата можно прописывать по окончании всего блока Case. В данном примере сначала выводятся числовые значения (d), а затем строковое («Введено не то значение»). Поэтому вывод результата необходимо предусмотреть в каждой ветке Case.
Результаты работы показаны на рис. 19.
Рис. 19. Некоторые результаты работы формы примера 5
Рис. 20. Форма примера 6 в режиме конструктора и в рабочем состоянии
Листинг примера 6
Private Sub CommandButton1_Click()
Dim a, b, c As Integer
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
c = Val(TextBox3.Text)
If a > b And a > c Then
Label1.Caption = «Значение а > b и a >c»
Else
Label1.Caption = «Значение а не всегда больше b и с» End If End Sub
Рис. 21. Форма примера 7 в режиме конструктора и в рабочем состоянии
Листинг примера 7
Dim a As Variant
Dim b As Integer
Dim c As Integer
Private Sub CommandButton1_Click()
a = Val(TextBox1.Text)
For i = 1 To 12 Step 5
b = a + i
c = a + b
Next i
Label1.Caption = a & "+" & b & "=" & c
End Sub
• в метку label2 выдается результат увеличения полученной переменной на значение первого элемента массива;
• в метку label3 выдается результат увеличения полученной суммы на значение второго элемента массива;
• в метку label4 выдается результат увеличения полученной суммы на значение третьего элемента массива;
• в метку label6 выдается результат увеличения полученной суммы на значение последнего элемента массива.