Гъвкавостта на аргумента бутони VBA улеснява персонализирането на вашите кутии за съобщения в Excel. Можете да изберете кои бутони да се показват, да определите дали да се появи икона и да решите кой бутон е по подразбиране (бутонът по подразбиране се „щраква“, ако потребителят натисне Enter).
Можете да използвате вградени константи за аргумента buttons. Ако предпочитате, можете да използвате стойността, а не константа (но използването на вградените константи е много по-лесно).
За да използвате повече от една от тези константи като аргумент, просто ги свържете с + оператор. Например, за да покажете поле за съобщение с бутони Да и Не и удивителна икона, използвайте следния израз като втори аргумент MsgBox:
vbYesNo + vbExclamation
Или, ако предпочитате да направите кода си по-малко разбираем, използвайте стойност 52 (тоест 4 + 48).
Следващият пример използва комбинация от константи за показване на кутия за съобщение с бутон Да и бутон Не (vbYesNo), както и икона на въпросителен знак (vbQuestion). Константата vbDefaultButton2 обозначава втория бутон (Не) като бутон по подразбиране — тоест бутона, който се щраква, ако потребителят натисне Enter. За простота тези константи се присвояват на променливата Config и след това използват Config като втори аргумент във функцията MsgBox:
Под GetAnswer3()
Dim Config As Long
Dim Ans като цяло число
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox(„Обработване на месечния отчет?“, Config)
Ако Ans = vbYes Тогава RunReport
Край под
Вижте полето за съобщения, което Excel показва, когато изпълните процедурата GetAnswer3. Ако потребителят щракне върху бутона Да, рутината изпълнява процедурата, наречена RunReport. Ако потребителят щракне върху бутона Не (или натисне Enter), процедурата завършва без действие. Тъй като аргументът title е пропуснат във функцията MsgBox, Excel използва заглавието по подразбиране, Microsoft Excel.
Аргументът бутони на функцията MsgBox определя какво се появява в полето за съобщение.
Следната рутина предоставя друг пример за използване на функцията MsgBox:
Под GetAnswer4()
Затъмни съобщение като низ, заглавие като низ
Dim Config като цяло число, Ans като цяло число
Msg = „Искате ли да обработите месечния отчет?“
Msg = Msg & vbNewLine & vbNewLine
Msg = Msg & „Обработката на месечния отчет ще“
Msg = Msg & „отнеме приблизително 15 минути. То "
Msg = Msg & „ще генерира отчет от 30 страници за „
Съобщение = Съобщение & „всички търговски офиси за текущата“
Съобщение = Съобщение & „месец“.
Заглавие = „Маркетингова компания XYZ“
Config = vbYesNo + vbQuestion
Отговор = MsgBox(Съобщение, конфигурация, заглавие)
Ако Ans = vbYes Тогава RunReport
Край под
Този пример демонстрира ефективен начин за определяне на по-дълго съобщение в кутия за съобщения. Променлива (Msg) и операторът за конкатенация (&) се използват за изграждане на съобщението в серия от оператори. Константата vbNewLine вмъква знак за прекъсване на ред, който започва нов ред (използвайте я два пъти, за да вмъкнете празен ред). Аргументът title се използва за показване на различно заглавие в полето за съобщения. Ето полето за съобщения, което Excel показва, когато изпълните тази процедура.
Този диалогов прозорец, показван от функцията MsgBox, показва заглавие, икона и два бутона.
Можете да използвате константи (като vbYes и vbNo) за връщаната стойност на функция MsgBox. Ето няколко други константи.
Постоянна |
Стойност |
Какво означава |
vbOK |
1 |
Потребителят щракна върху OK. |
vbCancel |
2 |
Потребителят щракна върху Отказ. |
vbAbort |
3 |
Потребителят щракна върху Прекратяване. |
vbRetry |
4 |
Потребителят щракна повторно. |
vbИгнориране |
5 |
Потребителят щракна върху Игнориране. |
vbДа |
6 |
Потребителят щракна върху Да. |
vbNo |
7 |
Потребителят щракна върху Не. |
И това е почти всичко, което трябва да знаете за функцията MsgBox. Но използвайте кутиите за съобщения с повишено внимание. Обикновено няма причина да се показват кутии за съобщения, които не служат за цел. Например, хората са склонни да се дразнят, когато всеки ден виждат кутия за съобщения, която гласи Добро утро. Благодарим ви, че заредихте работната книга за прогнозиране на бюджета.