- •Тема 12. Основи офісного програмування
- •End If
- •End If
- •End If
- •End If
- •11.5. Програмування розгалужених обчислювальних процесів з використанням оператора If
- •[Case Else
- •End Select
- •11.7. Програмування розгалужених обчислювальних процесів з використанням оператора Select Case
- •11.9. Програмування циклічних обчислювальних процесів з використанням оператора For … Next
- •11.11. Програмування циклічних обчислювальних процесів з використанням оператора Do … Loop
- •Контрольні питання
Тема 12. Основи офісного програмування
Лекція 11. Оператори мови VBA та програмування типових обчислювальних процесів
11.1. Оператор присвоєння
Оператор присвоєння має такий формат: А = В,
де А – проста змінна, елемент масиву або властивість об’єкту;
В – константа, змінна або вираз, значення якого присвоюється елементу А.
Таким чином, наведений вище формат означає: елементу А присвоїти значення елементу В.
Приклади операторів присвоєння:
V = Pi * R^2 * H
I = I + 1
A(3, 4) = 12.5;
Workbooks(“Книга 1”).Worksheets(“Лист 2”).Cells(1,5) = -8,9
Range(“D5”).Formula = “=D2+D3”
theFilename = “C:\VBA\Examples\Examp.xls”
У більшості випадків елементи А та В у форматі оператора присвоєння повинні бути одного і того ж типу. З метою перетворення даних з одного типу в інший можна використати функції перетворення типів, наведені у табл.11.1.
Таблиця 11.1. Функції перетворення типів
№ з/п |
Функція |
Що виконує функція |
1 |
СBool(аргумент) |
Перетворює аргумент в тип Boolean |
2 |
СCur(аргумент) |
Перетворює аргумент в тип Currency |
3 |
СDate(аргумент) |
Перетворює аргумент в тип Date |
4 |
СDbl(аргумент) |
Перетворює аргумент в тип Double |
5 |
СInt(аргумент) |
Перетворює аргумент в тип Integer |
6 |
СLng(аргумент) |
Перетворює аргумент в тип Long |
7 |
СSng(аргумент) |
Перетворює аргумент в тип Single |
8 |
СStr(аргумент) |
Перетворює аргумент в тип String |
9 |
СVar(аргумент) |
Перетворює аргумент в тип Variant |
10 |
СVErr(аргумент) |
Перетворює аргумент в номер помилки |
Використовуючи функції перетворення типів, варто слідкувати за тим, щоб таке перетворення мало смисл. Наприклад, дадуть результати функції СSng(7), СSng(“45,34”), СSng(False), але функція СSng(“Луцьк”), СSng(“-54, Б33”) позбавлені смислу.
11.2. Програмування лінійних обчислювальних процесів
Формулювання задачі. Скласти підпрограму розв’язування такої задачі. Дано: R- радіус основи прямого кругового циліндра; H-радіус основи прямого кругового циліндра . Обчислити: площу бічної поверхні прямого кругового циліндра площу повної поверхні прямого кругового циліндраоб’єм прямого кругового циліндра
Нижче наведені форма та програмний код розв’язування даної задачі.
Private Sub CommandButton1_Click()
'Завдання. Дано радіус основи та висоту прямого
'кругового циліндра.
'Необхідно обчислити:
'Площу бічної поверхні циліндра SB: SB=2*PI*R*H;
'Площу повної поверхні циліндра SP: SP=SB+2*PI*R^2;
'Об'єм циліндра V: V=PI*R^2*H.
Const PI As Single = 3.14159
Dim R, h, SB, SP, V As Single
R = Val(InputBox("Введіть радіус основи циліндра R!"))
h = Val(InputBox("Введіть висоту циліндра H!"))
SB = 2 * PI * R * h
SP = SB + 2 * PI * R ^ 2
V = PI * R ^ 2 * h
MsgBox "Площа бічної поверхні циліндра SB: SB= " & _
Format(SB, "0000.00")
MsgBox "Площа повної поверхні циліндра SP: SP=" & _
Format(SP, "0000.00")
MsgBox "Об'єм циліндра V: V=" & Format(V, "0000.00")
TextBox1.Text = TextBox1.Text _
+ "Радіус основи прямого кругового циліндра R=" + _
Format(R, "0000.00") + vbCr
TextBox1.Text = TextBox1.Text _
+ "Висота прямого кругового циліндра H" + _
Format(h, "0000.00") + vbCr
TextBox2.Text = TextBox2.Text _
+ "Площа бічної поверхні циліндра SB: SB=" + _
Format(SB, "0000.00") + vbCr
TextBox2.Text = TextBox2.Text _
+ "Площа повної поверхні циліндра SP: SP=" + _
Format(SP, "0000.00") + vbCr
TextBox2.Text = TextBox2.Text _
+ "Об'єм циліндра V: V=" + Format(V, "0000.00") + vbCr
End Sub
Private Sub CommandButton2_Click()
TextBox1.Text = ""
TextBox2.Text = ""
End Sub
Private Sub CommandButton3_Click()
End
End Sub
11.3. Логічні операції та логічні вирази
У мові VBA використовують такі логічні операції (табл.11.3):
Таблиця 11.2. Логічні операції мови VBA
Функція |
Назва функції |
Not |
Заперечення або інверсія |
And |
Логічне „І” або множення |
Or |
Логічне „АБО” або додавання |
Хоr |
Виключне логічне „АБО” |
Imp |
Імплікація |
Eqv |
Еквівалентність |
Результати виконання логічних операцій наведені у табл.11.3.
Таблиця 11.3. Таблиця істинності для логічних операцій (Т-true,F-false)
Значення аргументів А та В |
Значення логічних функцій | ||||||
А |
В |
Not А |
А And В |
А Or В |
А Хоr В |
А Imp В |
А Eqv В |
T |
T |
F |
T |
T |
F |
T |
T |
F |
T |
T |
F |
T |
T |
T |
F |
T |
F |
F |
F |
T |
T |
F |
F |
F |
F |
T |
F |
F |
F |
T |
T |
Операція Notповертає логічну величину, протилежну даній.
Операція AndповертаєTrue лише тоді, коли обидва операндидорівнюютьTrue.
Операція OrповертаєFalse лише тоді,коли обидва операндидорівнюютьFalse.
Операція ХоrповертаєTrue, якщо один із операндівдорівнюєTrue, але не обидва одночасно.
Операція EqvповертаєTrue, якщо обидва операндимають однакові значення.
Операція Imp повертає значенняFalseлише тоді, коли перший операндмає значенняTrue, а другийFalse.
11.4. Умовний оператор альтернативиIf … Then … Else.