Descargar el PDF
Descargar el PDF
Si bien Excel tiene muchas, tal vez cientos, de funciones integradas, tales como SUMAR, BUSCARV, IZQUIERDA, entre otras, una vez que comiences a utilizarlo para realizar tareas más complicadas, descubrirás que necesitas una función que no existe. No te preocupes, no estás completamente perdido, lo único que necesitas hacer es crear dicha función tú mismo.
Pasos
-
Crea un libro nuevo o abre uno en el que quieras usar la función definida por el usuario (conocida también como "UDF", por su sigla en inglés) recién creada.
-
Abre el Editor de Visual Basic, que se encuentra en Microsoft Excel yendo a Herramientas > Macro > Editor de Visual Basic (o presionando Alt+F11).
-
Agrega un módulo nuevo en el libro haciendo clic en el botón mostrado. Puedes crear la función definida por el usuario en la misma hoja de cálculo sin necesidad de añadir un módulo nuevo, pero al hacerlo no podrás utilizarla en otras hojas dentro del mismo libro.
-
Crea la premisa de la función. Debe tener la siguiente estructura:
Function: "Nombre de la función" (param1 As tipo1, param2 As tipo2) As Tipo de retorno . Esta puede tener el número de parámetros que quieras y su tipo puede ser cualquiera de los tipos de datos básicos de Excel o tipos de objetos, tales como "Rango". Imagina que los parámetros son los "operandos" con los cuales funcionará tu función. Por ejemplo, cuando dices SEN(45) para calcular el seno de 45 grados, dicho número se tomará como un parámetro. Por lo tanto, el código de tu función empleará ese valor para calcular algo más y presentará el resultado. -
Agrega el código de la función asegurándote de 1) utilizar los valores proporcionados por los parámetros; 2) asignar el resultado al nombre de la función y 3) cerrar la función con la frase "End function". Aprender a programar en VBA o en cualquier tipo de lenguaje de programación distinto puede tardar un poco de tiempo además de precisarse de un tutorial detallado. Sin embargo, normalmente las funciones tienen bloques de código pequeños y utilizan muy pocas características de un lenguaje de programación. Los elementos más útiles del lenguaje VBA son:
- El bloque If
(si) ejecuta una parte del código únicamente cuando se cumple una condición, por ejemplo:
Function Resultado del curso(grado As Integer) As String
If grado >= 5 Then
Resultado = "Aprobado"
Else
Resultado = "Rechazado"
End If
End Function
Observa los elementos en un bloque de código If :IF condición THEN código ELSE código END IF
. La palabra clave Else (sino) junto con la segunda parte del código son opcionales. - El bloque Do
(hacer) ejecuta una parte del código While
(mientras) o Until
(hasta) cuando se cumple una condición, por ejemplo:
Function EsPrimo(value As Integer) As Boolean
Dim i As Integer
i = 2
IsPrime = True
Do
If value / i = Int(value/ i) Then
EsPrimo = False
End If
i = i + 1
Loop While i <value And EsPrimo = True
End Function
Observa nuevamente los elementos:DO código LOOP WHILE/UNTIL condición
. También observa la segunda línea en la cual "se declara" una variable. Puedes agregar variables al código a fin de que puedas utilizarlas más adelante. Las variables actúan como valores temporales dentro del código. Por último, observa la declaración de la función como BOOLEAN, la cual es un tipo de datos que solo permite los valores TRUE (verdadero) y FALSE (falso). Este método de determinar si un número es primo no es muy óptimo, pero se ha dejado de esta manera para hacer que el código sea más sencillo de leer. - El bloque For
(para) ejecuta una parte del código una cantidad específica de veces, por ejemplo:
Function Factorial (value As Integer) As Long
Dim resultado As Long
Dim i As Integer
If value= 0 Then
resultado = 1
ElseIf value= 1 Then
resultado = 1
Else
resultado = 1
For i = 1 To value
resultado = resultado * i
Next
End If
Factorial = resultado
End Function
Observa nuevamente los elementos:FOR variable = límite inferior TO límite superior código NEXT
. También observa el elemento añadido ElseIf en la declaración If , la cual permite añadir más opciones al código que se ejecutará. Por último, observa la declaración de la función y de la variable "resultado" como Long . El tipo de datos Long permite valores mucho mayores que Integer .
Más adelante se muestra el código para una función que convierte números pequeños a palabras.
- El bloque If
(si) ejecuta una parte del código únicamente cuando se cumple una condición, por ejemplo:
-
Vuelve al libro y utiliza la función comenzando por el contenido de una celda con un signo igual (=) seguido del nombre de tu función. Al nombre de la función, adjunta un paréntesis de apertura, los parámetros separados con comas y un paréntesis de cierre. Por ejemplo:
=NumberToLetters(A4)
También puedes utilizar la fórmula definida por el usuario buscándola en la categoría Funciones definidas por el usuario en el asistente de fórmula "Insertar". Haz clic en el botón Fx ubicado a la izquierda de la barra de fórmulas. Los parámetros pueden ser de tres tipos:- Los valores constantes escritos directamente en la fórmula de la celda. Las cadenas de caracteres deben estar citadas en este caso.
- Las referencias de celda como B6 o de rango como A1:C3 (el parámetro debe ser del tipo de datos Rango ).
- Otras funciones que se encuentran dentro de tu función (tu función también puede encontrarse dentro de otras funciones). Es decir: =Factorial(MAX(D6:D8))
-
Verifica que el valor sea el correcto después de utilizar la función varias veces para asegurarte de que maneje valores de parámetros diferentes de la manera correcta.Anuncio
Consejos
- Cada vez que escribas un bloque de código dentro de una estructura de control como "If", "For", "Do", entre otros, asegúrate de dejar una sangría al bloque de código dejando algunos espacios en blanco o tabulando (el estilo de sangría depende de ti). Esto hará que tu código sea más sencillo de entender y también será mucho más fácil detectar errores y hacer mejoras.
- Excel tienen muchas funciones integradas y la mayoría de los cálculos pueden hacerse utilizándolos de manera independiente o en combinación con otros. Asegúrate de revisar la lista de funciones disponibles antes de comenzar a hacer la tuya propia. Realizar cálculos puede ser más rápido si empleas las funciones integradas.
- Utiliza un nombre que no esté definido como el nombre de una función en Excel, sino solo podrás emplear una de ellas.
- En ocasiones, una función podría no requerir todos los parámetros para calcular un resultado. En ese caso, puedes usar la palabra clave Opcional antes del nombre del parámetro en el encabezado de la función. Puedes emplear la función IsMissing(nombre_del_parámetro) dentro del código para determinar si el parámetro se asignó o no a un valor.
- Si no sabes cómo escribir el código para una función, lee el artículo "Cómo crear un macro en Excel" .
Anuncio
Advertencias
- Debido a las medidas de seguridad, algunas personas pueden deshabilitar las macros. Asegúrate de decirles a tus colegas que el libro que les envías tiene macros y que pueden confiar en que no dañarán sus computadoras.
- Las funciones empleadas en el presente artículo no son de ninguna manera la única forma de resolver los problemas relacionados. Se utilizaron en el presente únicamente para explicar el uso de las estructuras de control del lenguaje de programación.
- El VBA, como con cualquier otro lenguaje de programación, tiene varias estructuras de control diferentes además de "Do", "If" y "For". Estas se han explicado en el presente artículo únicamente para aclarar el tipo de cosas que pueden realizarse dentro del código fuente de la función. Existen muchos tutoriales disponibles en Internet en los que puedes aprender VBA.
Anuncio
Acerca de este wikiHow
Esta página ha recibido 38 013 visitas.
Anuncio