Vai jūs interesē, kā VBA uzrakstīt notikumu apstrādātāja procedūru? VBE palīdz jums, kad esat gatavs uzrakstīt notikumu apstrādātāja procedūru; tas parāda visu atlasītā objekta notikumu sarakstu.
Katra koda loga augšdaļā ir divi nolaižamie saraksti:
Pēc noklusējuma loga Kods nolaižamajā sarakstā Objekts tiek rādīts Vispārīgi.
Ja rakstāt objekta ThisWorkbook notikumu apdarinātāju, logā Project jānoklikšķina uz ThisWorkbook un pēc tam nolaižamajā izvēlnē Objekts jāizvēlas Workbook (tā ir vienīgā izvēle).
Ja rakstāt lapas objekta notikumu apdarinātāju, logā Project jānoklikšķina uz konkrētās lapas un pēc tam nolaižamajā sarakstā Objekts jāizvēlas Darblapa (atkal tā ir vienīgā izvēle).
Kad esat izdarījis izvēli nolaižamajā sarakstā Objekts, varat izvēlēties notikumu nolaižamajā sarakstā Procedūra. Šeit ir dažas ar darbgrāmatu saistīta pasākuma izvēles iespējas.
Notikuma izvēle koda logā objektam ThisWorkbook.
Kad sarakstā atlasāt notikumu, VBE automātiski sāk jums izveidot notikumu apstrādātāja procedūru. Šī ir ļoti noderīga funkcija, jo tā precīzi norāda, kādi ir pareizie argumenti.
Šeit ir neliela dīvainība. Kad pirmo reizi atlasāt darbgrāmatu no objektu saraksta, VBE vienmēr pieņem, ka vēlaties izveidot notikumu apstrādātāja procedūru notikumam Atvērt, un izveido to jūsu vietā. Ja jūs faktiski veidojat procedūru Workbook_Open, tas ir labi. Bet, ja veidojat citu notikuma procedūru, jums ir jāizdzēš tukšais Workbook_Open Sub, kas tika izveidots.
Tomēr VBE palīdzība sniedzas tikai līdz šim. Tas raksta apakšpaziņojumu un beigu apakšpaziņojumu. Jūsu uzdevums ir rakstīt VBA kodu, kas atrodas starp šiem diviem paziņojumiem.
Jums tiešām nav jāizmanto šie divi nolaižamie saraksti, taču tas atvieglo jūsu darbu, jo notikumu apstrādātāja procedūras nosaukums ir ļoti svarīgs. Ja nosaukumu nesapratīsit precīzi, procedūra nedarbosies. Dažas notikumu apstrādātāja procedūras apakšpaziņojumā izmanto arī vienu vai vairākus argumentus. Jūs nevarat atcerēties, kādi ir šie argumenti. Piemēram, ja darbgrāmatas objekta notikumu sarakstā atlasāt SheetActivate, VBE raksta šādu apakšpriekšrakstu:
Private Sub Workbook_SheetActivate (ByVal Sh kā objekts)
Šajā gadījumā Sh ir arguments, kas tiek nodots procedūrai, un tas ir mainīgais, kas attēlo lapu aktivizētajā darbgrāmatā.