Большинство объектов, которые созданы, уже «знают», как работать после запуска программы, и готовы к приему данных от пользователя. Внутренняя функциональность создаваемых объектов – одна из мощнейших особенностей VBA.
В разрабатываемой программе необходим код, который будет вычислять значение выражения по определенной формуле с помощью вводимых пользователем чисел и отображать результат вычислений.
Вычислительная логика может быть встроена в приложение только с помощью программного кода, который точно определяет, что именно должна делать программа на каждом этапе работы. Программа управляется кнопками <Вычислить> и <END> (Конец), поэтому программный код будет связан с информацией, поступающей от этих кнопок.
Для работы с программным кодом командной кнопки нужно дважды по ней щелкнуть мышью. Например, щелкнем по кнопке <END> на форме. После этого появляется окно «Cod» (Код), изображенное на рисунке 30.
Рисунок 30 – Вид окна «Код»
Блок кода, связанный с частным объектом интерфейса, называется процедурой события VBA. Тело процедуры заключено между операторами, указывающими на начало и конец подпрограммы.
Private Sub CommandButton2_Click()
End Sub
Операторы тела и процедуры выполняются каждый раз, когда пользователь активизирует элемент интерфейса, ассоциированный с процедурой. В данном случае событием является щелчок мыши (Click), но могут быть и события другого типа. (Их можно увидеть в ниспадающем списке, щелкнув по стрелке правее надписи Click).
Разработаем программный код для кнопок <Вычислить> и <END>.
1 Открыть список объектов в окне «Code». Все объекты интерфейса Вычислить появятся в списке, как показано на рисунке 31.
Рисунок 31 – Вид списка объектов
2 Щелкнуть по строке CommandButton1 в списке. Появится «пустая» процедура, связанная с кнопкой <CommandButton1>.
Несмотря на то, что название кнопки было изменено на <Вычислить>, в программе ее имя осталось прежним.
Следует иметь в виду, что у каждого объекта интерфейса может быть несколько ассоциированных с ним процедур – по одной для каждого связанного с этим объектом события. В данном случае для кнопки <CommandButton1> задано только одно событие – щелчок мышью.
3 Набрать следующие программные строки:
Private Sub CommandButton1_Click()
Dim A, B, X, z1, z2, z3 As Single
A = Val(TextBox1.Text)
B = Val(TextBox2.Text)
X = Val(TextBox3.Text)
z1 = Abs(Log(X) / Log(10)) - Sqr(Abs(Cos(X) - Exp(X)))
z2 = Abs(Tan(Abs(A * X - B)) / Sin(Abs(X)) + B)
z3 = Atn(z2 / Sqr(Abs(1 - z2 ^ 2)))
Label1.Caption = Log(Abs(z1 * z3))
End Sub
Примечание. Функция Val преобразует текстовый аргумент в числовое значение (по умолчанию данные, введенные в текстовое поле, представляются как обычный текст).
4 Дважды щелкнуть мышью по командной кнопке <END> на форме (или выбрать строку Command2 в окне «Code».
5 Набрать программную строку процедуры, связанной с кнопкой <CommandButton2>. В данном случае это один оператор End. Он используется для останова программы и удаления ее с экрана (рисунок 32).
Рисунок 32 – Программный код, связанный с командной кнопкой 1 и 2