Gustavo Guillermo Software - e-business Rosario

FUNCIONES EN VISUAL BASIC

BUZON DE SUGERENCIAS


Las funciones en el entorno de Visual Basic son como los Procedimientos o subrutinas, es decir como el click de un botón o el doble click en un formulario, pero con la diferencia de que estas, devuelven un resultado y los procedimientos NO, el click de un botón puede mostrar el resultado de una cuenta en la pantalla, pero no puede usarse el procedimiento para agregarle (por ejemplo) un 2 y multiplicarlo por un 3, los botones y formularios y todos los Objetos NO PUEDEN OPERARSE, es decir no se los puede restar sumar, multiplicar o dividir o lo que se les ocurra.
Para salvar esta imposibilidad, podemos crear nosotros mismos una función que por ejemplo agregue el IVA a un precio, y obviamente devuelva el resultado para poder ser usado en otras operaciones (cuentas o tomas de decisiones, ver TOMAS DE DECISIONES).
Una función se escribe de una forma muy parecida a una Subrutina o procedimiento (como los clicks de los botones) pero cambia la Sintáxis o Declaración pero es algo muy SUTIL... Veamos este ejemplo. Queremos imprimir en la pantalla muchas veces un precio con el IVA ya agregado, pero entonces en cada CLICK de BOTON tendríamos que programar el produco por 1,21.
Recordemos que los PALITOS ' son e indican un comentario, es para anotar algo en nuestros programas y que no nos olvidemos lo que quisimos hacer. Para poder trabajar, creemos un documento nuevo en WORD y en el Editor de Visual Basic Insertemos un formulario como el del dibujo y le agregamos un botón para hacer algo. Le ponemos nombres cortitos para no escribir mucho en los programas. Por ejemplo al formulario LP (de Listas de Precios) y al Botón VP (de Ver Precios)

Experimento de Funciones

Hagamos Doble Click en el botón VP que dice VER PRECIOS en la propiedad Caption y programemos lo que hay a continuación más abajo.

Private Sub VP_Click()
Dim A As Double 'Números con muchos decimales
A = InputBox("Ingresa el precio que quieres Saber CON IVA")
A = A * 1.21 'Le agregamos el IVA
MsgBox A
End Sub
PROGRAMA EN EL BOTON VP (procedimiento Click)

Pero si vamos al final del texto y escribimos lo siguiente, podremos crear una función que se llame IVA y que devuelva un precio con IVA incluido, esto es muy fácil para multiplicar por 1,21 pero hay veces que lo que tenemos que hacer no es una sencilla multiplicación y nada más, es muy Difícil de hacer y eso de copiar y pegar NO SE USA, por que tendríamos mucho texto y no entenderíamos nada, además que si nos equivocamos en algo, seguro que también nos equivocamos en donde estuvimos pegando y es muy engorroso corregir por todos lados, en cambio si metemos todo en una función, esta se escribe por todos lados con su nombre y no su contenido, o sea que si la corregimos no tendremos que hacerlo en otro lado, Obviamente salvo que no le cambiemos el nombre (pero eso no se nos va a ocurrir ;-))
Ok, vamos al final del texto donde está programado el botón y escribimos lo siguiente (ver lo que no estaba antes) y cuando PRESIONEMOS ENTER veremos que se nos divide la pantalla y se nos Auto Completa con End Function y se ven Coloreados

Private Sub VP_Click()
Dim A As Double 'Números con muchos decimales
A = InputBox("Ingresa el precio que quieres Saber CON IVA")
A = A * 1.21 'Le agregamos el IVA
MsgBox A
End Sub
Function IVA(Precio As Double) As Double|
PASO UNO (Antes de PRESIONAR ENTER

Private Sub VP_Click()
Dim A As Double 'Números con muchos decimales
A = InputBox("Ingresa el precio que quieres Saber CON IVA")
A = A * 1.21 'Le agregamos el IVA
MsgBox A
End Sub
Function IVA(Precio As Double) As Double | End Function
PASO DOS (Después de PRESIONAR ENTER)

¿Que quiere decir eso de Function IVA(.......? Quiere decir, que estamos creando una FUNCION que se va a llamar IVA y que va a necesitar de una variable de tipo NUMERICA que se llamará Precio y la función IVA devolverá un Numero de DOBLE PRECISION. por eso, después del paréntesis dice ") As Double".
Esta función así vacía, no hace absolútamente NADA, pero entonces como devolvemos el Impuesto al Valor Agregado, es decir ¿Dónde lo devolvemos?, es fácil, si IVA es la función, pues ella tendrá que ser igual a ALGO y precisamente será igual al Precio por 1,21.

Private Sub VP_Click()
Dim A As Double 'Números con muchos decimales
A = InputBox("Ingresa el precio que quieres Saber CON IVA")
A = A * 1.21 'Le agregamos el IVA
MsgBox A
End Sub
Function IVA(Precio As Double) As Double IVA = 1.21 * Precio 'Iva, será 1,21 veces el Precio End Function
IVA AHORA DEVUELVE ALGO POR 1.21

Bueno, de que nos sirve tener la función IVA si no la usamos, para ello, cambiemos el texto de la primera Rutina (el click del Botón VP) y usémosla, para usar una función sólo es necesario encerrar entre paréntesis lo que le queramos pasar para que calcule. Por ejemplo:

Si f(X)=X^2 (si f de X es X al cuadrado)

Entonces si X=2 (equis es igual a dos)

f(2) es igual a 4 por que 2^2 = 4 (^: Indica exponente en la INFORMATICA)

f(2) = 4

Entonces si usámos la función IVA podremos calcular el iva de UN PESO:

IVA(1) = 1.21
EXPLICACION SOBRE FUNCIONES

Podremos corregir el texto del click del Botón para que éste use la función IVA.

Private Sub VP_Click()
Dim A As Double 'Números con muchos decimales
A = InputBox("Ingresa el precio que quieres Saber CON IVA")
A = IVA(A) 'Le agregamos el IVA
MsgBox A
End Sub
Function IVA(Precio As Double) As Double IVA = 1.21 * Precio 'Iva, será 1,21 veces el Precio End Function
CODIGO ARREGLADO PARA USAR IVA (Función Creada Por Nosotros)

Pero si queremos ahorrar una línea, por qué no mostrar directamente el valor de la función IVA en vez de Guardarlo en A y mostrar A

Private Sub VP_Click()
Dim A As Double 'Números con muchos decimales
A = InputBox("Ingresa el precio que quieres Saber CON IVA")
MsgBox IVA(A) 'Le agregamos el IVA y lo mostramos al mismo tiempo
End Sub
Function IVA(Precio As Double) As Double IVA = 1.21 * Precio 'Iva, será 1,21 veces el Precio End Function
CODIGO ARREGLADO PARA USAR UNA LINEA MENOS EN EL EVENTO CLICK

Ahora veamos alguna funciones que ya están incluidas en Visual BBasic, o sea que ya están Hechas, IVA es seguro que NO, por eso la tuvimos que crear y ahora la tenemos en el formulario LP. Hay otras que incluso hasta trabajan con texto. Necesitaremos hacer nosotros las nuestras cuando lo que necesitemos no esté hecho y no podamos repetirlo tanto (cuando sean muchas líneas de texto de programa). En la Sección Siguiente FUNCIONES DE CONVERSION veremos cómo podremos usar todo lo que ya está hecho en Visual Basic
Si Corremos este formulario, veremos qué HACE:

Ejecutar el User Form (NO OLVIDARSE DE HACER CLICK ANTES SOBRE EL)
Este no es el Formulario Pero sí es el botón que presionaremos para correr LP (no se olviden de hacer click sobre LP antes de presionar F5 o el botón Play :-))

El Formulario Andando
Hagamos click en el botón...

Se Nos Preguntará...
Se nos hará la pregunta que programamos y LE PEDIMOS el precio de $100 con IVA

Le Pedimos $100 más IVA
Aceptamos y nos dirá...

El resultado de LP
Que por supuesto es correcto...


Acerca de este sitio web Webmaster