Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Crear Funciones en VBA

| Sin comentarios

Al empezar a crear Macros, podemos llegar a resolver la pregunta ¿Cómo crear funciones en Excel?,  veamos algunos de los conceptos relacionados al respecto.

¿Cómo se hace una función en VBA Excel?

Muy sencillo, primero ingrese al editor de VBA, luego acceda a un módulo, si no tiene un módulo puede crear uno. 

Finalmente, en el módulo ya puede crear la función, para ello debe usar la estructura correspondiente a las funciones en VBA.

Tenga en cuenta que las funciones (FUNCTION)  también son consideradas macros, y a diferencia de los proceso o procedimientos (SUB) , estas retornan un valor a quien la este invocando, los procedimientos y funciones en Visual Basic para Aplicaciones pueden recibir parámetros o valores de entrada.

Estructura de una Función en VBA

Para comprender la estructura de las funciones en Visual Basic para Aplicaciones (VBA) examinemos el siguiente ejemplo: 

Function  MiSuma(arg1, arg2)

resultado = arg1*2  +  arg2

MiSuma = resultado

End  Function

 

Function: sirve para declarar el inicio de la función en VBA

MiSuma: es el nombre de la función, puede usar cualquier otro nombre (sin usar espacios), este es el nombre con el cual se va a llamar a la función, ya sea desde una celda de Excel, o desde otra macro. 

arg1, arg2: son los parámetros, también llamados valores de entrada, argumentos o datos que recibe una función para que pueda realizar sus operaciones correctamente, en este ejemplo se colocaron 2 parámetros, se pueden usar, cero o más parámetros según se necesite, si bien "arg1" y "arg2" son los nombres empleados en el ejemplo, se pueden usar otros nombres según se necesite.

resultado: es una variable que permite almacenar un dato de forma temporal (mientras este ejecutándose la función)

MiSuma = resultado: Esta parte sirve para retornar una respuesta al que haya invocado la función, debe repetirse el nombre de la función, y al lado derecho del "=" se debe colocar lo que se quiera responder por medio de la función. 

End  Function: En VBA este es el cierre de la función

 

¿Cómo llamar a una función  en VBA? 

Desde una celda en Excel; debemos usar el mismo nombre de la función, en el caso del ejemplo sería "=misuma" , usando el mismo separador de los valores de entrada que siempre usamos en las celdas de Excel. Si bien en la imagen mostrada colocamos valores directamente también podríamos indicar celdas específicas como: = Misuma(A1, A2) 

Crear funcion vba Excel

Desde otra macro: al igual que cualquier otra función de Visual Basic para Aplicaciones (VBA), debe colocar el nombre de la función, y entregarle los valores de entrada o parámetros necesarios. 

Función personalizada en Excel

 

Consejos para aprender a crear funciones en VBA

Primero examine los temas introductorios de VBA, en ellos encontrará los conceptos iniciales para el uso de macros.

Las funciones que son creadas por medio de VBA, también son llamadas "Funciones definidas por el usuario", revise al menos 2 ejemplos disponibles en User Defined Function .

Luego revise las estructuras de control en VBA, estas le permitirán resolver casos mas complejos.

Ejercicio de UDF

A fin de practicar su dominio sobre el tema realice el siguiente ejercicio propuesto:

  • Elabore 2 funciones, de un tema libre cada una, cada una de las funciones a crear debe utilizar al menos una estructura de control (o bucle en VBA)
  • Las funciones creadas (UDF) deben ser empleadas desde alguna de las hojas de Excel.
  • Una de las dos funciones definidas por el usuario a crear, debe recibir un rango de celdas.

Tome en consideración que, en los primeros ejemplos, los parámetros o valores recibidos son valores únicos (una fecha, un número, un texto, etc.) , para crear una función en VBA que utilice un rango de celdas revise los ejemplos de funciones con rangos de celdas en VBA.

Deja una respuesta

Los campos requeridos estan marcados con *.