PDA

Click to See Complete Forum and Search --> : VBA: Using pointers to functions


Steve06
Mar 28th, 2006, 02:33 PM
Hello,

At the moment I'm programming in VBA6 for Excel 2003. I've a decent C/C++ background and wonder how I can implement the following in VBA:

I want to declare a function, which accepts a pointer to another function as an argument, and then is able to call this pointed function.

An example in C:


float myfuntion(void (*inputfunction)(float, float*, float*), float x1, float x2)
{
...
(*inputfunction)(x1, &fl, &fh) // calling the function
...
}


Thank you very much for your help.

Regards,
Steve

penagate
Mar 28th, 2006, 02:36 PM
In short, you can't really, not like that anyway.

What you can do, however, is use CallByName to call a function by passing a string containing its name. This does require that the function is an object method (and public, obviously).

Joacim Andersson
Mar 28th, 2006, 03:17 PM
I once showed how you can use CallWindowProc to be able to call functions with a pointer. The draw-back is that the function you want to call (using the pointer) must accept exactly 4 arguments. Anyway here is the CodeBank post (http://www.vbforums.com/showthread.php?t=344319) that shows you how to do it.

Hack
Mar 29th, 2006, 07:23 AM
Excel VBA question moved to Office Development