Video: Guide: Sådan skriver du en skarp ansøgning 2024
Er du nysgjerrig på hvordan du skriver en hendelseshåndteringsprosedyre i VBA ? VBE hjelper deg når du er klar til å skrive en hendelseshandlerprosedyre, og viser en liste over alle hendelser for det valgte objektet.
På toppen av hvert kodevindu finner du to rullegardinlister:
-
Objekt-rullegardinlisten (den til venstre)
-
Rutens nedtrekksliste (den til høyre)
Som standard Objekt-nedtrekksliste i kodevinduet viser Generelt.
Hvis du skriver en hendelsesbehandler for ThisWorkbook-objektet, må du klikke ThisWorkbook i prosjektvinduet og deretter velge Arbeidsbok fra Objekt-rullegardinmenyen (det er det eneste andre valget).
Hvis du skriver en hendelsesbehandler for et arkobjekt, må du klikke på det spesifikke arket i prosjektvinduet og deretter velge regneark fra rullegardinlisten Objekt (igjen, den eneste annet valg).
Når du har valgt ditt valg fra Objekt-rullegardinlisten, kan du velge arrangementet fra rullegardinmenyen Prosedyre. Her er noen av valgene for en arbeidsbokrelatert hendelse.
Velge en hendelse i kodevinduet for ThisWorkbook-objektet.Når du velger en hendelse fra listen, begynner VBE automatisk å lage en hendelsehåndteringsprosedyre for deg. Dette er en veldig nyttig funksjon, fordi den forteller deg nøyaktig hva de riktige argumentene er.
Her er en liten quirk. Når du først velger Arbeidsbok fra Objektlisten, antar VBE alltid at du vil opprette en hendelsesbehandlerprosedyre for Open-arrangementet, og oppretter den for deg. Hvis du faktisk lager en Workbook_Open-prosedyre, er det greit. Men hvis du oppretter en annen hendelse-prosedyre, må du slette den tomme Workbook_Open Sub som ble opprettet.
VBEs hjelp går imidlertid bare så langt. Den skriver underoppgaven og slutten av setningen. Å skrive VBA-koden som går mellom disse to setningene, er din jobb.
Du trenger ikke å bruke disse to rullegardinlister, men det gjør jobben enklere fordi navnet på hendelseshåndteringsprosedyren er kritisk viktig. Hvis du ikke får navnet riktig, vil prosedyren ikke fungere. I tillegg bruker noen hendelseshåndteringsprosedyrer en eller flere argumenter i Sub-setningen. Det er ingen måte du kan huske hva disse argumentene er. Hvis du for eksempel velger SheetActivate fra hendelseslisten til et arbeidsbokobjekt, skriver VBE følgende underoppgave:
Private Sub Workbook_SheetActivate (ByVal Sh As Object)
I dette tilfellet blir Sh argumentet passert til prosedyren og er en variabel som representerer arket i den aktiverte arbeidsboken.