INDICE
- Software
- Oficina de Microsoft
- Excel
- Cómo ejecutar procedimientos de la función VBA en Excel 2016
Libro Relacionado
Programación de Excel VBA para Dummies, 4ª Edición
Por John Walkenbach
En la programación VBA, una función devuelve un valor. Puede ejecutar procedimientos de función y llamar la función en Excel 2016. Las funciones, a diferencia de los procedimientos Sub, sólo se pueden ejecutar de dos maneras:
- Llamando la función desde otro procedimiento Sub o procedimiento de función
- Utilizando la función en una fórmula de hoja de cálculo
Pruebe esta sencilla función. Introdúzcalo en un módulo VBA:
Función CubeRoot(número) CubeRoot = número ^ (1 / 3)Finalizar Función
Esta función es bastante débil; simplemente calcula la raíz cúbica del número que se le ha pasado como argumento. Sin embargo, proporciona un punto de partida para comprender las funciones. También ilustra un concepto importante sobre las funciones: cómo devolver el valor. (Recuerdas que una función devuelve un valor, ¿verdad?)
Observe que la única línea de código que compone este procedimiento de Función realiza un cálculo. El resultado de la matemática (número a la potencia de 1/3) se asigna a la variable CubeRoot. No es casualidad que CubeRoot sea también el nombre de la función. Para indicar a la función el valor que debe devolverse, asigne ese valor al nombre de la función.
Llamada a la función desde un procedimiento Sub
Como no se puede ejecutar una función directamente, se debe llamar desde otro procedimiento. Introduzca el siguiente procedimiento sencillo en el mismo módulo VBA que contiene la función CubeRoot:
Sub CallerSub() Ans = CubeRoot(125) MsgBox AnsEnd Sub
Al ejecutar el procedimiento CallerSub, Excel muestra un cuadro de mensaje que contiene el valor de la variable Ans, que es 5.
Esto es lo que está pasando: Se ejecuta la función CubeRoot, y recibe un argumento de 125. El cálculo se realiza mediante el código de la función (utilizando el valor pasado como argumento), y el valor devuelto de la función se asigna a la variable Ans. La función MsgBox muestra entonces el valor de la variable Ans.
Intente cambiar el argumento que ha pasado a la función CubeRoot y vuelva a ejecutar la macro CallerSub. Funciona tal y como debería – asumiendo que usted le da a la función un argumento válido (un número positivo).
Por cierto, el procedimiento CallerSub podría simplificarse un poco. La variable Ans no es realmente necesaria a menos que su código la utilice más adelante. Puede utilizar esta expresión única para obtener el mismo resultado:
MsgBox CubeRoot(125)
Llamar una función desde una fórmula de hoja de cálculo
Ahora es el momento de llamar a este procedimiento de la Función VBA desde una fórmula de hoja de cálculo. Activar una hoja de trabajo en el mismo libro de trabajo que contiene la definición de la función CubeRoot. Luego ingrese la siguiente fórmula en cualquier celda:
=CubeRoot(1728)
La celda muestra 12, que es en realidad la raíz cúbica de 1.728.
Como es de esperar, puede usar una referencia de celda como argumento para la función CubeRoot. Por ejemplo, si la celda A1 contiene un valor, puede introducir =CubeRoot(A1). En este caso, la función devuelve el número obtenido al calcular la raíz cúbica del valor en A1.
Puede utilizar esta función tantas veces como desee en la hoja de trabajo. Al igual que las funciones incorporadas de Excel, sus funciones personalizadas aparecen en el cuadro de diálogo Insertar función. Haga clic en el pulsador de la barra de herramientas Insertar función y seleccione la categoría Definido por el usuario. La ventana de diálogo Insertar función lista su propia función.
La función CubeRoot aparece en la categoría Definido por el usuario del cuadro de diálogo Insertar función.
Si desea que la ventana de diálogo Insertar función muestre una descripción de la función, siga estos pasos:
- Seleccione Desarrollador → Código → Macros.Excel muestra el cuadro de diálogo Macro, pero CubeRoot no aparece en la lista. (CubeRoot es un procedimiento de Función, y esta lista muestra sólo procedimientos Sub.) No te preocupes.
- Escriba la palabra CubeRoot en el cuadro Nombre de la macro.
- Haga clic en el botón Opciones.
- Introduzca una descripción de la función en el cuadro Descripción.
- Haga clic en Aceptar para cerrar el cuadro de diálogo Opciones de macro.
- Cierre el cuadro de diálogo Macro haciendo clic en el botón Cancelar Este texto descriptivo aparece ahora en el cuadro de diálogo Insertar función.
Compruebe la función CubeRoot que se está utilizando en las fórmulas de las hojas de cálculo.
Uso de la función CubeRoot en las fórmulas.