Yleensä tapahtumat eivät ole mitään muuta kuin tapahtuvat jostain. Sama on excelissä. Mutta joskus haluamme, että jotain tapahtuu automaattisesti tietyn tapahtuman sattuessa. Jos haluat tehdä jotain, kun tietty tapahtuma tapahtuu Excelissä, käytämme Excel VBA -tapahtumaa.
Excel VBA -tapahtumakäsittelijät: tyypit
Excel VBA: ssa on pääasiassa 7 erilaista tapahtumakäsittelijää.
- Sovellustapahtumat
- Työkirjan tapahtumat
- Laskentataulukon tapahtumat
- Kaavion tapahtumat
- Käyttäjälomakkeen tapahtumat
- Näppäinyhdistelmät Tapahtumat (pikanäppäintoiminnot)
- Ajankohtaiset tapahtumat
Tutkitaan niitä yksi kerrallaan.
Sovellustapahtumat Excelissä
Sovellustason tapahtumat käynnistyvät, kun sovellus (Excel) suljetaan, avataan, aktivoidaan, suojataan, suojataan jne.
Sovellustasolla on yli 50 tapahtumatyyppiä. Joten emme voi keskustella niistä kaikista täällä.
Sovellustapa:
Nämä tapahtumat toimivat kaikilla Excelin työkirjoilla, kunhan työkirjan sisältävä koodi on auki. Jos olet esimerkiksi luonut sovellustason tapahtuman, joka kertoo aktiivisen taulukon arkin nimen, se käynnistyy jokaisen työkirjan aktivoinnin yhteydessä.
Kuinka luoda sovellustapahtumien käsittelijä VBA: han?
Sovellustapahtuman luominen on hieman hankalaa. Olen selittänyt sen täällä yksityiskohtaisesti esimerkin avulla.
Työkirjan tapahtumat Excelissä
Työkirjan tapahtuman laajuus
Työkirjan tapahtumat toimivat koko työkirjassa, joka sisältää koodin. Tapahtuma voi avata, sulkea, aktivoida, poistaa käytöstä, muuttaa taulukkoa jne.
Minne kirjoittaa työkirjan tapahtumat?
Työkirjan tapahtumat kirjoitetaan työkirjaobjektiin.
Kuinka kirjoittaa työkirjatapahtuma?
Toimi seuraavasti:
1. Kaksoisnapsauta työkirjan objektia Project Explorerissa. Koodin kirjoitusalue tulee näkyviin. Kaikki työkirjan kattamat tapahtumat on kirjoitettu tänne.
2. Koodin kirjoitusalueen vasemmassa yläkulmassa näet avattavan valikon. Napsauta avattavaa valikkoa ja valitse työkirja. Oletuksena se on yleinen.
3. Kun valitset työkirjan vasemmasta avattavasta valikosta, se lisää oletuksena workbook_open-tapahtuman aliohjelman. Mutta jos haluat käyttää eri tapahtuman aliohjelmaa, valitse se oikeasta yläkulmasta. Siinä luetellaan kaikki käytettävissä olevat työkirjan tapahtumat.
4. Valitse haluamasi tapahtuma. Esimerkin vuoksi valitsen SheetActivate -tapahtuman. Tämä tapahtuma käynnistyy jokaisesta taulukon valinnasta koodia sisältävässä työkirjassa.
Esimerkki työkirjan tapahtumasta:Tämä on yksinkertainen esimerkki. Haluan vain näyttää aktivoidun laskentataulukon nimen. Tätä varten käytän vain SheetActivate -tapahtumaa työkirjaobjektissa.
Yksityinen ali Workbook_SheetActivate (ByVal Sh objektina) MsgBox Sh.Name & "Activated" End Sub
Nyt, kun uusi työkirjan arkki aktivoidaan, tämä tapahtuma käynnistyy. Sinulta kysytään hierontaa, arkin nimi aktivoitu.
Tiedän, että tämä koodi ei ole kovin hyödyllinen, mutta voit laittaa mitä tahansa ohjeita näiden rivien väliin. Voit kutsua toimintoja ja aliohjelmia itse moduuleista.
Laskentataulukon tapahtumat Excelissä
Kaikki alue- ja solukohdistetut tapahtumat on kirjoitettu laskentataulukon tapahtumiin. Voit lukea laskentataulukon tapahtumista täältä.
Laskentataulukkotapahtuman laajuus
Laskentataulukon tapahtumat on kohdistettu tietyn laskentataulukon alueille ja soluille. Laskentataulukkotapahtuma käynnistyy tapahtumista, jotka tapahtuvat tietyssä laskentataulukossa (laskentataulukko, joka sisältää koodin).
Missä laskentataulukon tapahtumat on kirjoitettu?
Laskentataulukon tapahtumat kirjoitetaan laskentataulukko -objektiin.
Kuinka kirjoittaa laskentataulukon tapahtumakäsittelykoodi?
Se on sama kuin työkirjan tapahtumat.
1. Kaksoisnapsauta laskentataulukko -objektia Project Explorerissa. Koodin kirjoitusalue näkyy laskentataulukossa. Kaikki laskentataulukon kattamat tapahtumat on kirjoitettu näihin laskentataulukoihin.
2. Koodin kirjoitusalueen vasemmassa yläkulmassa näet avattavan valikon. Napsauta avattavaa valikkoa ja valitse laskentataulukko. Oletuksena se on yleinen.
3. Kun valitset laskentataulukon vasemmasta avattavasta valikosta, se lisää oletuksena worksheet_selectionChange event -aliohjelman. Mutta jos haluat käyttää eri tapahtuman aliohjelmaa, valitse se oikeasta yläkulmasta. Se luettelee kaikki käytettävissä olevat laskentataulukon tapahtumat.
4. Valitse haluamasi tapahtuma. Esimerkin vuoksi valitsen Worksheet_SelectionChange (ByVal Target As Range) -tapahtuman. Tämä tapahtuma käynnistyy joka kerta, kun taulukon alueen valinta muuttuu.
Esimerkki laskentataulukon tapahtumasta
Yksityinen alityöarkki_SelectionChange (ByVal Target as Range) MsgBox "You are in" & Target.Address End Sub
Yllä oleva tapahtuma on kirjoitettu työkirjan taulukkoon 1. Tämä tapahtuma näyttää alueen osoitteen, jonka olet valinnut koodia sisältävällä taulukolla, aina, kun muutat alueen valintaa. Alla on muutamia esimerkkejä laskentataulukon tapahtumista.
Laskentataulukon tapahtumia käytetään enimmäkseen dynaamisissa koontinäytöissä. Voit käyttää soluja valintaruutuna tai aktiivisena valintana, jotta koontinäyttösi ovat dynaamisia.
Alla on muutamia esimerkkejä laskentataulukon tapahtumista.
Laskentataulukon muutostapahtuman käyttäminen makron suorittamiseen, kun muutos on tehty
Suorita makro, jos taulukkoon tehdään muutoksia määritetyllä alueella
Yksinkertaisin VBA -koodi nykyisen rivin ja sarakkeen korostamiseen
Kaavion tapahtumat
Excelissä on kahta tapahtumatyyppiä. Yksi on normaalisti upotetut kaaviot, joista olemme keskustelleet täällä yksityiskohtaisesti. Se on paljon kuin sovellustason tapahtumia.
Toinen on kaavio. Nämä ovat erikoisarkkeja, jotka sisältävät vain kaavioita, jotka on liitetty joidenkin muiden arkkien tietoihin.
Tapahtumien osalta ne ovat paljon kuin tavalliset arkit.
Mihin kirjoittaa kaavioita tapahtumista?
Kaavion tapahtumat kirjoitetaan karttaobjektiin. Avaa koodialue vain kaksoisnapsauttamalla kaavioarkkia.
Kuinka kirjoittaa kaavion tapahtumia?
Toimi seuraavasti:
1. Avaa koodi -alue kaksoisnapsauttamalla kaavion taulukko -objektia Project Explorerissa. Kaikki kaavion taulukkoon liittyvät tapahtumat on kirjoitettu tähän.
2. Koodialueen oikeassa yläkulmassa näet tavallisen avattavan valikon. Valitse kaavio avattavasta valikosta.
3. Valitse oikeasta kulmasta haluamasi tapahtuma.
Jos esimerkiksi haluan tehdä jotain heti, kun käyttäjä valitsee kaavion, käytän Chart_Activate -tapahtumaa.
Esimerkki: Kaaviotaulukon tapahtuma
Yksityinen alikaavio_Activate () MsgBox "Kaavio päivitetään" Loppuosa
Yllä oleva koodi palaa heti, kun valitset kaavioarkin. Täällä se näyttää vain viestin, että kaavio on päivitetty, mutta voit tehdä paljon. Kuten voit valita kaavion tietoalueen dynaamisesti ennen tämän viestin näyttämistä.
Alla on muutama esimerkki kaavion tapahtumista:
UserForm -tapahtumat
Käyttäjälomaketapahtuma on aivan kuten muutkin tapahtumat. Käyttäjälomakkeessa esiintyy useita tapahtumia. Voit käyttää näitä tapahtumia tapahtumien käynnistämiseen.
Minne kirjoittaa User Form -tapahtumat?
Käyttäjälomaketapahtuman kirjoittamiseksi sinun on ensin lisättävä UserForm.
1. Napsauta sitten UserFormia hiiren kakkospainikkeella ja napsauta näkymäkoodia. Koodialue avautuu nyt.
2. Valitse nyt vasemmasta yläkulmasta Userform.
3. Valitse vasemmasta avattavasta valikosta tapahtuma, jota haluat käyttää koodin suorittamisen käynnistämiseen.
4. Kirjoita haluamasi koodi tapahtumakoodin väliin.
Alla oleva esimerkki näyttää yksinkertaisesti viestin, kun käyttäjälomake on aktivoitu.
Yksityinen alikäyttäjä UserForm_Activate () MsgBox "Hei, tarkista tietosi." End Sub
Yllä oleva koodi näyttää vain viestin, mutta voit käyttää tätä tapahtumaa esitäyttääksesi lomakkeen joissakin oletussyöttöissä tai käytä taulukon tietoja sen täyttämiseen.
Onkey -tapahtuma
Nämä tapahtumat käynnistyvät, kun tiettyä näppäintä tai näppäinyhdistelmää painetaan. Se on paljon kuin omasi luominen pikakuvakkeilla.
OnKey -tapahtuma on itse asiassa sovellusluokan toiminto tai menetelmä, jolla on kaksi argumenttia, kuten alla on esitetty:
Application.onkey Avain, ["menettely"]
The näppäintä on näppäin tai näppäinyhdistelmä, jota haluat käyttää liipaisimena.
"Menettely" on valinnainen argumentti, joka on käynnistettävän toimenpiteen tai makron merkkijono. Jos et määritä menettelyä, se käynnistää nykyisen menettelyn.
Minne kirjoittaa Onkey -tapahtumat?
Voit kirjoittaa Onkey -tapahtuman mihin tahansa normaaliin moduuliin. Ne toimivat tavallisissa moduuleissa, mutta ensin sinun on suoritettava se aliohjelma, joka sisältää Onkey -ohjeet. Ei ole niin, että olet suorittanut makron joka kerta käyttääksesi Onkey -tapahtumia. Makro suoritetaan vain kerran, kun avaat työkirjan.
Jos et halua suorittaa Onkey -tapahtumia sisältävää makroa, voit lisätä ne työkirjaobjektin workbook_open () -tapahtumaan. Se aktivoi Onkey -tapahtumat heti, kun avaat Onkey -tapahtumia sisältävän työkirjan.
Kuinka kirjoittaa Onkey -tapahtumakäsittelijä?
Joten jos sinulla on jo joitakin makroja, jotka haluat suorittaa määritetyllä pikakuvakkeella, kirjoita uusi menettely, joka sisältää pikavalintojen luettelon. Esimerkiksi tässä on makro, joka näyttää viestin, että pikakuvake toimii.
Sub show_msg () MsgBox "Pikakuvake toimii" End Sub
Nyt haluan suorittaa tämän makron, kun painan näppäinyhdistelmää CTRL+j. Tätä varten kirjoitan alla olevan VBA -koodin.
Ala Aktivoi_Onkey () Application.OnKey "^j", "show_msg" Lopeta ala
"^" (carate) on CTRL-näppäimelle. Alla on taulukko kaikista Excel VBA: n tärkeimmistä lyhenteistä.
https://docs.microsoft.com/en-us/office/vba/api/excel.application.onkey
Kuinka aktivoida Onkey -tapahtuma?
Kun olet kirjoittanut yllä olevan koodin moduuliin, jos menet Excel -näkymään ja käytät CTRL+J -näppäintä, se ei toimi. Ensin sinun on suoritettava osa, joka määrittää OnKey -tapahtumat. Suorita siis kerran Activate_Onkey () -ala, ja se toimii koko istunnon ajan. Kun suljet Onkey -määritelmät sisältävän työkirjan, se lakkaa toimimasta.
Voit laittaa Onkey -määritelmät menettelyyn, jonka haluat tapahtuvan. Mutta sitten sinun on suoritettava makro kerran manuaalisesti. Siksi ehdotan Onkey -tapahtumien lisäämistä Workbook_Open -tapahtumiin. Se aktivoi kaikki Onkey -tapahtumat automaattisesti.
Ontime -tapahtuma Excelissä
Kuten nimestä voi päätellä, Onkey -tapahtuma käynnistää määritetyn aliohjelman aikaisimman mahdollisen ajan kuluttua tai sen jälkeen. Excel saattaa olla kiireinen joissakin muissa tehtävissä, kuten ohjeiden summajoukon suorittamisessa tai kopioinnin ohi -tilassa. Siinä tapauksessa se voi viivästyttää Ontime -tapahtumaa. Siksi argumentti näytetään aikaisimpana ajankohtana.
OnTime -tapahtuman syntaksi
Ontime -tapahtuma on sovellusluokan funktio. Siinä on kaksi olennaista argumenttia ja kaksi valinnaista argumenttia.
Application.Ontime EarliestTime, "Operation", [LatestTime], [Schedule]
TheAikaisin aikaon aika, jolloin haluat toimenpiteesi suoritettavan. Mutta Excel suorittaa määritetyn makron määritetyn aikaisimman ajan kuluttua, vain kun se on ilmainen.
The "Menettely" on sen menettelyn nimi, jonka haluat suorittaa määritettynä aikana.
Kuten sanoin, ei ole takuuta, että excel suorittaa toimenpiteesi määritettyyn aikaan. The LastestTimeon aika sen jälkeen, kun Excelille on annettu aika olla vapaa ja suorittaa tehtävän.
Jos haluat deaktivoida ajastetun OnTime -tapahtumasi, aseta seajoittaa vääriksi.
Mihin Ontime -tapahtuma kirjoitetaan?
OnTime -tapahtuma voidaan kirjoittaa mihin tahansa moduuliin. Sinun on suoritettava tapahtuma, joka sisältää menettelyn aktivoidaksesi tapahtuman.
Jos haluat, että tapahtumasi aktivoidaan heti, kun avaat tapahtuman sisältävän työkirjan, lisää se tapahtumaan workbook_open. Se aktivoi tapahtuman heti, kun avaat tapahtuman sisältävän koodin Excelissä.
Kuinka kirjoittaa Ontime -tapahtuma?
Oletetaan, että sinulla on aliohjelma, joka näyttää nykyisen päivämäärän ja kellonajan
Sub show_msg () MsgBox "Nykyinen päivämäärä ja aika on" & Now End Sub
Jos haluat, että tämä menettely suoritetaan 5 sekunnin kuluttua toisen makron suorittamisesta, sinun on asetettava tämä koodi.
Sub OnTimeTest () '-jotkut muut tehtävät Application.ontime Now + (5/24 / 60 /60), "show_msg" End Sub
Kun olet suorittanut OnTimeTest -aliohjelman, se käynnistää show_msg -aliohjelman viiden sekunnin kuluttua sen suorittamisesta. Joten on hyvä, jos haluat tehdä jotain muutaman kerran tekemisen jälkeen, käytä yllä olevaa rakennetta.
Jos haluat makron toimivan itse muutaman sekunnin/minuutin/tunnin/jne. Välein, voit kutsua kyseisen toiminnon itse. Se olisi eräänlainen rekursiivinen aliohjelma.
Sub OnTimeTest () MsgBox "Nykyinen päivämäärä ja aika on" & Now Application.ontime Now + (5/24 / 60 /60), "OnTimeTest" Lopeta ala
Yllä oleva aliohjelma suoritetaan jokaisen viiden sekunnin jälkeen, kun käynnistät sen.
Joten kyllä kaverit, nämä ovat tapahtumia Excel VBA: ssa. Joillakin yllä olevista luokista on useita erilaisia tapahtumien laukaisijoita. En tietenkään voi selittää niitä kaikkia täällä. Siitä tulee pitkä kirja. Tämä oli vain johdanto Excel VBA: n tapahtumiin. Lisätietoja saat artikkeleihin upotetuista linkeistä. Olen maininnut joitain aiheeseen liittyviä artikkeleita alla. Voit myös lukea ne.
Jos sinulla on epäilyksiä tästä artikkelista tai muista excel/VBA -ajatuksista, kysy meiltä alla olevasta kommenttiosasta.
Laskentataulukon tapahtumat Excel VBA: ssa| Laskentataulukkotapahtuma on todella hyödyllinen, kun haluat makrojesi suoritettavan, kun taulukossa tapahtuu tietty tapahtuma.
Työkirjan tapahtumat VBA: n avulla Microsoft Excelissä | Työkirjan tapahtumat koskevat koko työkirjaa. Koska kaikki taulukot ovat osa työkirjaa, nämä tapahtumat toimivat myös niissä.
Estä automacron/eventmacron suorittaminen käyttämällä VBA: ta Microsoft Excelissä | Voit estää auto_open -makron käytön vaihtonäppäimellä.
Kaavioobjektitapahtumat VBA: n avulla Microsoft Excelissä | Kaaviot ovat monimutkaisia objekteja, ja niihin on liitetty useita komponentteja. Kaaviotapahtumien tekemiseen käytämme Luokka -moduulia.
Suosittuja artikkeleita:
50 Excel -pikanäppäintä tuottavuuden lisäämiseksi | Nopeuta tehtävääsi. Nämä 50 pikanäppäintä tekevät työskentelystäsi entistä nopeampaa Excelissä.
VLOOKUP -toiminto Excelissä | Tämä on yksi eniten käytetyistä ja suosituimmista Excel -toiminnoista, jota käytetään arvon etsimiseen eri alueilta ja arkeilta.
COUNTIF Excel 2016: ssa | Laske arvot olosuhteilla käyttämällä tätä hämmästyttävää toimintoa. Sinun ei tarvitse suodattaa tietojasi tietyn arvon laskemiseksi. Laskutoiminto on välttämätön kojelaudan valmistelemiseksi.
SUMIF -toiminnon käyttäminen Excelissä | Tämä on toinen kojelaudan olennainen toiminto. Tämä auttaa sinua laskemaan yhteen arvot tietyissä olosuhteissa.