Ar jums įdomu, kaip parašyti įvykių tvarkyklės procedūrą VBA? VBE padės jums, kai esate pasirengęs parašyti įvykių apdorojimo procedūrą; rodomas visų pasirinkto objekto įvykių sąrašas.
Kiekvieno kodo lango viršuje rasite du išskleidžiamuosius sąrašus:
Pagal numatytuosius nustatymus lange Kodas išskleidžiamajame sąraše Objektas rodoma Bendra.
Jei rašote objekto ThisWorkbook įvykių tvarkyklę, projekto lange turite spustelėti ThisWorkbook ir tada išskleidžiamajame meniu Objektas pasirinkti Workbook (tai vienintelis kitas pasirinkimas).
Jei rašote lapo objekto įvykių tvarkyklę, projekto lange turite spustelėti konkretų lapą ir išskleidžiamajame sąraše Objektas pasirinkti Darbalapis (vėlgi, vienintelis pasirinkimas).
Pasirinkę išskleidžiamajame sąraše Objektas, galite pasirinkti įvykį iš išskleidžiamojo sąrašo Procedūra. Štai keletas su darbo knyga susijusio renginio pasirinkimų.
Objekto ThisWorkbook įvykio pasirinkimas Kodo lange.
Kai pasirenkate įvykį iš sąrašo, VBE automatiškai pradeda kurti įvykių apdorojimo procedūrą. Tai labai naudinga funkcija, nes ji tiksliai nurodo, kokie yra tinkami argumentai.
Štai maža keistenybė. Kai pirmą kartą pasirenkate Darbaknygę iš objektų sąrašo, VBE visada daro prielaidą, kad norite sukurti įvykių apdorojimo procedūrą įvykiui Atidaryti ir sukuria ją už jus. Jei iš tikrųjų kuriate procedūrą „Workbook_Open“, viskas gerai. Bet jei kuriate kitą įvykio procedūrą, turite ištrinti tuščią sukurtą Workbook_Open Sub.
Tačiau VBE pagalba eina tik iki šiol. Jis rašo „Sub“ ir „End Sub“ teiginius. Jūsų darbas yra parašyti VBA kodą, kuris yra tarp šių dviejų teiginių.
Jums tikrai nereikia naudoti šių dviejų išskleidžiamųjų sąrašų, tačiau tai padarius jūsų darbą lengviau, nes įvykių tvarkyklės procedūros pavadinimas yra labai svarbus. Jei tiksliai nesupratote pavadinimo, procedūra neveiks. Be to, kai kurios įvykių tvarkyklės procedūros naudoja vieną ar daugiau argumentų posakyje. Niekaip negalite prisiminti, kokie tie argumentai. Pavyzdžiui, jei darbaknygės objekto įvykių sąraše pasirenkate SheetActivate, VBE įrašo šį papildomą sakinį:
Private Sub Workbook_SheetActivate (ByVal Sh kaip objektas)
Šiuo atveju Sh yra argumentas, perduotas procedūrai, ir yra kintamasis, vaizduojantis suaktyvintos darbaknygės lapą.