Oletko utelias kuinka kirjoittaa tapahtumakäsittelijämenettely VBA:ssa? VBE auttaa sinua, kun olet valmis kirjoittamaan tapahtumakäsittelijän menettelyn; se näyttää luettelon kaikista valitun objektin tapahtumista.
Jokaisen Koodi-ikkunan yläosassa on kaksi avattavaa luetteloa:
Oletusarvon mukaan Koodi-ikkunan avattavassa Object-luettelossa näkyy Yleistä.
Jos kirjoitat tapahtumakäsittelijää ThisWorkbook-objektille, sinun on napsautettava Project-ikkunassa ThisWorkbook ja valittava sitten Työkirja avattavasta Objekti-valikosta (se on ainoa vaihtoehto).
Jos kirjoitat tapahtumakäsittelijää taulukkoobjektille, sinun on napsautettava tiettyä taulukkoa Projekti-ikkunassa ja valittava sitten Työtaulukko avattavasta Objekti-luettelosta (jälleen ainoa vaihtoehto).
Kun olet tehnyt valintasi avattavasta Objekti-luettelosta, voit valita tapahtuman Menettelytapa-pudotusvalikosta. Tässä on joitain vaihtoehtoja työkirjaan liittyvää tapahtumaa varten.
Tapahtuman valitseminen Code-ikkunassa ThisWorkbook-objektille.
Kun valitset tapahtuman luettelosta, VBE alkaa automaattisesti luoda tapahtumakäsittelijämenettelyä sinulle. Tämä on erittäin hyödyllinen ominaisuus, koska se kertoo tarkalleen, mitkä ovat oikeat argumentit.
Tässä pieni omituisuus. Kun valitset ensimmäisen kerran Objekti-luettelosta Työkirjan, VBE olettaa aina, että haluat luoda tapahtumakäsittelijän menettelyn Avaa-tapahtumalle, ja luo sen puolestasi. Jos olet itse luomassa Workbook_Open-proseduuria, se on hyvä. Mutta jos olet luomassa eri tapahtumamenettelyä, sinun on poistettava luotu tyhjä Workbook_Open Sub.
VBE:n apu ulottuu kuitenkin vain toistaiseksi. Se kirjoittaa Sub-lauseen ja End Sub -lauseen. VBA-koodin kirjoittaminen näiden kahden lauseen väliin on sinun tehtäväsi.
Sinun ei todellakaan tarvitse käyttää näitä kahta avattavaa luetteloa, mutta sen tekeminen helpottaa työtäsi, koska tapahtumakäsittelijän menettelyn nimi on erittäin tärkeä. Jos et ymmärrä nimeä tarkasti, toimenpide ei toimi. Jotkin tapahtumakäsittelijän toiminnot käyttävät myös yhtä tai useampaa argumenttia Sub-lauseessa. Et voi mitenkään muistaa, mitä nämä väitteet ovat. Jos esimerkiksi valitset työkirjaobjektin tapahtumaluettelosta SheetActivate, VBE kirjoittaa seuraavan alikäskyn:
Yksityinen Sub Workbook_SheetActivate (ByVal Sh Objektina)
Tässä tapauksessa Sh on prosessille välitetty argumentti, ja se on muuttuja, joka edustaa taulukkoa aktivoidussa työkirjassa.