- •Vba – (Visual Basic for Application)
- •Структура редактора vba
- •End Sub
- •Зв’язок з даними, розміщеними на робочому листі Microsoft Excel
- •End Sub
- •Таблиця кодів кнопок
- •Лабораторна робота №9
- •Основи мови vba
- •Оператори мови vba
- •Розрахунок контрольного прикладу в Excel
- •Розрахунок контрольного прикладу в Excel
- •Теоретичні відомості та основні поняття об’єктно-орієнтованого та візуального програмування
- •Задача про обмін валют
- •Циклічні алгоритми
- •Знаходження суми та добутку
End Sub
Отже, в процедурі MsgBox є обов’язковим лише перший параметр, інші необов’язкові.
Процедура MsgBox зручна для виводу тієї чи іншої інформації. Однак, якщо необхідно дізнатись, який вибір зробив користувач при натисненні кнопок з діалогового вікна, то процедуру MsgBox треба використовувати як функцію. В цьому випадку значення, яке повертає MsgBox треба присвоїти якійсь змінній, а її параметри треба взяти в дужки. Отже, MsgBox може бути використана як функція і тоді вона повертає значення коду натиснутої кнопки.
З вищесказаного випливає, що результатом виконання функції MsgBox є коди натиснутих кнопок.
Таблиця кодів кнопок
Константа |
Значення |
Натиснута кнопка |
VbOK VbCancel VbAbort VbRetry VbIgnore VbYes VbNo |
1 2 3 4 5 6 7 |
ОК Отмена (Cancel) Прервать (Abort) Повторить (Retry) Пропустить (Ignore) Да (Yes) Нет (No) |
Приклад. Записати у вікно повідомлень один з кодів натиснутих кнопок : Да, Нет, Отмена.
Створимо вікно повідомлень, в якому будуть 3 кнопки: Да, Нет, Отмена і активною другою кнопкою
Public Sub MyFirstProgram()
MsgBox "", vbYesNoCancel + vbDefaultButton2
End Sub
Використаємо MsgBox як функцію, яка повертатиме код натиснутої кнопки з діалогового вікна
Public Sub MyFirstProgram()
a = MsgBox("", vbYesNoCancel + vbDefaultButton2)
If a = 6 Then MsgBox "6"
If a = 7 Then MsgBox "7"
If a = 2 Then MsgBox "2"
End Sub
Приклад. Розглянемо наступну програму, яка записує на робочий лист Excel Лист1 в комірку (2, 2) текст “Hello Word”.
Public Sub MySecondProgram()
Worksheets("Лист1").Cells(2, 2) = "Hello Word"
End Sub
Приклад. Прочитати з листа Excel з комірки (3, 3) число і записати його в MsgBox.
Public Sub MyNextProgram()
a = Worksheets("Лист1").Cells(3, 3)
MsgBox Str(a)
End Sub
Примітка. Оскільки перший параметр в MsgBox має тип рядковий, щоб побачити число, яке записане на робочому листі в комірці (3, 3), необхідно перетворити його в рядок. Для цього використовуємо функцію Str, яка детально буде описана нижче.
Приклад. Прочитати з листа Excel з комірок (3, 3), (4, 3), (5, 3) числа і записати їх в MsgBox.
Public Sub MyNextProgram()
a = Worksheets("Лист1").Cells(3, 3)
b = Worksheets("Лист1").Cells(3, 4)
c = Worksheets("Лист1").Cells(3, 5)
MsgBox Str(a) + Chr(13) + Str(b) + Chr(13) + Str(c) + Chr(13)
End Sub
Примітка. Для того, щоб кожне число у вікні повідомлень MsgBox записувалось з нового рядка, було використано функцію Chr(13), яка діє аналогічно клавіші ENTER.
Str(Number) − Повертає значення типу Variant (String), тобто число перетворює в текст. Функція Str обов’язково виділяє позицію для знака, якщо число додатне – ставиться прогалина, якщо від’ємне – ставиться мінус.
Параметри процедури Sub пишуться без дужок, а процедури Function – у дужках.
Функція InputBox
Функція Inputbox виводить на екран діалогове вікно, що містить повідомлення і поле вводу, дві кнопки ОК і Cancel. Встановлює режим очікування вводу тексту користувачем і натиснення кнопки, а потім повертає значення типу String по натисненню кнопки ОК, яке містить текст, введений в поле вводу. Отже, Inputbox завжди повертає текст. Щоб зробити з нього число, необхідно скористатись функціями str() або cstr(), якщо необхідно вивести дату – cdata().
Синтаксис:
Inputbox(Prompt, Title, Default, xPos, yPos, Helpfile, Context)
Promp – рядок, який відображається як повідомлення в діалоговому вікні. Рядковий вираз Promp може містити декілька рядків. Для розділу рядків допускається використання символу повернення каретки Chr(13), символу переводу рядка Chr(10), або комбінації цих символів Chr(13) & Chr(10), де &- конкатенація (зчеплення) рядків. (Замість знаку & допускається використання знаку + ).
Title – рядок, який відображається в рядку заголовка діалогового вікна. Якщо цей параметр опущений, то в рядок заголовку поміщається ім’я додатку.
Default – рядок (підказка), який відображається в полі вводу. Він буде використаний за замовчуванням, якщо користувач не введе інший рядок. Якщо цей параметр опущений, то поле вводу відображається пустим.
xPos, yPos – координати вікна повідомлень на екрані.
Helpfile і Context – довідка.
Перші три парамерти є обов’язковими.
Приклад.
Public Sub MyNextProgram()
a = InputBox("Введіть значення", "Ольга", 10)
End Sub