Догађаји на нивоу апликације функционишу на целој апликацији (Екцел у овој референци). Али активирање догађаја апликације није тако једноставно као стварање догађаја радне свеске или радног листа. Али уверавам вас да ни то није тако зезнуто. У овом чланку ћемо научити како да креирате и користите Догађај апликације у програму Екцел ВБА у неколико једноставних корака.
Корак 1: Креирајте објект догађаја у модулу класе
Да бисмо креирали објекат догађаја, морамо да користимо модул класе.
- Уметните модул класе. Дајте му име како желите. Дао сам му име МиАппЕвентс.
- Дефинишите променљиву догађаја типа апликације са кључном речи ВитхЕвентс.
Приватно ВитхЕвентс миАпп Ас Апплицатион
- Иницијализујте овај догађај у потпрограму цласс_инитиализе ().
Са падајућег менија са леве стране изаберите класу. Након тога, у падајућем менију у горњем десном углу изаберите Инитиалс.Приватна подразреда_Инитиализе () Постави миАпп = Подлога за крај апликације
- Сада дефинишите догађаје које желите да користите. Са падајућег менија у горњем левом углу изаберите објекат догађаја. Све доступне процедуре управљања догађајима биће вам доступне у падајућем менију у горњем десном углу. Изаберите шта год вам је потребно и дефинишите шта желите да урадите када се тај догађај покрене.
Користим догађај СхеетАцтивате. Кад год се корисник пребацује између листова било које отворене радне свеске, приказаће се назив радне свеске и корисник листа који је изабрао.Приватни Суб миАпп_СхеетАцтивате (БиВал Сх Ас Објецт) МсгБок АцтивеВоркбоок.Наме & "-" & Сх.Наме Енд Суб
Овде можете дефинисати онолико догађаја које желите да дефинишете.
Догађаји неће одмах почети са радом. Ово је био први корак. Пошто се ради о модулу класе, морамо да направимо његов објект да бисмо активирали догађаје.
Сада само треба да покренемо ове догађаје из нормалне потпрограма.
Корак 2: Креирајте потпрограм покретача догађаја у нормалном модулу
Сада имамо час догађаја. Потребно је само да направимо објекат те класе и да га иницијализујемо. Када покренемо ову потпрограм, сви дефинисани догађаји у класи догађаја ће почети да раде.
- Уметните нормалан модул.
- Дефинишите променљиву класе коју сте креирали.
Приватни АппЕ као МиАппЕвентс
- Иницијализујте га у потпрограму. Можете га назвати како желите.
Привате Суб СтартЕвентс () Сет АппЕ = Нев МиАппЕвентс Енд Суб
- Покрените овај код помоћу тастера Ф5. Опционо, овај макро можете доделити дугмету на радном листу ако желите да покренете догађаје са радног листа.
И то је учињено. Сада кад год мењате листове, појавиће се оквир за поруку са именом радне свеске и листа, све док је код који садржи радну свеску отворен.
Је ли било тешко? Мислим да није. Реците ми шта мислите у одељку за коментаре испод.
Укључивање и искључивање догађаја ВБА апликације
Када покренете макро у нормалном модулу, он ће се увек активирати све док не затворите радну свеску која садржи догађаје. Али можда желите да их укључите и искључите по вашој вољи. Постоје два начина за то.
- Поништите објект догађаја
- Подесите ЕнаблеЕвентс на Фалсе
1. поништавање објекта догађаја
У посебној потпрограми поставите објекат догађаја на Ништа
Привате Суб СтопЕвентс () Сет АппЕ = Ништа Крај Суб
Када покренете овај код, догађаји ће престати да функционишу. Можете га ставити у дугме на радном листу да бисте зауставили догађаје. Сада ћете имати два дугмета за покретање и заустављање ових специфичних догађаја. Само ће зауставити догађаје које је створио АппЕ објекат.
2. Подесите ЕнаблеЕвентс на Фалсе
Други начин је онемогућавање догађаја. Да бисмо све догађаје учинили неприхватљивим, својство ЕнаблеЕвентс класе Апплицатион подесили смо на Нетачно.
Привате Суб СтопЕвентс () Апплицатион.ЕнаблеЕвентс = Субсекција лажног краја
Горњи код ће онемогућити све догађаје. Чак и подразумевани екцел догађаји. Неће радити док их поново не покренете. Чак и ако покренете потпрограм СтартЕвентс () (горе), догађај неће радити. Да би сви догађаји поново радили, мораћете поново да поставите својство ЕнаблеЕвентс на Труе.
Дакле, ако желите да ваши догађаји функционишу сваки пут када започнете догађаје, додајте ову линију кода у подмени.
Приватни под СтартЕвентс () Апплицатион.ЕнаблеЕвентс = Труе Сет АппЕ = Нови МиАппЕвентс Енд Суб
Покретање догађаја корисничке апликације сваки пут када се отвара радна свеска
Ако развијате алат за крајњег корисника, можда ћете желети да догађаји раде аутоматски. У том случају, можете поставити покретач догађаја у објекат Радне свеске са догађајем Воркбоок_опен (), уместо у уобичајени модул. Ово ће учинити ваш објекат догађаја иницијализованим чим отворите радну свеску која садржи догађаје.
Па да, момци, овако можете користити догађај апликације у Екцелу. Обавестите ме да ли је ово довољно објашњење и да вам је помогло да разумете догађаје на нивоу апликације у програму Екцел ВБА у одељку за коментаре испод. Ако имате шта да додате овоме, запишите и то. Можете поставити своја питања везана за овај чланак или било коју другу тему везану за Екцел ВБА у одељку за коментаре испод.
Преузмите радну датотеку испод:
Догађаји у програму Екцел ВБА | У Екцелу постоји седам врста догађаја. Сваки догађај се бави различитим обимом. Апликацијски догађај се бави на нивоу радне свеске. Радна свеска на нивоу листова. Догађај радног листа на нивоу опсега.
Догађаји радног листа у програму Екцел ВБА| Догађај радног листа је заиста користан када желите да се ваши макрои покрену када се на листу појави одређени догађај.
Догађаји радне свеске користећи ВБА у Мицрософт Екцелу | Догађаји радне свеске раде на целој радној свесци. Пошто су сви листови део радне свеске, и ови догађаји раде на њима.
Спречите аутоматско извршавање/евентмацро извршавање помоћу ВБА у Мицрософт Екцелу| Да бисте спречили покретање макроа ауто_опен, користите тастер схифт.
Забележите догађаје објеката помоћу ВБА у програму Мицрософт Екцел| Графикони су сложени објекти и постоји неколико компоненти које сте им придружили. За израду Цхарт Евентс -а користимо Цласс модул.
Популарни чланци:
50 Екцел пречица за повећање продуктивности | Убрзајте свој задатак. Ових 50 пречица ће ваш рад учинити још бржим у Екцелу.
Функција ВЛООКУП у Екцелу | Ово је једна од најчешће кориштених и популарних функција програма Екцел која се користи за тражење вриједности из различитих распона и листова.
ЦОУНТИФ у програму Екцел 2016 | Бројте вредности са условима користећи ову невероватну функцију. Не морате да филтрирате податке да бисте рачунали одређену вредност. Цоунтиф функција је неопходна за припрему ваше контролне табле.
Како се користи функција СУМИФ у програму Екцел | Ово је још једна битна функција контролне табле. Ово вам помаже да сумирате вредности под одређеним условима.