Este tutorial explicará cómo crear funciones definidas por el usuario en VBA.
VBA se compone de subprocedimientos y procedimientos de función. Los procedimientos de función devuelven un valor y pueden ser llamados por Subprocedimientos, o pueden usarse en la hoja de Excel, donde el valor que produce la función se devuelve a la hoja de Excel. Excel, por supuesto, tiene una variedad de funciones integradas, como la función Sum o la función If. Los procedimientos de función que escribe en VBA se utilizan de manera similar a la función incorporada y se conocen como funciones definidas por el usuario (UDF).
¿Por qué crear una UDF?
Falta la función requerida
Una de las principales razones para querer crear una UDF en Excel es que no existe una función incorporada que haga la tarea por usted. Escribir su propia función en VBA suele ser la forma más eficiente de resolver el problema. La siguiente función convertirá un valor de kilogramos a libras cuando se esté utilizando un parámetro variable (dblKilo) para obtener el valor de los kilogramos con el fin de realizar el cálculo.
Reemplazar una subrutina (macro)
Puede escribir un subprocedimiento (macro) para resolver la tarea por usted, pero los subprocedimientos no devuelven un valor y no son dinámicos; en otras palabras, si los valores en su hoja de trabajo cambian, deberá volver a ejecutar el macro para que los cálculos en la macro actualicen sus datos. El subprocedimiento a continuación también convertiría nuestros kilos en libras, pero cada vez que los datos cambiaran en A1, necesitaría volver a ejecutar la macro para actualizar el resultado.
Reemplazar una fórmula
Es posible que tenga una fórmula realmente complicada en Excel que necesite usar repetidamente (poner la fórmula en el código VBA hace que sea más fácil de leer y comprender), así como también eliminar espacio para el error del usuario al escribir la fórmula.
Creación de UDF
Para crear una UDF, primero agregue un módulo a su libro de Excel o, si tiene un libro de macro personal, puede usar un módulo existente allí o agregar uno nuevo. Para hacer esto, debe estar en el Editor de Visual Basic (VBE). Para llegar al VBE, presione ALT + F11 o haga clic en la opción Visual Basic en la pestaña Desarrollador de su cinta.
PROPINA: Si no tiene la pestaña Desarrollador habilitada en su cinta, vaya a Archivo, Opciones y haga clic en Personalizar la cinta. Asegúrese de que la casilla de verificación Desarrollador esté marcada y haga clic en Aceptar.
Para insertar un nuevo módulo, seleccione el proyecto VBA en el que desea insertar el módulo (ya sea el proyecto VBA para el libro actual en el que está trabajando o el libro de macro personal), haga clic en el Insertar Menú y haga clic en Módulo
Una vez que haya creado su módulo, puede comenzar a crear su UDF.
Todas las UDF comienzan con Función y luego el nombre de la UDF. Las funciones pueden ser privadas o públicas, pero por lo general, querrá que una UDF sea pública para que aparezcan en el cuadro de diálogo Insertar función en Excel (consulte el uso de una función desde una hoja de Excel más abajo en este artículo). Si no coloca la palabra clave Privada delante de la función, la función es automáticamente pública.
123 | Función TestFunction1 (intA como entero) como enteroTestFunction1 = intA * 7Función final |
La función anterior tiene un solo argumento (intA). Puedes crear una función con múltiples argumentos
123 | Función TestFunction2 (intA como entero, intB como entero, intC como entero) como enteroTestFunction2 = (intA * intB) + intCFunción final |
También puede crear una función con argumentos opcionales. Si se omite el argumento, puede establecer un valor predeterminado para el argumento en la función.
123 | Función TestFunction3 (intA como entero, intB como entero, intC opcional como entero = 10) como enteroTestFunction3 = (intA * intB) + intCFunción final |
Usar una función desde dentro de una hoja de Excel
Las funciones que ha creado aparecerán de forma predeterminada en su lista de funciones en la sección Definida por el usuario de la lista de funciones.
Clickea en el fx para mostrar el cuadro de diálogo Insertar función.
Seleccione Usuario definido de la lista de categorías
Seleccione la función que necesita de las disponibles Funciones definidas por el usuario.
Alternativamente, cuando comience a escribir su función en Excel, la función debería aparecer en la lista desplegable de funciones.
Guardar las funciones con su archivo de Excel
Como las funciones están escritas en código VBA, es lógico pensar que el código debe estar disponible en el libro de trabajo para poder utilizarlo en la hoja de Excel. Puede guardar sus funciones en el libro de trabajo en el que las está utilizando o puede guardarlas en su libro de macro personal. Su libro de macro personal es un archivo oculto que está disponible siempre que Excel está abierto y, por lo tanto, está disponible para que lo use cualquier libro de Excel. Normalmente se crea cuando graba una macro y selecciona la opción para almacenar la macro en el Libro de macros personal.
Si desea mantener sus funciones guardadas dentro del libro de trabajo en el que está trabajando, deberá asegurarse de que cuando guarde el libro de trabajo, se guarde como un "Libro de trabajo habilitado para macros"O un xlsm expediente.