Да Не Оквир за поруке (Мсгбок) - Примери ВБА кода

Овај водич ће покрити како користити функцију ВБА МсгБок за приказивање оквира за поруке корисницима (укључујући ИесНо оквир за поруке). Можда ће вас занимати и наш чланак о ИнпутБокима.

ВБА МсгБок функција

У ВБА -у је лако приказати једноставан МсгБок:

1 МсгБок "Ово је оквир за поруке"

Међутим, можете учинити много више од приказивања једноставног ОК оквира за поруке. Погледајмо брзо компликовани пример пре него што уђемо у специфичности …

ВБА ДаНе Оквир за поруке

Испод ћемо створити оквир за поруке са:

  • Наслов „Наслов оквира за поруке“ и упит „Текст“
  • Икона упитника
  • Да / Не опције уместо једноставног „ОК“
  • Подразумевано дугме = „Не“
123 Затамњен одговор Као цео бројансвер = МсгБок ("Текст", вбКуестион + вбДаНе + вбДефаултБуттон2, "Наслов оквира за поруке")

Оквир за поруке ће вратити вбИес или вбНо у зависности од избора корисника. Затим можете извршити различите радње на основу избора:

12345 Ако је одговор = вбДаМсгБок "Да"ИначеМсгБок "Не"Крај Ако

У следећем одељку ћемо вам показати све опције које су вам доступне при креирању оквира за поруке. Затим ћемо вас упознати са синтаксом функције МсгБок и на крају прећи на друге примере оквира за поруке.

Опције ВБА оквира за поруке

Погледајте слику испод. Овде ћете видети (скоро) све опције које су вам доступне при креирању оквира за поруке. Обратите пажњу на иконе и различита дугмад.

Ово је снимак екрана „МессагеБок Буилдер-а“ из нашег Премиум ВБА додатка: АутоМацро. МессагеБок Буилдер вам омогућава да брзо дизајнирате жељено сандуче за поруке и уметнете код у свој кодни модул. Садржи и многе друге програмере кодова, опсежну библиотеку ВБА кодова и асортиман алата за кодирање. То мора имати сваки ВБА програмер.

Синтакса функције МсгБок

МсгБок (одзивник [, дугмад] [, наслов] [, датотека помоћи, контекст])

промпт (обавезно) - Ово је примарни текст оквира за поруке.

дугмад - Одаберите која ће се дугмад приказивати. Ако је изостављено, „У реду“. Овде такође можете одредити коју икону да прикажете и подразумевано дугме.

наслов - Наслов на врху оквира за поруку. Ако је изостављено, приказује се назив тренутне апликације (нпр. Мицрософт Екцел).

хелпфиле - Наведите датотеку помоћи којој се може приступити када корисник кликне на дугме „Помоћ“. Ако је наведено, морате додати и контекст (испод)

контекст - Нумерички израз који представља број контекста помоћи додељен одговарајућој теми помоћи.

Вероватно можете занемарити датотеку помоћи и аргументе контекста. Никада их нисам видео да се користе.

Прилагодите наслов оквира и оквир оквира за поруке

Функција МсгБок вам омогућава да прилагодите наслов и поруке упита на следећи начин:

1 Мсгбок "Промпт" ,, "Титле"

Други пример:

123 Суб МсгБокПромптТитле ()МсгБок "Корак 1 је завршен. Притисните ОК да бисте покренули корак 2." ,, "Корак 1 од 5"Енд Суб

Важно! Морате запамтити да свој текст окружите цитатима.

МессагеБок ЛинеБреакс

Такође можете да додате преломе редова у одзиве оквира за поруке са „вбНевЛине“.

123 Суб МсгБокПромптТитле_НевЛине ()МсгБок "Корак 1 је довршен." & вбНевЛине & "Кликните на ОК да бисте покренули 2. корак", "Корак 1 од 5"Енд Суб

Приметите да користимо симбол & за спајање текста. Можете сазнати више о употреби & са текстом и другим опцијама за уметање прелома редова у нашем чланку о спајању текста.

МсгБок Ицонс

ВБА вам даје могућност да додате једну од четири унапред изграђене иконе у своје оквире за поруке:

Ицон Цонстант Ицон
вбИнформатион
вбЦритицал
вбКуестион
вбЕкцламатион

Константа иконе треба да се стави у аргумент дугмета:

123 Суб МсгБокКуестионИцон ()МсгБок "Пример питања", вбКуестионЕнд Суб

Ово ће генерисати подразумевано поље за поруку „ОК“ са иконом питања:

Обратите пажњу на то како ће вам ВБА Едитор при куцању показати опције које су вам доступне:

Ово је корисно јер не морате да се сећате тачне синтаксе или назива икона или дугмади.

Сада ћемо демонстрирати сваку икону оквира за поруке:

Иконе мсгБок - информације

123 Суб МсгБокИнформатионИцон ()МсгБок "Информациони пример", вбИнформатионЕнд Суб

Иконе мсгБок - критичне

123 Суб МсгБокЦритицалИцон ()МсгБок "Критични пример", вбЦритицалЕнд Суб

Иконе МсгБок - Питање

123 Суб МсгБокКуестионИцон ()МсгБок "Пример питања", вбКуестионЕнд Суб

Иконе мсгБок - Усклик

123 Суб МсгБокЕкцламатионИцон ()МсгБок "Пример узвика", вбЕкцламатионЕнд Суб

У наставку ћемо говорити о генерисању оквира за поруке са различитим распоредом дугмади. Ако ипак изаберете други тип оквира за поруке, мораћете да додате тип иконе после дугмади помоћу „+“:

123 Суб МсгБокКуестионИцон ()МсгБок "Желите ли да наставите?", ВбОКЦанцел + вбКуестионЕнд Суб

МсгБок Вариаблес

До сада смо радили првенствено са подразумеваним оквиром за поруку „ОК“. Оквир за поруку ОК има само једну опцију: Притиском на „ОК“ омогућава се наставак кода. Међутим, можете одредити и друге групе дугмади: ОК / Откажи, Да / Не итд.

У том случају ћете желети да извршите различите радње на основу тога које дугме је притиснуто. Погледајмо пример.

Ево оквира за поруку који ћемо генерисати:

Ово је цео код (даље ћемо га разбити):

123456789101112 Суб МсгБокВариабле ()Затамњен одговор Као цео бројансвер = МсгБок ("Желите ли да наставите?", вбКуестион + вбДаНе)Ако је одговор = вбДаМсгБок "Да"ИначеМсгБок "Не"Крај АкоЕнд Суб

Прво додељујемо излаз оквира за поруке целобројној променљивој.

123 Затамњен одговор Као цео бројансвер = МсгБок ("Желите ли да наставите?", вбКуестион + вбДаНе)

Затим користимо Иф-Елсе да одредимо шта да радимо на основу притиска на дугме:

12345 Ако је одговор = вбДаМсгБок "Да"ИначеМсгБок "Не"Крај Ако

Функција МсгБок враћа целобројну вредност (између 1-7) па дефинишемо променљиву као целобројни тип. Међутим, уместо позивања на цео број, можете се позвати на константу (нпр. ВбОК, вбЦанцел, итд.). Погледајте ову табелу да бисте видели све опције:

Дугме Цонстант Вредност
У реду вбОК 1
Поништити, отказати вбЦанцел 2
Прекид вбАборт 3
Покушај поново вбРетри 4
Игнориши вбИгноре 5
да вбДа 6
Не вбНо 7

Сада ћемо демонстрирати свако груписање дугмади:

ОК оквир за поруке - вбОКОнли

Ово је стандардно ВБА сандуче за поруке.

123456 Суб МсгБок_ОКОнли ()Затамњен одговор Као цео бројансвер = МсгБок ("У реду само пример", вбОКОнли)Енд Суб

ОК Откажи оквир за поруке - вбОКОдустани

123456789101112 Суб МсгБок_ОКОдустани ()Затамњен одговор Као цео бројансвер = МсгБок ("ОК Откажи пример", вбОКЦанцел)Ако је одговор = вбОК ОндаМСБок "ОК"ИначеМсгБок "Откажи"Крај АкоЕнд Суб

Да Не Оквир за поруке - вбДаНе

123456789101112 Под МсгБок_Да Не ()Затамњен одговор Као цео бројансвер = МсгБок ("Да Не Пример", вбИесНо)Ако је одговор = вбДаМсгБок "Да"ИначеМсгБок "Не"Крај АкоЕнд Суб

Да Не Откажи оквир за поруку - вбИесНоЦанцел

1234567891011121314 Суб МсгБок_ИесНоЦанцел ()Затамњен одговор Као цео бројансвер = МсгБок ("Да Не Откажи пример", вбИесНоЦанцел)Ако је одговор = вбДаМсгБок "Да"У супротном случају = вбНо ОндаМсгБок "Не"ИначеМсгБок "Откажи"Крај АкоЕнд Суб

Оквир за поруку Прекини поновно покушај игнорисања - вбАбортРетриИгноре

1234567891011121314 Суб МсгБок_АбортРетриИгноре ()Затамњен одговор Као цео бројансвер = МсгБок ("Пример прекида игнорисања поновног покушаја", вбАбортРетриИгноре)Ако је одговор = вбАборт ТадаМСБок "Прекини"У супротном случају = вбРетри ЗатимМсгБок "Покушај поново"ИначеМсгБок "Игнориши"Крај АкоЕнд Суб

Покушај поново Откажи оквир за поруку - вбРетриЦанцел

123456789101112 Суб МсгБок_РетриЦанцел ()Затамњен одговор Као цео бројансвер = МсгБок ("Пример поновног отказивања", вбРетриЦанцел)Ако је одговор = вбРетри ОндаМсгБок "Покушај поново"ИначеМсгБок "Откажи"Крај АкоЕнд Суб

Примери ВБА МессагеБок -а

Потврда оквира за поруке пре покретања макроа

Овај код ће приказати оквир Да са поруком пре него што позовете макро. Ако се кликне на Да, макро се позива, ако се кликне на Не, Макро се не покреће.

12345678 Суб Мсгбок_БефореРуннинг ()Затамњен одговор Као цео бројансвер = МсгБок ("Да ли желите да покренете Мацро1?", вбКуестион + вбДаНе)Ако је одговор = вбДа, тада позовите Макро1Енд Суб

Да / Не Оквир за поруке - изађите из подм

Овде ћемо потврдити са корисником да ли да настави са покретањем макроа. Ако се кликне на Не, код ће изаћи из подметре, у супротном ће се поступак наставити.

12345678910 Суб Мсгбок_БефореРуннинг ()Затамњен одговор Као цео бројансвер = МсгБок ("Желите ли да наставите?", вбКуестион + вбДаНе)Ако је одговор = вбНо Затим изађите из подм'Неки кодЕнд Суб

ВБА оквир за поруке у програму Аццесс ВБА

Сви горе наведени примери раде потпуно исто у Аццесс ВБА као и у Екцел ВБА.

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave