Está en la página 1de 16

Funciones

en VBA
¿Qué es una función en VBA?

Una función se define como el proceso que


ejecuta un código programado y entrega un valor.
La principal diferencia entre una función y una
Macro es que la función requiere una o varias
variables de entrada para realizar una serie de
operaciones con ellas y después devolver un
resultado.

La siguiente clasificación de las funciones en VBA


se basa en el propósito de las funciones, y los
tipos datos que están involucrados en estas
funciones.

A continuación, veremos los tipos de funciones


que existen en VBA.

Funciones de Fecha y Hora en VBA

Estas Funciones de Fecha y Hora en VBA permiten


la manipulación de años, meses, días y horas, y
realizar diversas operaciones con estos datos.

Funciones Matemáticas en VBA

Las funciones matemáticas en Visual Basic son


sentencias escritas en el lenguaje de
programación de computadora Visual Basic. Éstas
permiten a los programadores especificar varias
funciones matemáticas básicas dentro de un
programa en Visual Basic.
Funciones de Archivo en
VBA

Las Funciones de Archivo en VBA


nos permiten realizar algunas
operaciones tanto con los
archivos como con las carpetas
por medio de Macros.

Funciones de Conversión en VBA

El propósito de estas funciones es


poder convertir una expresión (un
texto o número) en un tipo de dato
específico que requiera ser
empleado. Si bien algunas de las
conversiones son realizadas de
forma automática, la forma
apropiada de realizar estas
conversiones es por medio de
estas 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.
FUNCIONES DE
CADENAS

A continuación, se enumeran algunas funciones de Visual Basic para


buscar y manipular cadenas:

Asc, AscW: Devuelve un valor que representa el código de carácter


correspondiente a un carácter.

Chr, ChrW: Devuelve el carácter asociado al código de carácter


especificado.

Filter: Devuelve una matriz de base cero que contiene un subconjunto de


una matriz en función de los criterios de filtro especificados.

Format: Devuelve una cadena con formato según las instrucciones


contenidas en una expresión de formato.
FormatCurrency: Devuelve una expresión
formateada como un valor de moneda
utilizando el símbolo de moneda definido en el
panel de control del sistema.

FormatDateTime: Devuelve una expresión de


cadena que representa un valor de fecha y
hora.

FormatNumber: Devuelve una expresión con


formato de número.

FormatPercent: Devuelve una expresión


formateada como un porcentaje (es decir,
multiplicado por 100) con un carácter % final.

InStr: Devuelve un entero que especifica la


posición inicial de la primera aparición de una
cadena dentro de otra.

InStrRev: Devuelve la posición de la primera


aparición de una cadena dentro de otra,
empezando por el lado derecho de la cadena.

Join: Devuelve una cadena creada uniendo un


número de subcadenas contenidas en una
matriz.

LCase: Devuelve una cadena o un carácter


convertido a minúsculas.

Left: Devuelve una cadena que contiene un


número especificado de caracteres del lado
izquierdo de una cadena.
Len: Devuelve un entero que contiene el número de caracteres de una
cadena.

LSet: Devuelve una cadena alineada a la izquierda que contiene la


cadena especificada ajustada a la longitud especificada.

LTrim: Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios iniciales.

Mid: Devuelve una cadena que contiene un número especificado de


caracteres de una cadena.

Replace: Devuelve una cadena en la que se ha reemplazado una


subcadena especificada con otra subcadena un número especificado de
veces.

Right: Devuelve una cadena que contiene un número especificado de


caracteres del lado derecho de una cadena.

RSet: Devuelve una cadena alineada a la derecha que contiene la cadena


especificada ajustada a la longitud especificada.

RTrim: Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios finales.
Space: Devuelve una cadena que consta del número especificado de
espacios.

split: Devuelve una matriz unidimensional de base cero que contiene un


número especificado de subcadenas.

StrComp: Devuelve -1, 0 o 1, según el resultado de una comparación de


cadenas.

StrConv: Devuelve una cadena convertida según lo especificado.

StrDup: Devuelve una cadena u objeto que consta del carácter


especificado que repite el número especificado de veces.

StrReverse: Devuelve una cadena en la que se invierte el orden de


caracteres de una cadena especificada.

Trim: Devuelve una cadena que contiene una copia de una cadena
especificada sin espacios iniciales o finales.

Ucase: Devuelve una cadena o carácter que contiene la cadena


especificada convertida a mayúsculas.
FECHA Y HORA
EN VBA

Los valores de fecha y hora en VBA se pueden manipular de diversas


formas. En esta ocasión veremos cómo obtener el año, mes y día en VBA y
cómo hacer operaciones básicas con fechas.

Para realizar estos ejemplos se debe colocar un control de botón en una


hoja de Excel y colocar las líneas de código mostradas.

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.

En este ejemplo las variables fechaActual y horaActual contienen la fecha y


horas actuales respectivamente.
AÑO, MES Y DÍA

Obtener 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.

Al trabajar con fechas podremos obtener el mes utilizando la función


Month y para obtener el día la función Day.
HORA, MINUTO Y
SEGUNDO

Obtener la hora, minuto y segundo

Para obtener la hora de la variable horaActual utilizaremos la función Hour


de la siguiente manera:

Para obtener el minuto y el segundo podremos utilizar las funciones


Minute y Second.
Convertir una cadena de texto en fecha

Ya hemos visto que la función Date nos devuelve la fecha actual, pero
podemos utilizar otra función que nos permitirá convertir una cadena de
texto en una fecha. La función que utilizaremos para este será la función
DateValue.

El único argumento de la función DateValue es la cadena de texto que


convertirá en fecha.
Sumar días a una fecha

Para sumar días a una fecha en VBA utilizaremos la función DateAdd. Esta
función nos permite especificar la cantidad exacta de días a sumar:

El primer argumento de la función DateAdd determina la unidad de tiempo


que será sumada. En este ejemplo especifiqué “d” para indicar días, pero
podemos utilizar otras medidas de tiempo.

“yyyy” para años


“m” para meses
“d” para días
“ww” para semanas

Las fechas y horas son un tipo de dato muy común con el que seguramente
tendrás que trabajar al crear tus macros. Es importante que aprendas a
utilizar las funciones VBA que nos permitirán manipular adecuadamente la
información.
Crear una función en VBA

A continuación, veremos dos ejemplos de cómo crear una función en Visual


Basic para aplicaciones, con el propósito de lograr un mejor entendimiento
se realizará una función de tipo cadena y función matemática.

Ejemplo de funciones de cadena: función Left

La función Left extrae una cantidad determinada de caracteres


comenzando desde la izquierda del texto.

La sintaxis de la función Left es la siguiente:

Left (palabra, extensión)

Palabra: Esta contiene la cadena a la cual se extraerá una cantidad de


caracteres.
Extensión: Expresión numérica, la cual será la cantidad de caracteres
que se extraerán.

En este ejemplo utilizaremos la función Left para extraer los primero cuatro
dígitos de un código.

El código es insertado en la celda B5 y la extensión que necesitamos es solo


de 4 caracteres
Los caracteres extraídos se mostrarán en la celda D5.

De esta forma acabamos de realizar nuestra primera macro utilizando la


función de cadena Left
Ejemplo de funciones matemática: Función INT

La función INT elimina los decimales si el valor numérico está por


encima de 0 (cero) y devuelve un entero negativo menor o igual al
argumento dado.

A continuación, veremos cómo utilizar esta función en VBA

Se debe generar una macro e ingresar la siguiente codificación:

Como podemos observar al ejecutar la Macro, la parte fraccionaria de


un número positivo se elimina dejando solo el entero positivo, por
ejemplo: 34.7 => 34, sin embargo, un número negativo, ejemplo –65,4 se
convierte al entero negativo que es menor o igual que el argumento.
-65,4 => -66.

También podría gustarte