Екцел ВБА МсгБок (оквир за поруке) - све што треба да знате!

У Екцел ВБА можете користити функцију МсгБок за приказ оквира за поруку (као што је приказано испод):

МсгБок није ништа друго до оквир за дијалог који можете користити за информисање корисника приказивањем прилагођене поруке или за добијање неких основних уноса (попут Да/Не или ОК/Откажи).

Док се приказује дијалог МсгБок, ваш ВБА код је заустављен. Морате да притиснете било које дугме у МсгБок -у да бисте покренули преостали ВБА код.

Напомена: У овом водичу ћу користити речи оквир за поруке и МсгБок наизменично. Када радите са Екцел ВБА, увек морате да користите МсгБок.

Анатомија ВБА МсгБок -а у Екцелу

Оквир за поруке има следеће делове:

  1. Титле: Ово се обично користи за приказ о чему се ради у оквиру за поруку. Ако ништа не наведете, приказује се назив апликације - што је у овом случају Мицрософт Екцел.
  2. Промпт: Ово је порука коју желите приказати. Овај простор можете користити да напишете неколико редова или чак прикажете табеле/податке овде.
  3. Дугмад (и): Док је ОК подразумевано дугме, можете га прилагодити тако да приказује дугмад попут Да/Не, Да/Не/Откажи, Покушај поново/Занемари итд.
  4. Икона затварања: Можете затворити оквир за поруку кликом на икону за затварање.

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

Као што сам споменуо, МсгБок је функција и има синтаксу сличну другим ВБА функцијама.

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

  • промпт - Ово је неопходан аргумент. Приказује поруку коју видите у МсгБок -у. У нашем примеру, текст „Ово је узорак МсгБок -а“ је „упит“. У упиту можете користити до 1024 знака, а можете га користити и за приказ вредности променљивих. У случају да желите да прикажете упит који има више редова, то можете учинити и ви (више о томе касније у овом водичу).
  • [дугмад] - Одређује која се дугмад и иконе приказују у МсгБок -у. На пример, ако користим вбОкОнли, приказаће се само дугме ОК, а ако користим вбОКЦанцел, показаће се и дугмад ОК и Откажи. Касније у овом водичу ћу покрити различите врсте дугмади.
  • [наслов] - Овде можете да наведете који наслов желите у дијалогу за поруку. Ово је приказано у насловној траци МсгБок -а. Ако ништа не наведете, приказаће се назив апликације.
  • [датотека помоћи] - Можете одредити датотеку помоћи којој се може приступити када корисник кликне на дугме Помоћ. Дугме за помоћ ће се појавити само ако за њега користите код дугмета. Ако користите датотеку помоћи, такође морате навести аргумент контекста.
  • [контекст] - То је нумерички израз који је број контекста помоћи додељен одговарајућој теми помоћи.

Ако сте тек почели да користите концепт Мсгбок -а, занемарите аргументе [датотека помоћи] и [контекст]. Ретко сам видео да се ови користе.

Напомена: Сви аргументи у углатим заградама су опционални. Само аргумент „брз“ је обавезан.

Константе дугмета Екцел ВБА МсгБок (примери)

У овом одељку ћу покрити различите врсте дугмади које можете користити са ВБА МсгБок -ом.

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

Буттон Цонстант Опис
вбОКОнли Приказује само дугме ОК
вбОКЦанцел Приказује дугмад ОК и Цанцел
вбАбортРетриИгноре Приказује дугмад Прекини, Покушај поново и Занемари
вбИесНо Приказује дугмад Да и Не
вбИесНоЦанцел Приказује дугмад Да, Не и Откажи
вбРетриЦанцел Приказује дугмад Понови и Откажи
вбМсгБокХелпБуттон Приказује дугме Помоћ. Да би ово функционисало, морате користити аргументе помоћи и контекста у функцији МсгБок
вбДефаултБуттон1 Прво дугме чини подразумеваним. Можете променити број да бисте променили подразумевано дугме. На пример, вбДефаултБуттон2 чини друго дугме подразумеваним

Напомена: Док пролазите кроз примере стварања различитих дугмади, можда ћете се запитати која је сврха имати ова дугмад ако немају утицаја на код.

То јесте! На основу избора, можете кодирати шта желите да код ради. На пример, ако изаберете У реду, код би требало да се настави, а ако притиснете Одустани, код би требало да престане. То се може урадити коришћењем променљивих и додељивањем вредности оквира за поруке променљивој. О томе ћемо говорити у каснијим одељцима овог водича.

Хајде сада да погледамо неке примере како се различита дугмад могу приказати у МсгБок -у и како то изгледа.

Дугмад МсгБок - вбОКОнли (подразумевано)

Ако користите само упит и не наведете ниједан аргумент, добићете подразумевано поље за поруку као што је приказано испод:

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

Подразумевано ПодразумеваноМсгБок () МсгБок "Ово је оквир за пример" Енд Суб

Имајте на уму да текстуални низ мора бити у двоструким наводницима.

Такође можете да користите константу дугмета вбОКОнли, али чак и ако ништа не наведете, она се узима као подразумевана.

Дугмад за поруке - ОК & Откажи

Ако желите само да прикажете ОК и дугме Откажи, морате да користите константу вбОКЦанцел.

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

Дугмад МсгБок - Прекини, Покушај поново и Занемари

Можете да користите константу „вбАбортРетриИгноре“ да бисте приказали дугмад Прекини, Поново покушај и Занемари.

Суб МсгБокАбортРетриИгноре () МсгБок "Шта желите да урадите?", ВбАбортРетриИгноре Енд Суб

Дугмад МсгБок - Да и Не

Можете користити константу „вбИесНо“ да прикажете дугмад Да и Не.

Суб МсгБокИесНо () МсгБок "Требамо ли стати?", ВбИесНо Енд Суб

Дугмад МсгБок - Да, Не и Откажи

Помоћу константе „вбИесНоЦанцел“ можете приказати дугмад Да, Не и Откажи.

Суб МсгБокИесНоЦанцел () МсгБок "Треба ли да престанемо?", ВбИесНоЦанцел Енд Суб

Дугмад МсгБок - Покушајте поново и откажите

Помоћу константе „вбРетриЦанцел“ можете приказати дугмад Понови и Откажи.

Суб МсгБокРетриЦанцел () МсгБок "Шта желите следеће да урадите?", ВбРетриЦанцел Енд Суб

Дугмад МсгБок - Дугме за помоћ

За приказ дугмета за помоћ можете користити константу „вбМсгБокХелпБуттон“. Можете га користити са другим константама дугмади.

Суб МсгБокРетриХелп () МсгБок "Шта желите следеће да урадите?", ВбРетриЦанцел + вбМсгБокХелпБуттон Енд Суб

Имајте на уму да смо у овом коду комбиновали две различите константе дугмета (вбРетриЦанцел + вбМсгБокХелпБуттон). Први део приказује дугмад Понови и Откажи, а други део приказује дугме Помоћ.

Дугмад МсгБок - Подешавање подразумеваног дугмета

Можете користити константу „вбДефаултБуттон1“ да поставите прво дугме као подразумевано. То значи да је дугме већ изабрано и ако притиснете ентер, извршава то дугме.

Испод је код који ће друго дугме (дугме „Не“) поставити као подразумевано.

Суб МсгБокОКЦанцел () МсгБок "Шта желите да урадите следеће?", ВбИесНоЦанцел + вбДефаултБуттон2 Енд Суб

У већини случајева крајње лево дугме је подразумевано дугме. Можете изабрати друга дугмад користећи вбДефаултБуттон2, вбДефаултБуттон3 и вбДефаултБуттон4.

Екцел ВБА МсгБок иконе Константе (примери)

Осим дугмади, можете прилагодити и иконе које се приказују у дијалогу МсгБок. На пример, можете имати црвену критичну икону или плаву икону информација.

Испод је табела која приказује код који ће приказати одговарајућу икону.

Ицон Цонстант Опис
вбЦритицал Приказује икону критичне поруке
вбКуестион Приказује икону питања
вбЕкцламатион Приказује икону поруке упозорења
вбИнформатион Приказује икону информација

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

Ако желите да прикажете критичну икону у свом МсгБок -у, користите константу вбЦритицал. Ово можете користити заједно са другим константама дугмади (стављањем знака + између кодова).

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

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

Ако желите да прикажете критичну икону помоћу дугмади Да и Не, користите следећи код:

Суб МсгБокЦритицалИцон () МсгБок "Ово је оквир за пример", вбИесНо + вбЦритицал Енд Суб

Иконе мсгБок - питање

Ако желите да прикажете критичну икону у свом МсгБок -у, користите константу вбКуестион.

Суб МсгБокКуестионИцон () МсгБок "Ово је оквир за пример", вбИесНо + вбКуестион Енд Суб

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

Ако желите да прикажете икону узвичника у свом МсгБок -у, користите константу вбЕкцламатион.

Суб МсгБокЕкцламатионИцон () МсгБок "Ово је оквир за пример", вбИесНо + вбЕкцламатион Енд Суб

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

Ако желите да прикажете икону информација у свом МсгБок -у, користите константу вбИнформатион.

Суб МсгБокИнформатионИцон () МсгБок "Ово је оквир за узорке", вбИесНо + вбИнформатион Енд Суб

Прилагођавање наслова и упита у МсгБок -у

Када користите МсгБок, можете прилагодити наслов и поруке упита.

До сада је у примеру који смо видели користили Мицрософт Екцел као наслов. У случају да не наведете аргумент наслова, МсгБок аутоматски користи наслов апликације (што је у овом случају био Мицрософт Екцел).

Наслов можете прилагодити тако што ћете га навести у коду као што је приказано испод:

Суб МсгБокИнформатионИцон () МсгБок "Да ли желите да наставите?", ВбИесНо + вбКуестион, "Корак 1 од 3" Крај под

Слично томе, можете и да прилагодите поруку упита.

Такође можете да додате преломе редова у поруку са одзивом.

У доњем коду додао сам прелом редова користећи „вбНевЛине“.

Суб МсгБокИнформатионИцон () МсгБок "Желите ли да наставите?" & вбНевЛине & "Притисните Да за наставак", вбДаНе + вбКуестион, "Корак 1 од 3" Заврши под

Такође можете да користите знак за враћање носача - Цхр (13) - или унос реда - Цхр (10) да бисте уметнули нови ред у поруку са захтевом.

Имајте на уму да можете само да додате нови ред у поруку са захтевом, а не и наслов.

Додела МсгБок вредности променљивој

До сада смо видели примере где смо креирали оквире за поруке и прилагодили дугмад, иконе, наслов и одзив.

Међутим, клик на дугме није учинио ништа.

Помоћу функције МсгБок у Екцелу можете одлучити шта желите да урадите када корисник кликне на одређено дугме. А то је могуће јер свако дугме има своју вредност.

Дакле, ако кликнем на дугме Да, функција МсгБок враћа вредност (6 или константу вбИес) коју могу користити у свом коду. Слично, ако корисник одабере дугме Не, враћа другу вредност ((7 или константу вбНо)) коју могу да користим у коду.

Испод је табела која приказује тачне вредности и константу коју враћа функција МсгБок. Не морате их запамтити, само будите тога свесни и можете користити константе које су лакше користити.

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

Сада да видимо како можемо да контролишемо ВБА макро код на основу дугмета које корисник кликне.

У доњем коду, ако корисник кликне на Иес, приказује се порука „Кликнули сте на Да“, а ако корисник кликне на Не, приказује се „Кликнули сте на Не“.

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

У горњем коду доделио сам вредност функције МсгБок променљивој Ресулт. Када притиснете дугме Да, променљива Резултат добија константу вбИес (или број 6), а када кликнете Не, варијабла Резултат добија константу вбНо (или број 7).

Затим сам користио конструкцију Иф Тхен Елсе да проверим да ли променљива Ресулт садржи вредност вбИес. Ако се то догоди, приказује упит „Кликнули сте на Да“, иначе показује „Кликнули сте на Не“.

Можете користити исти концепт за покретање кода ако корисник кликне на Да и изађе из подменија када кликне на Не.

Напомена: Када доделите излаз МсгБок променљивој, аргументе функције МсгБок морате ставити у заграде. На пример, у линији Резултат = МсгБок („Желите ли да наставите?“, ВбДаНе + вбКуестион), можете видети да су аргументи унутар заграда.

Ако желите даље да копате по функцији Мессаге Бок, ево званичног документа о њој.

Можда ће вам се допасти и следећи Екцел ВБА водичи:

  • Екцел ВБА Сплит функција.
  • Екцел ВБА ИнСтр функција.
  • Рад са ћелијама и опсезима у Екцел ВБА.
  • Рад са радним листовима у ВБА.
  • Рад са радним свескама у ВБА.
  • Коришћење петљи у програму Екцел ВБА.
  • Разумевање Екцел ВБА типова података (променљиве и константе)
  • Како створити и користити личну макро радну свеску у програму Екцел.
  • Примери корисних Екцел макро кодова.
  • Коришћење Фор Нект Лооп у програму Екцел ВБА.
  • Екцел ВБА догађаји - једноставан (и потпун) водич.
  • Како покренути макро у програму Екцел-потпуни водич корак по корак.
  • Како да креирате и користите Екцел програмски додатак.

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

wave wave wave wave wave