Är du nyfiken på hur man skriver en händelsehanterare i VBA? VBE hjälper dig när du är redo att skriva en händelsehanterare; den visar en lista över alla händelser för det valda objektet.
Överst i varje kodfönster hittar du två rullgardinslistor:
Som standard visar rullgardinsmenyn Objekt i fönstret Kod Allmänt.
Om du skriver en händelsehanterare för ThisWorkbook-objektet måste du klicka på ThisWorkbook i projektfönstret och sedan välja Workbook från objektrullgardinsmenyn (det är det enda andra valet).
Om du skriver en händelsehanterare för ett arkobjekt måste du klicka på det specifika arket i projektfönstret och sedan välja Arbetsblad från rullgardinsmenyn Objekt (igen, det enda andra valet).
När du har gjort ditt val från rullgardinsmenyn Objekt kan du välja händelsen från rullgardinsmenyn Procedur. Här är några av alternativen för en arbetsboksrelaterad händelse.

Välja en händelse i kodfönstret för ThisWorkbook-objektet.
När du väljer en händelse från listan börjar VBE automatiskt skapa en händelsehanterare procedur åt dig. Detta är en mycket användbar funktion, eftersom den talar om för dig exakt vad de rätta argumenten är.
Här är en liten egenhet. När du först väljer Arbetsbok från objektlistan, antar VBE alltid att du vill skapa en händelsehanterare-procedur för Open-händelsen och skapar den åt dig. Om du faktiskt skapar en Workbook_Open-procedur är det bra. Men om du skapar en annan händelseprocedur måste du ta bort den tomma Workbook_Open Sub som skapades.
VBE:s hjälp går dock bara så långt. Den skriver Sub-satsen och End Sub-satsen. Att skriva VBA-koden som går mellan dessa två påståenden är ditt jobb.
Du behöver egentligen inte använda dessa två rullgardinslistor, men att göra det gör ditt jobb enklare eftersom namnet på händelsehanteraren är avgörande. Om du inte förstår namnet helt rätt kommer proceduren inte att fungera. Vissa händelsehanterare använder också ett eller flera argument i Sub-satsen. Det finns inget sätt att du kan komma ihåg vad dessa argument är. Om du till exempel väljer SheetActivate från händelselistan för ett Workbook-objekt, skriver VBE följande Sub-sats:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
I det här fallet är Sh argumentet som skickas till proceduren och är en variabel som representerar bladet i den aktiverade arbetsboken.