Can I declare an event in Excel 97?

G

geoff_ness

I have defined a class to handle the user interface layer between a
form and a worksheet. The below is what is contained in the class
module:

Public Event GetJudicialOfficers(ByRef vsJOList As Variant)
Public Event GetCourtRooms(ByRef vsCourtrooms As Variant)

' Pick up change in Judicial Officer type from form
Public Sub JOTypeSelected(ByVal sType As String)
Dim vsOfficers As Variant

' Get the list of JOs from the return
vsOfficers = vUpdateJOList(sType)

' Pass the list back to the form
RaiseEvent GetJudicialOfficers(vsOfficers)

End Sub

Public Sub CourtSelected(ByVal sCourt As String)
Dim vsRooms As Variant

' Get the list of courtrooms based on selected court
vsRooms = vUpdateCourtList(sCourt)

' Pass the list back to the form
RaiseEvent GetCourtRooms(vsRooms)

End Sub

This compiles fine in both Excel 2003 and 2007. However in Excel 97
all the lines with either 'Public Event' or 'RaiseEvent' generate a
compile error (Identifier expected). Clearly this version of VBA does
not recognise these identifiers, I'm assuming along the same lines as
with Enum. Can anyone confirm that this is the case?

Cheers
Geoff
 
P

Peter T

Event and RaiseEvent are not supported in Excel 97.

However, whilst it might not help you for your current needs, even in Excel
97 you can use WithEvents to trap and receive a custom event that you have
raised in another app, eg in a VB6 dll.

From what you describe there should be various alternative approaches to do
similar. Why not reference your class object directly in the form.

Regards,
Peter T
 
G

geoff_ness

Thanks Peter, I thought that might be the case. I'll most likely ditch
the class altogether as it basically serves no purpose other than to
raise those events for the form to trap. I think the form can just
call the functions to populate those lists directly, it's just never
as nice to do it that way. The VB6 idea is a good one, unfortunately
I'm restricted to VBA with this project.

Thanks
Geoff
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top