Curious use of ByVal keyword in VBA event

O

onedaywhen

I have a WithEvents combo object in a class and I'm using its KeyPress
events. Here is the line VBA inserted into my code:

Private Sub m_oCombo_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

The KeyAscii variable is actually being passed by reference, of
course, otherwise I wouldn't be able to suppress certain characters.
So why the ByVal keyword? It confused me for a while this morning. Is
it this something to do with ByVal being overloaded e.g. for use in
the Declare keyword?
 
C

Chip Pearson

The MSForms.ReturnInteger is an object type variable, and all objects are
passed by passing the address of the object. The 'ByVal' and 'ByRef'
qualifiers indicate whether the address of the object is passed ByVal or
ByRef. In the KeyPress procedure, the address of KeyAscii is passed ByVal.
 

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