En Visual Basic se está avanzando en la posibilidad de ejecutar el código apuntado por un puntero a función, tal y como se permite en Visual C++.
Ya en Visual Basic 5.0 se incorporaba la función AddressOf, que permitía obtener la dirección de una función. Pasando esa dirección a un programa C++, éste podía ejecutar la función.
En Visual Basic 6.0 se avanza un paso más y se crea la función CallByName, que permite ejecutar una función si se conoce su nombre en tiempo de ejecución. Basta con pasar a CallByName una cadena (string) como argumento, conteniendo el nombre de la función a ejecutar.
Los argumentos que recibe CallByName son: el objeto contenedor de la función (por ejemplo, un Formulario), la cadena que contiene el nombre de la función, el tipo de función y los argumentos de ésta.
El siguiente ejemplo crea dos funciones (Divide y Multiplica).
Si en Text2 y Text3 colocamos los argumentos, al pulsar el botón se ejecuta la operación que hallamos escrito en Text1 (Multiplica o Divide).
Public Function Divide(arg1 As Long, arg2 As Long)
Divide = arg1 / arg2
End Function
Public Function Multiplica(arg1 As Long, arg2 As Long)
Multiplica = arg1 * arg2
End Function
Private Sub Command1_Click()
MsgBox CallByName(Me, Text1.Text, VbMethod, Text2.Text, Text3.Text)
End Sub