Ви, напевно, знайомі з функцією VBA MsgBox. Функція MsgBox, яка приймає аргументи, показані нижче, зручна для відображення інформації та отримання простого введення користувача. Він може отримати введення користувача, оскільки це функція. Як ви, напевно, знаєте, функція повертає значення. У випадку функції MsgBox вона використовує діалогове вікно, щоб отримати значення, яке вона повертає. Продовжуйте читати, щоб побачити, як це працює.
Аргумент |
На що це впливає |
Підказка |
Текст Excel відображається у вікні повідомлення |
Кнопки |
Число, яке вказує, які кнопки (разом із якою піктограмою)
відображаються у вікні повідомлення (необов’язково) |
Назва |
Текст, який з'являється в рядку заголовка вікна повідомлення
(необов'язково) |
Ось спрощена версія синтаксису функції MsgBox:
MsgBox(prompt[, buttons][, title])
Відображення простого вікна повідомлення
Ви можете використовувати функцію MsgBox двома способами:
-
Щоб просто показати користувачеві повідомлення: У цьому випадку вам не важливий результат, який повертає функція.
-
Щоб отримати відповідь від користувача: У цьому випадку ви дбаєте про результат, повернутий функцією. Результат залежить від кнопки, яку натискає користувач.
Якщо ви використовуєте функцію MsgBox окремо, не включайте дужки навколо аргументів. Наступний приклад просто відображає повідомлення і не повертає результат. Коли з’явиться повідомлення, код зупиняється, доки користувач не натисне кнопку OK.
Sub MsgBoxDemo()
MsgBox «Натисніть OK, щоб почати друк».
Аркуші («Результати»). Роздрукувати
Кінець суб
Подивіться нижче, щоб побачити, як виглядає це вікно повідомлення. У цьому випадку друк почнеться, коли користувач натисне кнопку OK. Ви помітили, що неможливо скасувати друк? Продовжуйте читати, щоб дізнатися, як це виправити.
Просте вікно повідомлення.
Отримання відповіді з вікна повідомлення
Якщо ви відображаєте вікно повідомлення, яке містить більше, ніж просто кнопку «ОК», вам, напевно, захочеться знати, яку кнопку натискає користувач. Вам пощастило. Функція MsgBox може повертати значення, яке представляє, яку кнопку було натиснуто. Ви можете призначити результат функції MsgBox змінній.
У наступному коді використовуються деякі вбудовані константи, які полегшують роботу зі значеннями, які повертає MsgBox:
Підручник GetAnswer()
Dim Ans As Long
Відповідь = MsgBox("Почати друк?", vbYesNo)
Виберіть Відповідь регістру
Випадок vbYes
ActiveSheet.PrintOut
Справа vbNo
MsgBox «Друк скасовано»
Вибір кінця
Кінець суб
Постійний |
Значення |
Що воно робить |
vbOKOnly |
0 |
Відображає лише кнопку OK. |
vbOKСкасувати |
1 |
Відображає кнопки ОК і Скасувати. |
vbAbortRetryIgnore |
2 |
Відображає кнопки «Аборт», «Повторити» та «Ігнорувати». |
vbYesNoCancel |
3 |
Відображає кнопки «Так», «Ні» та «Скасувати». |
vbYesNo |
4 |
Відображає кнопки «Так» і «Ні». |
vbПовторитиСкасувати |
5 |
Відображає кнопки Повторити та Скасувати. |
vbCritical |
16 |
Відображає піктограму Критичного повідомлення. |
vbQuestion |
32 |
Відображає піктограму запиту попередження. |
vbВигук |
48 |
Відображає піктограму попереджувального повідомлення. |
vbInformation |
64 |
Відображає піктограму інформаційного повідомлення. |
vbDefaultButton1 |
0 |
Перша кнопка є за замовчуванням. |
vbDefaultButton2 |
256 |
Друга кнопка за замовчуванням. |
vbDefaultButton3 |
512 |
Третя кнопка за замовчуванням. |
vbDefaultButton4 |
768 |
Четверта кнопка є за замовчуванням. |
Подивіться, як це виглядає. Коли ви виконуєте цю процедуру, змінній Ans призначається значення vbYes або vbNo, залежно від того, яку кнопку натисне користувач. Оператор Select Case використовує значення Ans, щоб визначити, яку дію повинен виконати код.
Просте вікно повідомлення з двома кнопками.
Ви також можете використовувати результат функції MsgBox без використання змінної, як демонструє наступний приклад:
Sub GetAnswer2()
Якщо MsgBox("Почати друк?", vbYesNo) = vbYes Тоді
' ...[код, якщо натиснуто Так]...
Інакше
' ...[код, якщо "Так" не натиснуто]...
Кінець Якщо
Кінець суб