Розглянемо приклад виконання завдання. Необхідно обчислити значення наступної функції
,
де .
Блок-схема алгоритму для обчислення значень функції z має вигляд, що наведено на мал. 1. Виконувати обчислення за наведеним алгоритмом в Excel зручно за допомогою форми користувача. Форма користувача подібна діалоговому вікну. В поля форми можна вводити значення вхідних змінних, виводити результатів розрахунків, ініціювати таки дії як «виконати обчислення» або «завершити обчислення». Для виконання дій в формі необхідно використовувати кнопки (подібні кнопкам «OK» та «Cancel».
Щоб створити форму користувача в Excel необхідно відкрити вікно редактору VBA. Це можна зробити виконавши команду Сервис=>Макрос=>Редактор Visual Basic (або комбінацією клавіш Alt-F11).
Малюнок 1. Блок-схема алгоритму
Зовнішній вигляд редактору VBA показано на мал. 2. Зліва розташовані панелі проекту (Project) та властивостей (Properties). Якщо вони відсутні, то необхідно їх ввімкнути через пункт меню Вид (View=>Project Explorer Ctrl+R та View=>Properties Window F4). Нову форму користувача можна створити, виконавши команду меню Insert=>UserForm. З’явиться вікно редагування форми. Коли це вікно активне, на екрані відображено також панель елементів Toolbox для форми користувача. (Цю панель можна також вивести на екран командою View=>Toolbox). Активізуйте нову форму користувача і на панелі властивостей задайте такі значення
Таблиця 1
Властивість
Значення
Коментарі
(Name)
DialogForm
Ім’я форми для використання в програмі
Caption
Линейный алгоритм
Заголовок вікна форми
Малюнок 2. Редактор VBA
Перетягніть з панелі елементів Toolbox і розташуйте на формі управляючі елементи, щоб форма набула вигляду як на мал.2. Для цього використовуються такі елементи: Frame – прямокутна рамка з заголовком; Label – надписи “x:”, “y:”, “z:”; TextBox – поля вводу тексту; CommandButton – кнопки. Налаштуйте властивості елементів згідно з таблицею 2.
Таблиця 2
Елемент
Властивість
Значення
Frame
Caption
Входные данные
Frame
Caption
Выходные данные
Label
Caption
x:
Label
Caption
y:
Label
Caption
z:
TextBox
(Name)
xTextBox
TextBox
(Name)
yTextBox
TextBox
(Name)
zTextBox
CommandButton
(Name)
CommandButton1
Caption
Вычислить значение функции
Default
True
CommandButton
(Name)
CommandButton2
Caption
Закрыть диалоговое окно
Cancel
True
Зробіть подвійне клацання лівою кнопкою миші на командній кнопці CommandButton1. Відкриється вікно редагування тексту програми на мові програмування Visual Basic. Введіть підпрограму для обчислення за розробленим раніше алгоритмом. Текст програми має такий вигляд.
Private Sub CommandButton1_Click()
Dim x As Single
x = CSng(xTextBox.Text)
Const a As Single = 0.4
Const Pi As Single = 3.1416
Dim y As Single
Dim z As Single
y = a * Cos(Pi * x) * Sin(Pi * x) * Cos(3 * Pi * x)
z = Sqr(Abs(x ^ 2 + x + 1)) / (x + y) - y ^ 2 * (1 + x)
yTextBox.Text = CStr(y)
zTextBox.Text = CStr(z)
End Sub
Зробіть подвійне клацання лівою кнопкою миші на командній кнопці CommandButton2. Введіть підпрограму для зачинення діалогового вікна
Private Sub CommandButton2_Click()
Hide
End Sub
Щоб вивести на екран форму користувача зробимо підпрограму. Для цього необхідно створити новий модуль. Виконайте команду Insert=>Module. В редакторі коду введіть наступну підпрограму
Public Sub Express()
DialogForm.Show
End Sub
Ця підпрограма може бути викликана безпосередньо з Excel і складається з одного оператору, що виводить форму на екран.
Закрийте редактор Visual Basic. В Excel введіть команду для запуску макроса Сервис=>Макрос=>Макросы. У вікні «Макрос» виберіть макрос Express та натисніть кнопку Выполнить. Відкриється розроблена нами форма користувача, що показана на мал. 3. Введіть значення змінної x та натисніть кнопку «Вычислить значение функции» В полях вихідних значень з’являться обчислені значення функції. Виконайте обчислення для різних значень x. щоб закрити вікно натисніть кнопку «Закрыть диалоговое окно»