Está en la página 1de 14

CENTRO NACIONAL DE

FORMACIÓN VIRTUAL

Excel Avanzado
TABLA DE CONTENIDO

MODULO VI: FUNCIONES EN VBA Y UDF


Concepto.........................................................................................................4
Tipos de funciones..........................................................................................5
Utilidad de cada función.................................................................................6
Operadores lógicos.......................................................................................10
La declaración If-Then en VBA......................................................................11
La declaración If-Then-Else en VBA..............................................................12
Funciones definidas por el usuario (UDF)....................................................13
Fuentes bibliográficas:.................................................................................14
Módulo VI
FUNCIONES EN VBA Y
UDF
G U Í A D E E X C E L A V A N Z A D O

Concepto

Una función es un proceso que ejecuta un código programado y devuelve un valor.


La diferencia fundamental entre una función y una macro es que la primera
requiere una o varias variables de entrada para realizar una serie de operaciones
con ellas y después devolver un resultado. Una macro sin embargo, no requiere
una variable de entrada, y puede realizar multitud de procesos (ej. Crear una hoja
nueva en el documento) sin necesidad de devolver un resultado.

Tipos de funciones

Funciones de Cadena en VBA

Las funciones de Cadena en VBA sirven para manipular las cadenas de texto
en VBA, estas funciones también son conocidas como Funciones de Texto en
VBA.

Unir cadenas de texto

Para unir dos (o más) cadenas de texto podemos utilizar el operador &.

La función Left: en VBA nos ayuda a extraer un número determinado de


caracteres a la izquierda de la cadena de texto.

La función Right: nos permite extraer caracteres a la derecha de una cadena


de texto.

4
G U Í A D E E X C E L A V A N Z A D O

Fecha y hora en VBA

Los valores de fecha y hora en VBA pueden ser manipulados de diversas maneras.
En esta ocasión aprenderemos cómo obtener el año, mes y día en VBA y cómo
hacer operaciones básicas con fechas.

Obtener la fecha y hora actual

Para obtener la fecha actual en VBA utilizamos la función Date y para obtener la
hora actual usamos Now.

Obtener el año, mes y día

En el ejemplo anterior he obtenido la fecha actual en la variable fechaActual, sin


embargo, si deseo mostrar solamente el año puedo utilizar la función Year.

5
G U Í A D E E X C E L A V A N Z A D O

Utilidad de cada función

Las siguientes Funciones en VBA o Macros podrían ser de mucha ayuda para las
diversas tareas en las que nos veamos involucrados en resolver, en esta relación
tenemos un acercamiento a las funciones en VBA más usuales que podríamos
llegar a emplear.

Abs
Regresa el valor absoluto de un número.

Asc
Obtiene el valor ASCII del primer caracter de una cadena de texto.

CBool
Convierte una expresión a su valor booleano.

CByte
Convierte una expresión al tipo de dato Byte.

CCur
Convierte una expresión al tipo de dato moneda (Currency).

CDate
Convierte una expresión al tipo de dato fecha (Date).

CDbl
Convierte una expresión al tipo de dato doble (Double).

CDec
Convierte una expresión al tipo de dato decimal (Decimal).

Choose
Selecciona un valor de una lista de argumentos.

Chr
Convierte un valor ANSI en valor de tipo texto.

6
G U Í A D E E X C E L A V A N Z A D O

CInt
Convierte una expresión en un dato de tipo entero (Int).

CLng
Convierte una expresión en un dato de tipo largo (Long).

CreateObject
Crea un objeto de tipo OLE.

CStr
Convierte una expresión en un dato de tipo texto (String).

CurDir
Regresa la ruta actual.

CVar
Convierte una expresión en un dato de tipo variante (Var).

Date
Regresa la fecha actual del sistema.

DateAdd
Agrega un intervalo de tiempo a una fecha especificada.

DateDiff
Obtiene la diferencia entre una fecha y un intervalo de tiempo especificado.

DatePart
Regresa una parte específica de una fecha.

DateSerial
Convierte una fecha en un número serial.

DateValue
Convierte una cadena de texto en una fecha.

Day
Regresa el día del mes de una fecha.

7
G U Í A D E E X C E L A V A N Z A D O

Dir
Regresa el nombre de un archivo o directorio que concuerde con un patrón.

EOF
Regresa verdadero si se ha llegado al final de un archivo.

FileDateTime
Regresa la fecha y hora de la última modificación de un archivo.

FileLen
Regresa el número de bytes en un archivo.

FormatCurrency
Regresa un número como un texto con formato de moneda.

FormatPercent
Regresa un número como un texto con formato de porcentaje.

Hour
Regresa la hora de un valor de tiempo.

IIf
Regresa un de dos partes, dependiendo de la evaluación de una expresión.

InputBox
Muestra un cuadro de diálogo que solicita la entrada del usuario.

InStr
Regresa la posición de una cadena de texto dentro de otra cadena.

InStrRev
Regresa la pocisión de una cadena de texto dentro de otra cadena pero
empezando desde el final.

Int
Regresa la parte entera de un número

8
G U Í A D E E X C E L A V A N Z A D O

IsDate
Regresa verdadero si la variable es una fecha.

IsEmpty
Regresa verdadero si la variable está vacía.

IsError
Regresa verdadero si la expresión es un valor de error.

IsNull
Regresa verdadero si la expresión es un valor nulo.

IsNumeric
Regresa verdadero si la variable es un valor numérico.

Join
Regresa una cadena de texto creada al unir las cadenas contenidas en un arrreglo.

LCase
Regresa una cadena convertida en minúsculas.

Left
Regresa un número específico de caracteres a la izquierda de una cadena.

Len
Regresa la longitud de una cadena (en caracteres).

MsgBox
Despliega un cuadro de dialogo con un mensaje especificado.

Now
Regresa la fecha y hora actual del sistema.

9
G U Í A D E E X C E L A V A N Z A D O

Operadores lógicos en VBA

Los operadores lógicos más comunes en VBA son: And y Or. Cada uno de estos
operadores es de mucha utilidad para evaluar condiciones y tomar decisiones
adecuadas sobre el código que será ejecutado.

El operador lógico And

El operador lógico And es el operador que nos ayuda a forzar el cumplimiento de


dos condiciones. Este operador lo traducimos como “Y” de manera que para
ejecutar un bloque de código se debe cumplir la condición1 Y la condición2.

El operador lógico Or

El operador lógico Or lo traducimos como “O” y nos permitirá saber si al menos una
de las condiciones se cumple, es decir, si la condición1 O la condición2 se cumplen.

10
G U Í A D E E X C E L A V A N Z A D O

La declaración If-Then en VBA

En ocasiones necesitamos ejecutar algunas líneas de código de nuestra macro


solamente cuando alguna condición se haya cumplido. La declaración If-Then nos
permite validar una condición para tomar una decisión adecuada.

La sentencia If-Then en VBA es la más básica de todas las declaraciones de control


de flujo que son aquellas declaraciones que nos permiten tomar decisiones en
base a una condición.

Ejemplo de la declaración If-Then

Primero se hace la declaración de las variables que utilizaré en el resto del


código.
Segundo se asigna el valor de la celda B1 a la variable calificación.
Tercero paso contiene la declaración If-Then y que prueba Si el valor de la
variable calificación es mayor o igual a 60. En caso de ser verdadero Entonces
se asigna el valor “Aprobado” a la variable resultado.
Se asigna el valor de la variable resultado a la celda B2.

11
G U Í A D E E X C E L A V A N Z A D O

La declaración If-Then-Else en VBA

Parece que todo funciona muy bien en el código anterior pero aún lo podemos
mejorar agregando la declaración Else de manera que tengamos una declaración
de la forma If-Then-Else. Esta variante nos permite hacer la siguiente evaluación: Si
se cumple la condición Entonces haz esto De lo contrario haz otra cosa.

La declaración Else en VBA nos permite indicar otro bloque de instrucciones que se
deben ejecutar en caso de que la condición sea falsa. De esta manera podemos
tomar una acción determinada en caso de que la condición se cumpla o en caso de
que no se cumpla. Ahora modificaremos el ejemplo anterior para asegurarnos de
que en caso de que la condición de calificación mayor o igual a 60 no se cumpla se
despliegue el resultado “reprobado”. Observa el siguiente código.

Ejemplo de la declaración If-Then

Primero se hace la declaración de las variables que utilizaré en el resto del


código.
Segundo se asigna el valor de la celda B1 a la variable calificación.
Tercero paso contiene la declaración If-Then-Else y que prueba Si el valor de la
variable calificación es mayor o igual a 60. En caso de ser verdadero Entonces
se asigna el valor “Aprobado” a la variable resultado, si es falsa se le asigna
"Reprobado".
Se asigna el valor de la variable resultado a la celda B2.

12
G U Í A D E E X C E L A V A N Z A D O

Funciones definidas por el usuario (UDF)

Una función definida por el usuario (UDF) es una función que puede crear usted
mismo y, a continuación, agregar a la lista de funciones disponibles en Excel
cuando Excel no proporciona el tipo de función que desee desde el primer
momento.

Las funciones definidas por el usuario, conocidas también como UDF por sus siglas
en Inglés (User Defined Functions) permiten, por medio del uso de macros o
código VBA, el contar con funciones similares a las que existen de forma
predefinida en Excel.

Ejemplo de funciones definidas por el usuario

Mostrar la fórmula de una celda

Excel nos da lo opción de mostrar todas las fórmulas de las celdas de una hoja en
lugar de su resultado, sin embargo es probable que en alguna ocasión necesites
mostrar solamente la fórmula contenida en alguna celda específica

Debemos guardar el archivo como un Libro de Excel habilitado para macros de


manera que podamos utilizar la nueva función creada.

El siguiente paso es utilizar la función MostrarFormula y para ello he


colocado en la celda A1 la fórmula:
=SUMA(5+5+5+5+5+5)
Ahora en la celda C1 utilizaremos nuestra función VBA de la siguiente
manera:
=MostrarFormula(A1)

13
FUENTES BIBLIOGRÁFICAS

Fuentes Bibliográficas:

5 ejemplos para comenzar a usar Macros. (z.d.). Excel Avanzado.


Geraadpleegd op 18 maart 2022, van https://www.excel-

avanzado.com/18957/5-ejemplos-para-comenzar-a-usar-macros.html
Microsoft. (z.d.-a). Crear funciones personalizadas en Excel.
Geraadpleegd op 18 maart 2022, van https://support.microsoft.com/es-
es/office/crear-funciones-personalizadas-en-excel-2f06c10b-3622-
40d6-a1b2-b6748ae8231f
Cruz, L. (2019, 21 november). VBA: Crea tus propias funciones o
formulas. Excel fácil para mi. Geraadpleegd op 18 maart 2022, van
https://excel.facilparami.com/vba-crear-funciones-formulas-
personalizadas#:%7E:text=Lo%20primero%20que%20tienes%20que,pod
emos%20agregar%20funciones%20y%20macros.

También podría gustarte