Sei sulla pagina 1di 16

INTRODUCCIN A VISUAL BASIC PARA APLICACIONES

FUNCIONES DEFINIDAS POR EL USUARIO CON VBA

Visual Basic para Aplicaciones (VBA)


VBA proporciona un lenguaje de programacin completo y un entorno
totalmente integrado con Excel y con todas las dems aplicaciones de
Microsoft Office.

UTILIZAR EL EDITOR DE VBA PARA CREAR UNA FUNCIN


DEFINIDA POR EL USUARIO

Una funcin de usuario es una lista guardada de instrucciones para


Excel que produce un valor. Una vez definida, una funcin de usuario
se puede utilizar dentro de una hoja de clculo de Excel como
cualquier otra funcin. En esta seccin escribiremos nuestra primera
funcin definida por el usuario. Antes de poder realizar esta tarea,
debe activar el editor de VBA. Puede hacerlo desde el men Excel
(Herramientas | Macro | Editor de Visual Basic) o mediante el mtodo
abreviado de teclado [Alt] + F11. El resultado en ambos casos es una
nueva ventana.
Una funcin definida por el usuario debe escribirse en un mdulo.
Para abrir un nuevo mdulo, seleccione Insertar mdulo desde el
men del entorno del editor de VBA.
Ahora estamos listos para escribir nuestra primera funcin.
Una funcin definida por el usuario en Excel tiene tres elementos
obligatorios:
1. Una lnea de cabecera con el nombre de la funcin y una lista de
parmetros.
2. Una lnea de cierre (generalmente insertada por VBA).
3. Algunas lneas de programa entre el encabezado y la lnea de
cierre. Tan pronto como termine la lnea con un toque en la tecla
Intro, VBA har un trabajo de limpieza. El color de todas las palabras
que VBA reconoce como parte de su lenguaje de programacin
("palabras reservadas") cambiar. Todas las palabras reservadas
estarn maysculas. La lnea de cierre de la funcin se insertar y el
cursor estar en posicin entre el encabezado y la lnea de cierre
listos para que pueda continuar escribiendo. Ahora estamos listos
para escribir nuestra lnea de funcin. Esta es la lnea que hace que
nuestra funcin haga algo.

Ejemplo:
Nuestra primera funcin tomar una variable, la multiplicar por 3 y
agregar 1:
Ahora puede utilizar esta funcin en su hoja de clculo:

Tambin puede utilizar la funcin en el Asistente para funciones de


Excel. Al hacer clic en el icono fx de la barra de herramientas se
mostrar la siguiente pantalla:

Si selecciona "Definido por el usuario" en el men desplegable,


aparecer la siguiente pantalla con una lista de todas las funciones
definidas por el usuario; Uno de ellos debe ser la funcin Function1.
Cuando selecciona Funcin1 y hace clic en Aceptar, ver que Excel
trata esto como cualquier otra funcin, abriendo un cuadro de dilogo
que pide la ubicacin o el valor de Parmetro.
Observe que en este punto no hay explicacin o ayuda para la
funcin.
36.3 Proporcionar ayuda para funciones definidas por el usuario en el
Asistente para funciones
El asistente de funciones de Excel proporciona una breve lnea de
ayuda (una explicacin de lo que hace la funcin).
Para adjuntar una descripcin de texto a Function1, active el cuadro
de seleccin de macros. Puede hacerlo desde el men Excel
(Herramientas | Macro | Macros) o mediante el mtodo abreviado de
teclado [Alt] + F8.
Haga clic en el cuadro Nombre de la macro y escriba el nombre de la
funcin. (Tenga en cuenta que no ha visto el nombre de la funcin en
el cuadro de dilogo de macro anterior, tiene que escribirlo.)
Haga clic en el botn Opciones.
Escriba la descripcin en el cuadro Descripcin, haga clic en Aceptar
y cierre el cuadro de seleccin de macros utilizando el botn Cancelar
o la esquina X. Function1 ahora tiene una lnea de ayuda.
Las funciones de Excel tienen lneas de ayuda conectadas a cada uno
de los parmetros y una entrada de archivo de ayuda. Podemos
suministrar lo mismo para nuestra funcin.

REPARANDO ERRORES EN VBA

ERROR 1: Usar la sintaxis equivocada

Suponga que cuando escribe Function1 olvidas el signo mas entre


Parameter*3 y el 1, (siendo que la funcion se supone que te debe
regresar Paramater*3 +1) Una vez que presiones la tecla Enter,
aparecer el siguiente error:
Dando click en el boton Ok nos permite corregir el problema.

ERROR 2: La sintaxis correcta con un error de escritura

En este ejemplo definimos dos funciones- Function1 y Function2.


Desafortunadamente la linea de programacion para Function2 llama por
error la funcion Function1.

El editor de VBA no reconoce este error. Slo cuanto se intenta usar la


funcion en una hoja, Excel notifica que se ha cometido un error. Este
error te regresa al editor VBA.

Si reconoces el error, puedes corregirlo. Tambien puedes intentar ir a la


ayuda de VBA dando click en Ayuda (Help) (en muchos casos este
intento puede llevarte a una explicacion complicadamente
incomprensible.
Suponiendo que reconoces el error. Das click en Ok y corrige el error
remplazando la palabra Function1 por Function2. En este punto la
pantalla debe verse asi
A. La palabra [break] o [cdigo] aparece en la barra de titulo
B. La igualdad incorrecta esta seleccionado
C. La linea de la funcion esta resaltada y sealada por una flecha en
el margen

Como VBA encontro un error mientras intentaba ejeutar la funcion,


cambia a un modo de ejecucion especial. Por ahora todo lo que
tenemos que hacer es salir de este modo especial para regresar a
nuestro trabajo.Lo hacemos dando click en el icono apropiado en la
barra de herramientas de VBA (un pequelo cuadrado negro). Ahora
podemos arreglar la funcion y usarla

EJECUCUCION CONDICIONAL: USANDO DECLARACIONES CON IF


EN FUNCIONES DE VBA

Las declaraciones con If es la manera mas siple de controlar la


ejecucion de una funcion VBA: una declaracion es ejecutada si una
condicion es verdadera o se cumople, y otra es ejecutada si no se
cumple. La condicion completa y sus declaraciones deben estar en
una linea, a ontinuacuon un ejemplo:
La linea de declaracion de if no necesita la parte de Else. La siguiente
funcion regresa 0 si la condicion no se cumple.

ASIGNARLE PRIMERO UN VALOR A LA FUNCION

De esta manera sabemos que SimpleIf3 dara -16 si la condicion del


parametro no es cumplida.
DECLARACIONES IF ELSE IF

Si mas de una declaracion condicional sera ejecutada se usa el ElseIf


con la siguiente sintaxis

Else o ElseIf son opcionales. Puedes tener tantos ElseIf como quieras
despues de un If, pero ninguno puede estar despues del Else. Los If
puedes estar contenidos uno dentro del otro.
ESTRUCTURA IF ANIDADOS

Un If puede ser usado como parte de las declaraciones usadas en otro


If. La estructura de un programa que que tiene algun if dentro de
otros se le llama estrucura de If anidados.
SELECT CASE
El select Case es usado para ejecutar uno de varios grupos de
declaraciones, dependiendo del valor de una expresion.
USAR FUNCIONES DE EXCEL EN VBA

VBA puede hacer uso extensivo de las funciones de hoja de clculo de


Excel.
Como ejemplo se calcular el valor de la distribucin de probabilidad de
una variable aleatoria binomial, la cual se define como:

( p ,n , x ) n p x ( 1 p )n x
() x

Utilizamos Application.Combin (n, x) para calcular el coeficiente


binomial. Esta funcin es equivalente a la funcin de hoja de clculo de
Excel Combin (). La mayora, pero no todas, las funciones de hoja de
clculo de Excel se pueden utilizar en VBA de la siguiente manera:
Application.Nombre.
El guin bajo ( _ ) precedido por un espacio al final de la lnea permite
continuar una sentencia en la siguiente lnea.
Uso de funciones definidas por el usuario en funciones definidas por el
usuario
Las funciones definidas por el usuario se pueden utilizar en otras
funciones definidas por el usuario, al igual que las funciones de Excel.
COMBIN se define como
n!
c ( n , x )=
x ! ( nx ) !
Donde n! Significa la funcin factorial. [Recuerde que la funcin factorial
n! Se define para cualquier n> 0: 0! = 1, y para n> 0, n! N * (n - 1) * (n -
2). . . 1.]
Ahora vamos a escribir nuestra versin VBA de las dos funciones: la
funcin factorial y la funcin COMBIN.
Ahora podemos usar Factorialpropio para crear nuestra versin VBA de
Combin (que llamaremos Combinpropio):
Finalmente, podemos usar Combinpropio para crear una versin VBA de
la funcin binomial:

Resultado
ERRORES DE CELDA EN EXCEL Y VBA

Excel utiliza un tipo especial de valor para informar de errores. La


funcin CVErr () es parte de VBA. Convierte un valor proporcionado por
usted al tipo especial de valor utilizado para errores en Excel. Excel tiene
una serie de valores de error que una funcin puede volver a sealar
que algo sali mal.
Ejemplo:

Resultado

Los valores de error y su explicacin se enumeran en la siguiente tabla.


Cada error se explica mediante un breve ejemplo que sigue a la tabla.
F(0)=0
F(1)=1
F(n)=F(n-2)+F(n-1)

Potrebbero piacerti anche