Vous êtes sur la page 1sur 30

Apoyo didctico de Visual Basic ISC.

Juan Jos Del ngel Garca

FUNDAMENTOS
Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de
una manera rpida y sencilla, basado en el lenguaje BASIC y en la programacin orientada a objetos. La palabra Visual
hace referencia al mtodo que se utiliza para crear la interfaz grfica de usuario. En lugar de escribir numerosas lneas de
cdigo para implementar la interfaz, simplemente se utiliza el ratn para agregar objetos prefabricados en el lugar deseado
dentro de la pantalla. La palabra Basic hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic Instruction
Code), un lenguaje utilizado por ms programadores que ningn otro lenguaje en la historia de la informtica. Visual Basic
ha evolucionado a partir del lenguaje BASIC original y ahora contiene centenares de instrucciones, funciones y palabras
clave, muchas de las cuales estn directamente relacionadas con la interfaz grfica de Windows.

Visual Basic se basa en la programacin orientada a objetos (POO), la cual es una forma de programacin que utiliza
objetos (similares a los objetos del mundo real) para la solucin de problemas. La POO permite descomponer un problema
en bloques relacionados. Cada bloque pasa a ser un objeto autocontenido que contiene sus propios datos e instrucciones.

De esta manera, la complejidad se reduce y se pueden realizar programas ms largos de una manera sencilla.

VISUAL STUDIO 2010


REQUERIMIENTOS Y CARACTERSTICAS
Visual Studio tiene reservadas determinadas palabras clave para su uso exclusivo. Por ejemplo, si se usan las palabras
clave o reservadas en Visual Studio como If, while, etc.En una sesin de la declaracin o programacin del cdigo, se
estar indicando a visual Studio que debe realizar dicha funcin.
Debe evitar usar una palabra clave reservada como nombre de un objeto. Si el nombre de un objeto coincide con una
palabra clave, cada vez que se haga referencia al objeto debe aparecer entre identificadores delimitadores, como
dobles comillas ( ) o corchetes ([ ]).
Para hacer un comentario en una lnea se puede poner una comilla simple antes de ste (). Ejm.: la declaracin se
hace as.
Visual Studio no distingue las maysculas de las minsculas

MECANISMOS BSICOS DE LA POO


Los mecanismos bsicos de la programacin orientada a objetos son:

Objetos
Propiedades
Mtodos
Eventos
Mensajes
Clases

1
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Objetos
Un objeto es una entidad que tiene atributos particulares (propiedades) y unas formas de operar sobre ellos (mtodos). Por
tanto, un objeto contiene variables que especifican su estado y operaciones que definen su comportamiento. Son ejemplos
de objetos: formularios, botones de comando, cuadros de texto, etiquetas, etc.

Propiedades
El conjunto de datos que describen las caractersticas de un objeto se le conoce como sus propiedades. Para un formulario
tenemos por ejemplo, las propiedades BackColor (color de fondo), Height (altura). Algunas propiedades pueden determinar
el comportamiento de un objeto; por ejemplo, la propiedad MaxButton establece si el formulario tendr o no el botn
Maximizar. Hay propiedades particulares, como Caption que la poseen los botones de comando por ejemplo, y genricas
como Name que la poseen todos los objetos.

Mtodos
Los mtodos son un conjunto de procedimientos que permiten que un objeto ejecute una accin o tarea sobre s mismo. Se
ejecutan como respuesta a un evento, por ejemplo al dar click en un botn de comando. Tambin pueden ser invocados
explcitamente en el programa. Por ejemplo, para un formulario tenemos el mtodo Hide que har que el formulario se
oculte; o el mtodo Show que har que el formulario se vuelva a mostrar.

Eventos
Un evento es la capacidad de un objeto de reaccionar cuando ocurre una determinada accin (accin y reaccin). Como
respuesta a un evento se enva un mensaje y se ejecuta un determinado mtodo (procedimiento). Un evento ocurre (se
dispara) como resultado de la interaccin del usuario con el objeto. Tambin puede dispararse debido a la ejecucin de
cdigo (sentencias) o como resultado de la interaccin de otro objeto con el objeto de poseedor del evento. Para un
formulario tenemos por ejemplo; el evento Load que se dispara cuando se carga el formulario; o el evento Click para un
botn de comando, se dispara cuando se hace clic sobre l.

Mensajes
Un mensaje es una llamada a un mtodo (procedimiento), de tal forma que cuando un objeto recibe un mensaje la
respuesta a ese mensaje es ejecutar el procedimiento asociado. Cuando se ejecuta un programa orientado a objetos, los
objetos estn constantemente recibiendo, interpretando y respondiendo a mensajes de otros objetos.

Clases
Una clase es una descripcin para producir objetos de esa clase o tipo. Es decir se trata de una generalizacin de un tipo
especfico de objetos. En otras palabras, un objeto es una variable del tipo definido por una clase. Por ejemplo, piense en un
molde para hacer pasteles, el molde es la clase y los pasteles los objetos.

CARACTERSTICAS DE LA POO
Las caractersticas fundamentales de la programacin orientada a objetos son:

Abstraccin
Encapsulamiento
Herencia
Polimorfismo

Abstraccin
La abstraccin permite no detenernos en los detalles concretos del funcionamiento de las cosas, sino centrarnos en los
aspectos que realmente nos importan y nos son tiles en un determinado momento, en cierta medida, se podra decir que
es sese el objeto y olvdese de cmo funciona en forma interna. Por ejemplo, para manejar una computadora no
necesitamos saber cmo funcionan sus circuitos electrnicos, en trminos de corriente, tensin, etc.

2
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Encapsulamiento
Esta caracterstica permite ver un objeto como una caja negra autocontenida en la que se ha metido de alguna manera
toda la informacin que maneja dicho objeto. Esto permite manipular los objetos como unidades bsicas, permaneciendo
oculta su estructura interna.

Herencia
La herencia es la caracterstica que permite compartir automticamente propiedades y mtodos entre objetos. Es decir, se
pueden crear nuevas clases de objetos en base a clases existentes. Ms concreto, un objeto puede heredar un conjunto
general de propiedades y mtodos a las que puede aadir aquellas caractersticas que son especficas suyas. El usuario de
Visual Basic no dispone de esta caracterstica.

Polimorfismo
Polimorfismo, del griego cuyo significado es muchas formas, es la caracterstica que permite implementar mltiples
formas de un mismo mtodo, dependiendo cada una de ellas de la clase sobre la que se realiza la implementacin. Esto
hace posible que se puede acceder a una variedad de mtodos distintos (todos con el mismo nombre) utilizando
exactamente el mismo medio de acceso.

LOS OBJETOS DE VISUAL BASIC


Visual Basic soporta la abstraccin, la encapsulacin, el polimorfismo y la reutilizacin de cdigo. La reutilizacin de
cdigo es la capacidad de trasladar caractersticas de un objeto a otro, lo que se logra con alguna forma de herencia. Esto se
consigue mediante la creacin y uso del objeto. Los objetos de Visual Basic estn divididos en dos tipos: controles y
contenedores.

Los controles son un medio grfico que permiten a los usuarios interactuar con la aplicacin para la manipulacin de
datos y ejecucin de tareas. Son ejemplo de controles: etiquetas, cuadros de texto, botones de comando, casillas de
Verificacin, botones de opcin, cuadros de lista, cuadros combinados, etc.

Los contenedores son objetos que pueden incluir otros objetos y permiten el acceso a los objetos que contienen. Entre
los ms utilizados tenemos a los formularios, marcos y cuadrculas. El formulario ms los controles constituyen la
interfaz de la aplicacin.

REFERENCIANDO OBJETOS
La sintaxis para referenciar objetos es la siguiente:
OBJETO.PROPIEDAD = VALOR

Por ejemplo, para establecer el ttulo de un formulario a Visual Basic es fcil, la orden sera:
Form1.Caption = Visual Basic es fcil

LOS EVENTOS
Cada objeto responde a un conjunto de eventos. Como respuesta a un evento se ejecuta un determinado
procedimiento. Los procedimientos asociados a un evento presentan la forma:

Private Sub OBJETO_EVENTO()


SENTENCIAS
End Sub

Este sera un ejemplo:


Private Sub Command1_Click()
Form1.Caption = Text1.Text
End Sub

3
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

ENTORNO DE VISUAL BASIC 2010


El entorno de desarrollo integrado (IDE) de Visual Basic consta de los siguientes elementos:

Descripcin del IDE de Visual 2010


1. Barra de Ttulo (Tittle Bar): Muestra informacin del proyecto, la aplicacin y el formulario actual, tambin indica si
estamos en diseo o ejecucin.
2. Barra de Mens (Menu Bar): Contiene los comandos agrupados por categoras como File, Edit, View, Project, Build,
Debug, Data, Format, etc.
3. Barras de Herramientas (Tool Bars): Entre ellas tenemos: Analyzer, Build, Crystal Reports, Debug, Design, Layout,
Standard, Text, Editor, XML, etc.
4. Cuadro de Herramientas (Tool Box): Las herramientas del ToolBox se agrupan en 12 fichas: All Windows Forms, que
contiene la gran mayoria de controles Windows Forms; Common Controls, que contiene los controles comunmente
usados; Containers, que contiene controles contenedores como por ejemplo un GroupBox o TabControl; Menus &
Toolbars, que contiene controles de men y barras para mostrar opciones generales o estandares; Data, que contiene
controles de enlaces a bases de datos y que permiten mostrarlos; Components, que contiene controles que pueden
complementar las aplicaciones para garantizar un mejor rendimiento; Printing, contiene controles de impresin;
Dialogs, contiene controles de dilogos como un OpenFileDialog; Reporting, que contiene controles para realizar
reportes; y finalmente otros como WPF Interoperability y Visual Basic PowerPacks.
5. Diseador de Formularios Windows (Windows Forms Designer): Permite crear la interface grfica con slo arrastrar
los controles hacia el formulario.

4
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

6. Ventana de Propiedades (Property Window): Muestra las propiedades del objeto, control o componente
seleccionado. Se puede organizar por orden alfabtico o por categoras.
7. Ventana Explorador de Soluciones (Solution Explorer Window): Presenta organizada la "Solucin" que se compone de
uno o ms "Proyectos", cada uno de stos tiene "Referencias" y "Archivos" que lo componen, por ejemplo si el
lenguaje usado es Visual Basic .NET todos los archivos tendrn extensin VB, si es C# la extensin ser CS, etc.
8. Diseador de Componentes (Components Designer): Se ubica en la parte inferior del diseador de formularios y
contiene los componentes de la aplicacin que no se ven en tiempo de ejecucin.
9. Barra de Estado (Status Bar): Presenta informacin del modo de trabajo, ubicacin en el editor (linea, columna,
caractr), estado de las teclas, etc.

METODOS DE ACCESO RPIDO A LOS ELEMENTOS DEL IDE DE VISUAL BASIC

VENTANA EXPLORADOR DE PROYECTOS

5
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Formularios
Una vez creado el proyecto, se aade un formulario al mismo, apareciendo una nueva pestaa en el rea principal del
IDE, que corresponde al diseador del formulario. Ver Figura 40. Dentro de una aplicacin VB.NET, el trmino formulario
designa a una ventana estndar de las que utilizamos habitualmente en Windows para comunicarnos con el usuario,
mientras que el diseador del formulario representa a la plantilla de una ventana, sobre la cul aadiremos controles y
modificaremos si es necesario su aspecto inicial.

El formulario como un objeto Un formulario es, al igual que la gran mayora de elementos en el entorno de .NET, un
objeto, y como tal, la forma de manipularlo pasa por asignar y obtener valores de sus propiedades, y por la ejecucin de sus
mtodos.

Debido a que un formulario dispone de un elevado nmero de propiedades y mtodos, durante el texto nos
centraremos slo sobre los que vayamos a trabajar, pudiendo el lector, consultar el resto a travs de la ayuda de VS.NET;
esto es aplicable a todos los objetos con los que tratemos.

El formulario como un objeto


Un formulario es, al igual que la gran mayora de elementos en el entorno de .NET, un objeto, y como tal, la forma de
manipularlo pasa por asignar y obtener valores de sus propiedades, y por la ejecucin de sus mtodos.

Debido a que un formulario dispone de un elevado nmero de propiedades y mtodos, durante el texto nos centraremos
slo sobre los que vayamos a trabajar,

6
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

IDENTIFICADORES
Los identificadores son nombres dados a los elementos de una aplicacin, tales como constantes, variables,
procedimientos, funciones, objetos, etc. Un identificador es una secuencia de caracteres que puede ser de hasta 255
caracteres. Para la construccin de identificadores debemos tener presente las siguientes reglas:

Deben comenzar con una letra y no puede contener espacios en blanco.


Letras, dgitos y caracteres subrayados estn permitidos despus del primer carcter.
No se puede utilizar una palabra reservada como identificador. Una palabra reservada tiene un significado especial
para Visual Basic.

CONSTANTES
Una constante almacena un dato cuyo valor no cambia durante la ejecucin de un programa. Para declarar una
constante utilice la siguiente sintaxis:
Const NOMBRE_CONSTANTE [As TIPO] = VALOR

Si no se declara el tipo de constante (utilizando As TIPO) se asigna a la constante el tipo de dato ms apropiado a su
valor. El valor de una constante puede ser numrico, alfanumrico, carcter o de tipo fecha y hora.
Por ejemplo:
Const MAXIT = 25
Const PI As Double = 3.141592
Const CADENA As String = Visual Basic es fcil
Const FECHA_POR_DEFECTO = #01/01/99#

VARIABLES
Una variable almacena un dato cuyo valor puede cambiar durante la ejecucin de un programa. La declaracin de las
variables en Visual Basic 2010 se hace por medio de la instruccin Dim seguida del nombre de la variable y del tipo de datos
que esta contendr.

Para declarar una variable utilice la siguiente sintaxis:


Dim NOMBRE_VARIABLE [As TIPO]

La siguiente lnea de cdigo declara una variable de tipo entero:


Dim i As Integer

Con una misma instruccin Dim tambin podemos declarar en una misma lnea ms de una variable. En este caso, las
tres variables las estamos definiendo del mismo tipo, que es el indicado al final de la declaracin.

Dim a, b, c, As Integer

Para asignar valores a una variable, utilizar la siguiente sintaxis:


NOMBRE_VARIABLE = VALOR

A manera de ejemplo considere lo siguiente:

Dim CANTIDAD As Integer, PRECIO As Double, TOTAL As Double


CANTIDAD = 30
PRECIO = 1.5
TOTAL = CANTIDAD * PRECIO

7
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

TIPOS DE DATOS
Los datos con los que trabajaremos probablemente incluyan informacin relacionada con nmeros, dinero, nombres,
descripciones, fechas, etc. Cada dato corresponde a un determinado tipo, es decir, pertenece a una categora de datos que
se manipulan de maneras similares. Los tipos de datos que maneja Visual Basic son:

SENTENCIAS
Una sentencia es una lnea de cdigo que indica una o ms operaciones a realizar. Una lnea puede incluir varias
sentencias, separadas unas de otras por dos puntos. Por ejemplo:

Dim CANTIDAD As Integer, PRECIO As Double, TOTAL As Double


CANTIDAD = 30 : PRECIO = 1.5 : TOTAL = CANTIDAD * PRECIO

Una sentencia Visual Basic puede escribirse en ms de una lnea fsica utilizando el carcter de continuacin de lnea (un
espacio en blanco seguido del carcter de subrayado). Por ejemplo:

Dim CH4_ENTRADA As Double, CH4_SALIDA As Double, _


CH4_GENERA As Double, CH4_CONSUME AS Double

8
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

OPERADORES
Los operadores son smbolos que indican cmo sern manipulados los operandos. Los operandos son los datos (constantes
y/o variables) sobre los que acta los operadores para producir un determinado resultado.

OPERADORES ARITMTICOS

OPERADOR SIGNIFICADO
^ Exponenciacin
- Menos unario
* / Multiplicacin y divisin
\ Divisin entera
Mod Resto de una divisin entera
+ - Suma y resta

OPERADORES RELACIONALES O DE COMPARACIN


OPERADOR SIGNIFICADO
= Igual que
<> Diferente que
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que

OPERADORES RELACIONALES O DE COMPARACIN

OPERADOR SIGNIFICADO
Not Negacin
And Conjuncin
Or Disyuncin inclusiva

OPERADORES DE CADENAS DE CARACTERES

OPERADOR SIGNIFICADO
& Concatenacin
Like Compara dos cadenas de caracteres

CONCATENACIN DE CADENAS
El operador de concatenacin de cadenas (+) concatena valores de cadena. EL resto de las operaciones con cadenas se
control mediante las funciones de cadena.

9
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

USO DE EVENTOS
Un evento es una accin que es reconocida por el objeto. Un evento ocurre (se dispara) como resultado de la interaccin
del usuario con el objeto. Tambin puede dispararse debido a la ejecucin de cdigo (sentencias) o como resultado de la
interaccin de otro objeto con el objeto de poseedor del evento. Para un formulario tenemos por ejemplo; el evento Load
que se dispara cuando se carga el formulario; o el evento Click para un botn de comando, se dispara cuando se hace clic
sobre l. Algunos de los principales eventos son los siguientes:

Evento Descripcin
Click Ocurre cuando el usuario presiona y suelta un botn del mouse sobre un objeto.
DblClick Ocurre cuando el usuario presiona y suelta dos veces un botn del mouse sobre un objeto.
DragDrop Ocurre como resultado de arrastrar y soltar con el mouse un control sobre un determinado objeto.
GotFocus Ocurre cuando un objeto recibe el control, ya sea mediante una accin del usuario, como tabular o
hacer clic en el objeto.
LostFocus Este evento ocurre cuando el objeto pierde el enfoque, ya sea mediante tabulaciones o hacer clic sobre
otro objeto.
KeyDown Ocurre cuando el usuario mantiene presionada una tecla.
KeyUp Ocurre cuando el usuario termina la operacin de pulsar una tecla. Se podra decir que este evento
ocurre al terminar el evento KeyDown.
KeyPress Ocurre como resultado de presionar y soltar una tecla.
MouseDown Ocurre cuando el usuario presiona un botn del mouse, pero a diferencia del evento KeyDown, permite
identificar cules de los tres botones del mouse fue presionado y las combinaciones de las teclas ALT,
MAYS y CTRL.
MouseUp Este evento se produce cuando el usuario suelta el botn del mouse. MouseUp es un compaero til de
los eventos MouseDown y MouseMove.
MouseMove Este evento ocurre mientras el usuario mueve o desplaza el puntero del mouse sobre un objeto.
Load Se produce al cargarse un objeto en memoria.

ENTRADA Y SALIDA DE DATOS


Visual Basic posee una serie de objetos (controles) que pueden ser utilizados como mecanismos de entrada y salida
(E/S) de datos. Sin embargo, estos sern estudiados en captulos posteriores.

Otra posibilidad de proporcionar datos o de visualizarlos durante la ejecucin de una aplicacin es utilizando cajas de
dilogos predefinidas. Debido a que esta es la forma ms simple de realizar la E/S de datos nos ocuparemos de ella.

Salida de datos (La funcin MSGBOX)


A menudo habr situaciones en las cuales tendr que presentar algn mensaje (por ejemplo una pregunta) y en
funcin de la respuesta del usuario se ejecutar una determinada accin.

10
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

La funcin MsgBox() muestra un cuadro de dilogo predefinido y retorna un valor de tipo entero dependiendo del
botn seleccionado por el usuario. Su sintaxis es de la siguiente forma:

VALOR = MsgBox(MENSAJE [, BOTN + ICONO, TTULO])

Donde

MENSAJE se refiere a una expresin de cadena que se muestra como mensaje en el cuadro de dilogo.
BOTN es una expresin numrica que se refiere al tipo y cantidad de botones a utilizar.
ICONO es una expresin numrica que se refiere al estilo de icono que se va ha utilizar.
TTULO es una texto que se mostrar en la barra de ttulo de la caja de dilogo.

Tipo de botn
Valor Botn Nombre
0 Muestra solo el botn de Aceptar vbOKOnly
1 Muestra los botones Aceptar y Cancelar vbOKCancel
2 Muestra los botones Anular, Reintentar, Ignorar vbAbortRetryIgnore
3 Muestra los botones S, No y Cancelar vbYesNoCancel
4 Muestra los botones S y No vbYesNo
5 Muestra los botones Reintentar y Cancelar vbRetryCancel

Tipo de icono
Valor Icono Nombre
16 Mensaje crtico vbCritical
32 Signo de interrogacin vbQuestion
48 Signo de exclamacin vbExclamation
64 Signo de informacin vbInformation

Valores retornados
Valor Botn Nombre
1 Aceptar vbOK
2 Cancelar vbCancel
3 Anular vbAbort
4 Reintentar vbRetry
5 Ignorar vbIgnore
6 S vbYes
7 No vbNo

Como ejemplo vamos a construir un formulario que presente un botn Salir, de tal forma que cuando el usuario
pulse dicho botn se presente el siguiente mensaje:

11
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

En caso de que el usuario elija la opcin S, la aplicacin debe terminar. En caso contrario, es decir si el usuario elige
la opcin No, se debe proseguir con la aplicacin.

Para el desarrollo del presente ejemplo, proceda a ubicar sobre el formulario un botn de comando (CmdSalir), a
continuacin ingresar el siguiente cdigo:

Private Sub CmdSalir_Click()


Dim RESP As Integer
RESP = MsgBox(Desea terminar la aplicacin?, vbQuestion + vbYesNo, Pregunta)
If RESP = vbYes Then
End
End If
End Sub

Entrada de datos (La funcin INPUTBOX)


La entrada de datos permite proporcionar valores durante la ejecucin de una aplicacin. Estos valores son
ingresados generalmente mediante el teclado y asignados a variables del programa.

En Visual Basic una forma de ingresar datos a la aplicacin es utilizando la caja de dilogo predefinida provista por la
funcin InputBox. La funcin InputBox muestra una caja de dilogo en la que el usuario puede introducir un valor, que ser
devuelto al aceptar dicha caja.

Su sintaxis es la siguiente:

VARIABLE = InputBox(MENSAJE [, TTULO] [, RESPUESTADEFECTO] [, XPOSICION] [,YPOSICION])

Dnde:

MENSAJE es una cadena de caracteres con el texto que va a mostrar la caja de dilogo. El mensaje indica al usuario
el tipo de informacin que debe ingresar. Por ejemplo, las sentencias:

Dim EDAD As Integer


EDAD = InputBox(Ingrese su edad?)

Da lugar a que Visual Basic presente una caja de dilogo solicitando la informacin requerida.

Como puede observar, el resto de los parmetros son opcionales.

TTULO es el texto que se muestra en la barra de ttulo de la caja de dilogo, si se omite TTULO, el nombre de la
aplicacin es la que se muestra en la barra de ttulo.

RESPUESTADEFECTO es una expresin de cadena que aparece en el cuadro de texto como respuesta
predeterminada en caso de que el usuario no escriba nada. . Si se omite RESPUESTADEFECTO el cuadro de texto se
muestra vaco.

XPOSICION, YPOSICION Son valores numricos que indican las coordenadas en donde ser mostrada la caja. Si se
omiten, se mostrar en el centro de la pantalla.

12
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

A manera de ejemplo considere lo siguiente:

Dim EDAD As Integer


EDAD = InputBox(Ingrese su edad?, Ficha de datos, 18)

Completando el procedimiento Llegados a este punto del ejemplo, tenemos todos los ingredientes para completarlo.
Necesitamos que el usuario introduzca su nombre utilizando InputBox( ), volcar dicho nombre en la variable que hemos
declarado y mostrarlo usando otro MessageBox.

Sub Main()
MessageBox.Show("Empieza el programa")
Dim Nombre As String
Nombre = InputBox("Escribe tu nombre")
MessageBox.Show("El nombre del usuario es: " & Nombre, "Programa de prueba")
End Sub

Describamos los ltimos pasos que hemos dado: Despus de la declaracin de la variable Nombre, llamamos a la
funcin InputBox( ). Como dicha funcin devuelve una cadena de caracteres con el valor que haya escrito el usuario,
necesitamos recuperarla de alguna forma, y esta es asignando el resultado de la llamada a la funcin en la variable.

Despus de escribir su nombre en el campo de la caja, si el usuario pulsa OK, InputBox( ) devolver el valor de dicho
campo a la variable Nombre. Por ltimo, mostraremos el valor de la variable usando el mtodo Show( ) de MessageBox,
pero con algunas variaciones respecto a la primera vez que utilizamos esta clase en Main( ). En este caso concatenamos una
cadena de caracteres al nombre, para ello debemos utilizar el operador &, y empleamos un segundo parmetro, que
muestra un ttulo en la ventana del mensaje.

Comentarios de cdigo
Para introducir un comentario aclaratorio en el cdigo de un programa utilizaremos la comilla simple ( ), seguida del texto
correspondiente al comentario. Podemos insertar comentarios desde el comienzo de lnea o a continuacin de cdigo
ejecutable. Ver Cdigo fuente 16.
Sub Prueba() ' este es un comentario desde el principio de lnea Dim Valor As Integer
Valor = 158 ' este es un comentario junto a una lnea de cdigo
End Sub

13
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

USO DE LOS CONTROLES


Los controles son aquellos objetos que se encuentran dentro de un contenedor y que permiten la interaccin entre el
usuario y la aplicacin, ya sea para manipular datos y/o ejecutar tareas.

En Visual Basic, los controles suelen ser agrupados en tres categoras:

Controles bsicos
Controles complementarios
Controles externos

Los controles bsicos son las etiquetas, cuadros de texto y botones de comando, pues utilizando estos tres controles
se puede construir cualquier interfaz.

Los controles complementarios son el resto de los controles, por ejemplo una casilla de verificacin, un cuadro
combinado o un cronmetro.

Los controles externos se refieren a aquellos controles creados por terceros. Este tipo de controles son llamados
ActiveX.

CONTROLES BSICOS
Los controles bsicos lo conforman las etiquetas, cuadros de texto y botones de comando, debido a que cualquier interfaz
se puede implementar con slo estos tres objetos.

Etiqueta
Una etiqueta es un control que permite presentar texto de solo lectura. Se utiliza para mostrar ttulos y mensajes que
por lo general no cambian. Sin embargo, si lo desea, puede escribir procedimientos que cambien el texto mostrado por una
etiqueta como respuesta a eventos en tiempo de ejecucin.

14
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Cuadro de texto
Un cuadro de texto es un control en el que el usuario pueda ingresar datos desde el teclado o visualizar un resultado
generado por la aplicacin. El valor de un cuadro de texto por lo general se asocia a una variable de memoria.

Los eventos asociados a un cuadro de texto son los siguientes:

Evento Descripcin
Change Ocurre cuando se cambia el contenido del control utilizando el teclado o el ratn.
KeyPress Ocurre cuando se pulsa una tecla.

15
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Botn de comando
Un botn de comando es un control que suele emplearse para ejecutar una accin, como cerrar un formulario,
imprimir un informe, etc.

Los botones de comando suelen responder al evento Click, cuya descripcin es:

Evento Descripcin
Click Ocurre cuando el usuario hace click sobre el control.

CONTROLES COMPLEMENTARIOS
Los controles complementarios se utilizan como alternativa a los controles bsicos en aplicaciones en las cuales su uso
facilita o mejora el diseo de la interfaz. Como el lector podr verificar, algunos controles son ms adecuados que otros
dependiendo del tipo de aplicacin que se pretenda desarrollar.

Marco
Un marco es un objeto contenedor que puede utilizarse para agrupar casillas de verificacin, botones de opcin, botones de
comando, etc.

Propiedad Descripcin
Caption Muestra un ttulo para el control.

Casilla de verificacin
Una casilla de verificacin se utiliza para alternar entre dos posibles valores (Activado/Desactivado). Cada casilla de
verificacin es independiente de las dems ya que cada una tiene su propio nombre (Name). Puede utilizar casillas de
verificacin en grupos para mostrar mltiples opciones entre las cuales el usuario puede seleccionar todas las que desee a
la vez.
Propiedad Descripcin
Caption Muestra un ttulo para el control.
Value Devuelve o establece el estado del control, puede ser: Desactivado (0),
Activado (1).
Las casillas de verificacin suelen responder al evento Click.

16
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Botn de opcin
Un botn de opcin se utiliza para alternar entre dos posibles valores (Activado/Desactivado), de manera similar a las
casillas de verificacin, la diferencia radica en que de un grupo de botones de opcin el usuario slo puede seleccionar un
nico botn a la vez.

Propiedad Descripcin
Caption Muestra un ttulo para el control.
Value Devuelve o establece el estado del control, puede ser: Desactivado
(Falso), Activado (True).

Los botones de opcin tambin suelen responder al evento Click.

Cuadro de lista
Un cuadro de lista es un control que presenta una lista de elementos en la que el usuario puede seleccionar uno o
ms de dichos elementos. Si el nmero de elementos supera el nmero que puede mostrarse, se agregar
automticamente una barra de desplazamiento al control.

Propiedad Descripcin
List Contiene los elementos de la lista. Puede definirlos en tiempo de
diseo.
ListCount Especifica el nmero de elementos de la lista. Su valor siempre es uno
ms que el mayor valor de ListIndex.
ListIndex Especifica el nmero de orden que ocupa el elemento seleccionado en
la lista. Toma el valor de 0 para el primer elemento, si no ha selecciona
ninguno retorna -1.
MultiSelect Especifica si se pueden seleccionar varios elementos de la lista.
SelCount Devuelve el nmero de elementos seleccionados.
Selected Especifica si un elemento de la lista est seleccionado.
Sorted Especifica si los elementos de la lista se ordenan alfabticamente.
Text Especifica el valor del elemento seleccionado en ese instante. El valor
es tratado como una cadena de caracteres.

Los mtodos que se pueden utilizar para un cuadro de lista son los siguientes:

Mtodo Descripcin
AddItem Agrega un nuevo elemento a la lista.
Clear Elimina todos los elementos contenidos en la lista.
RemoveItem Elimina en elemento de la lista.

17
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Cuadro combinado
Un cuadro combinado es una mezcla de un cuadro de texto con una lista. En l no slo se podr ingresar un dato sino
tambin seleccionarlo de la lista. Presenta las mismas propiedades, eventos y mtodos que el cuadro de lista a excepcin de
lo siguiente:

Propiedad Descripcin
Style Especifica si el control se comporta como un cuadro de texto o como
una lista desplegable. Un cuadro de texto permite ingresar valores. Una
lista desplegable slo permite seleccionar valores. El valor
predeterminado es 0-vbComboDropDown, e incluye una lista
desplegable y un cuadro de texto. El valor 1-vbComboSimple incluye
tan solo cuadro de texto. El valor 2-Dropdown List incluye slo una lista
desplegable.

Cronmetro
Un cronmetro sirve para controlar el tiempo transcurrido desde el inicio de una accin.

Propiedad Descripcin
Interval Especifica el nmero de milisegundos que se esperar para disparar el
evento Timer

El control Cronmetro responde al evento Timer, cuya descripcin es:

Evento Descripcin
Timer Ocurre cuando el nmero de milisegundos especificado en la propiedad
Interval ha transcurrido.

Cuadro de imagen
Un cuadro de imagen se utiliza para mostrar un archivo de imagen (BMP, GIF o JPG). Recorta el grfico si el control no
es lo bastante grande para mostrar la imagen completa.

Propiedad Descripcin
AutoSize Especifica si el control ajusta automticamente su tamao para mostrar
un grfico completo.
Picture Especifica el archivo de imagen para el control.

El evento que suele manejarse para este control es MouseMove, cuya descripcin es:

Evento Descripcin
MouseMove Ocurre cuando el usuario mueve el ratn sobre el control.

18
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Imagen
Un control imagen se utilizar para mostrar un archivo de imagen (BMP, GIF o JPG) de manera similar a un Cuadro de
imagen. Sin embargo, este control utiliza menos recursos del sistema y se actualiza con ms rapidez que un cuadro de
imagen.

Propiedad Descripcin
Picture Especifica el archivo de imagen para el control.
Stretch Especifica cmo se ajusta el tamao del archivo grfico para que quepa
dentro del control imagen.

Para este control tambin se suele manejar el evento MouseMove.

Barras de desplazamiento horizontal


Una barra de desplazamiento horizontal representa un valor entero, la cual tiene un cuadrado que se desplaza a lo
largo de la misma para fijar un valor.

La posicin ms a la izquierda se corresponde con el valor mnimo, la posicin ms a la derecha con el valor mximo,
y cualquier otra posicin es un valor entre ellos dos.

Propiedad Descripcin
Max Especifica el valor mximo que puede tomar la propiedad Value.
Min Especifica el valor mnimo que puede tomar la propiedad Value.
LargeChange Especifica en cuanto cambiar el valor de la propiedad Value cuando el
usuario haga click antes o despus del cuadrado de desplazamiento.
SmallChange Especifica en cuanto cambiar el valor de la propiedad Value cuando el
usuario haga click en alguna de las flechas de los extremos de la barra.
Value Especifica el valor del control, este se encuentra siempre entre los
valores de las propiedades Min y Max.

Las barras de desplazamientos responden a los eventos:

Evento Descripcin
Change Ocurre inmediatamente despus que el cuadrado de desplazamiento
ha sido movido.
Scroll Ocurre mientras el cuadrado de desplazamiento est siendo movido
(este evento slo ocurre cuando el cuadrado es arrastrado).

Barras de desplazamiento vertical


Una barra de desplazamiento vertical representa un valor entero, la cual tiene un cuadrado que se desplaza a lo largo
de la misma para fijar un valor.
La posicin ms hacia arriba se corresponde con el valor mnimo, la posicin ms hacia abajo se corresponde con el
valor mximo, y cualquier otra posicin es un valor entre ellos dos.

Las propiedades y eventos de las barras de desplazamiento horizontal y vertical son anlogas.

19
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

ESTRUCTURAS DE CONTROL
Las estructuras de control permiten tomar decisiones y realizar un proceso repetidas veces (procesos iterativos). Para
ello Visual Basic dispone de las siguientes estructuras de control: If . . . Then . . . Else, If . . . Then . . . ElseIf, Select Case, For . .
. Next, While . . . . Wend, Do . . . Loop y GoTo.

Estructura If . . . Then . . . Else


Este tipo de estructura evala una determinada condicin y en funcin a ello ejecuta uno de entre dos posibles
grupos de sentencias. Su sintaxis es la siguiente:

If CONDICIN Then
SENTENCIAS_VERDADERAS
Else
SENTENCIAS_FALSAS
End If

Si CONDICIN es verdadera se ejecuta el grupo de SENTENCIAS_VERDADERAS. Si CONDICIN es falsa se ejecuta el


grupo de SENTENCIAS_FALSAS.

Por ejemplo, el siguiente cdigo determina si un entero A es o no divisible por otro entero B:

Dim A As Integer, B As Integer


A = InputBox(Ingrese A?)
B = InputBox(Ingrese B?)
If A Mod B = 0 Then
MsgBox Str(A) & es divisible por & Str(B)
Else
MsgBox Str(A) & no es divisible por & Str(B)
End If

Estructura If . . . Then . . . ElseIf


Este tipo de estructura se utiliza para elegir una de entre mltiples alternativas. Su sintaxis es como sigue:

If CONDICIN_1 Then
SENTENCIAS_1
ElseIf CONDICIN_2 Then
SENTENCIAS_2
.
Else
SENTENCIAS_FALSAS
End If

Si CONDICIN_1 es verdadera se ejecuta el grupo de SENTENCIAS_1, y si es no se cumple, se evalan


secuencialmente las condiciones siguientes hasta Else, ejecutndose las sentencias correspondientes al primer ElseIf cuya
condicin sea verdadera. Si todas las condiciones son falsas, se ejecutan las SENTENCIAS_FALSAS correspondientes a Else.

20
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Por ejemplo considere el siguiente cdigo, el cual imprime el nombre del mes correspondiente a los nmeros del 1 al 12.

Dim N As Integer
N = InputBox(Ingrese N?)
If N = 1 Then MsgBox Enero
ElseIf N = 2 Then : MsgBox Febrero
ElseIf N = 3 Then : MsgBox Marzo
ElseIf N = 4 Then : MsgBox Abril
ElseIf N = 5 Then : MsgBox Mayo

ElseIf N = 6 Then : MsgBox Junio


ElseIf N = 7 Then : MsgBox Julio
ElseIf N = 8 Then : MsgBox Agosto
ElseIf N = 9 Then : MsgBox Setiembre
ElseIf N = 10 Then : MsgBox Octubre
ElseIf N = 11 Then : MsgBox Noviembre
ElseIf N = 12 Then : MsgBox Diciembre
Else : MsgBox Error de datos
End If

Estructura Select Case


Este estructura es una alternativa a la estructura If . . . Then . . . ElseIf, cuando lo que necesita es comparar la misma
expresin con diferentes valores. Su sintaxis es la siguiente:

Select Case EXPRESIN_TEST


Case EXPRESIN_1
SENTENCIAS_1
Case EXPRESIN_2
SENTENCIAS_2
.
.
.
Case Else
SENTENCIAS_FALSAS
End Select

En este caso se comprueba el valor de EXPRESIN_TEST frente a la lista expresiones EXPRESIN_1, EXPRESIN_2, . . .
y as sucesivamente, y busca el primer Case que incluya el valor evaluado en EXPRESIN_TEST, ejecutando a continuacin el
bloque de sentencias correspondiente. Si no existe un valor igual a EXPRESIN_TEST, entonces se ejecuta las
SENTENCIAS_FALSAS correspondientes al Case Else.

21
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

A manera de ejemplo vamos a codificar el programa de la seccin anterior el cual imprime el nombre del mes
correspondiente a los nmeros del 1 al 12. Pero en esta vez utilizaremos la estructura Select Case (compare con cual de
ambas estructuras es ms cmodo trabajar).

Dim N As Integer
N = InputBox(Ingrese N?)
Select Case N
Case 1 : MsgBox Enero
Case 2 : MsgBox Febrero
Case 3 : MsgBox Marzo
Case 4 : MsgBox Abril
Case 5 : MsgBox Mayo
Case 6 : MsgBox Junio
Case 7 : MsgBox Julio
Case 8 : MsgBox Agosto
Case 9 : MsgBox Setiembre
Pg. 35
Case 10 : MsgBox Octubre
Case 11 : MsgBox Noviembre
Case 12 : MsgBox Diciembre
Case Else
MsgBox Error de datos
End Select

Cabe destacar que Select Case tambin se puede utilizar de la siguiente manera:

Dim X As Integer
X = InputBox(Ingrese X?)
Select Case X
Case 1
MsgBox X = 1
Case 2, 3
MsgBox X = 2 o X = 3
Case 4 To 10
MsgBox 4 <= X <= 10
Case Else
MsgBox X < 1 o X > 10
End Select

22
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Estructura For . . . Next


Esta estructura es utilizada para ejecutar un bucle un nmero determinado de veces. El nmero de iteraciones
deber ser conocido de antemano. Su sintaxis es la que se presenta a continuacin:

For CONTADOR = INICIO To FINAL [Step INCREMENTO/DECREMENTO]


SENTENCIAS_REPETITIVAS
[Exit For]
Next

Donde la variable CONTADOR es inicializada con el valor de INICIO y se incrementa o decrementa hasta un valor FINAL.
INCREMENTO/DECREMENTO define la manera en que cambia el valor de la variable CONTADOR en cada iteracin.

La sentencia Exit For permite salir del bucle For . . . Next antes de que este finalice.

Por ejemplo, el siguiente cdigo imprime los cuadrados de los nmeros enteros del 1 al 25.

Dim C As Integer
For C = 1 To 25
Print C
Next

Para que este cdigo funcione correctamente debe establecer la propiedad AutoRedraw del formulario a True.

Estructura While . . . Wend


La estructura While . . . Wend es aquella en la que el nmero de iteraciones no se conoce por anticipado y el cuerpo
del bucle se repite mientras se cumple una determinada condicin. Su sintaxis es la siguiente:

While CONDICIN
SENTENCIAS_REPETITIVAS
Wend

La estructura While . . . Wend evala la CONDICIN en cada iteracin y si el resultado es verdadero contina su
ejecucin.

El bucle termina cuando CONDICIN es falsa.

A manera de ejemplo, considere el siguiente cdigo, el cual imprime en pantalla la suma de los primeros nmeros
naturales, es decir = 1 + 2 + 3 + 4 + . . . + N S N

Dim N As Integer, S As Integer


S=0
N = InputBox(Ingrese N?) While N <> 0
S=S+N
N=N-1
Wend
MsgBox La suma es S= & Str(S)

23
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Estructura Do . . . Loop
Esta estructura ejecuta un bucle mientras una condicin dada sea cierta, o hasta que una condicin dada sea cierta.
La condicin puede ser verificada antes o despus de ejecutarse el cuerpo del bucle. Su sintaxis es:

Formato 1:
Do [While/Until] CONDICIN
SENTENCIAS_REPETITIVAS
[Exit Do]
Loop

Formato 2:

Do SENTENCIAS_REPETITIVAS
[Exit Do]
Loop [While/Until] CONDICIN

Esta estructura (como se puede observar en ambos formatos) permite realizar varias estructuras diferentes
dependiendo si la condicin de terminacin est al principio o al final del cuerpo del bucle.

Como ejemplo, consideremos el siguiente programa, el cual calcula el factorial de un entero ingresado por teclado: N

Dim N As Integer, FACT As Integer, C As Integer


FACT = 1
C=1
N = InputBox(Ingrese N?)
Do
FACT = FACT * C
C=C+1
Loop While C <= N
MsgBox El factorial de & Str(N) & es= & Str(FACT)

24
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

ARREGLOS
Un arreglo o matriz es una estructura de datos en la que se almacena una coleccin finita de datos del mismo tipo,
que comparten un nombre comn, a los que se puede acceder por la posicin (ndice) que ocupa cada uno de ellos dentro
del arreglo. Cada elemento del arreglo es una variable que puede contener un nmero o una cadena de caracteres,
dependiendo del tipo de arreglo que se declare.

Los arreglos en Visual Basic se clasifican en estticos y dinmicos.

Arreglos estticos
Son aquellos arreglos cuyo tamao no puede cambiar en tiempo de ejecucin. La declaracin de un arreglo esttico
se puede realizar mediante la siguiente sintaxis:

Dim NOMBRE_ARREGLO(DIMENSONES) As TIPO

Dnde:

DIMENSIONES es una lista de nmeros, separados por comas y que definen las dimensiones del arreglo. Esta lista
puede ser de la siguiente forma:
DIMENSIN_1, DIMENSIN_2, DIMENSIN_3, . . ., DIMENSIN_K

Para el caso de un arreglo formado por K dimensiones, es decir un arreglo K -dimensional.

A manera de ejemplo considere los siguientes casos que se pueden presentar:

Dim LISTA(9) As Integer


Dim MATRIZ(4, 3) As Double
Dim NOMBRES(19) As String * 30

En el primer caso se declara un arreglo unidimensional de 10 elementos de tipo entero (por defecto los elementos de
un arreglo se numeran a partir de 0).

En el segundo caso se define de un arreglo bidimensional de 20 elementos (5 filas por 4 columnas) de tipo punto
flotante en doble precisin.

En el tercer caso se define una arreglo unidimensional de 20 elementos de tipo cadena de caracteres (cada elemento
tiene una longitud fija de 30 caracteres).

Como se observa la numeracin de los elementos de un arreglo por defecto comienza en cero, para hacer que la
numeracin comience en 1, debe ingresar la siguiente orden en la seccin de Declaraciones del mdulo de formulario:

Luego, para declarar los mismos arreglos de los casos anteriores, las sentencias seran las siguientes:

Dim LISTA(10) As Integer


Dim MATRIZ(5, 4) As Double
Dim NOMBRES(20) As String * 30

Establecer la sentencia Option Base a 1 o trabajar con el valor predeterminado (cero) queda a consideracin del lector.

25
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Arreglos dinmicos
Son aquellos arreglos en los que su tamao puede definirse o modificarse en tiempo de ejecucin. Para declara un
arreglo dinmico utilice la siguiente sintaxis:

Dim NOMBRE_ARREGLO() As TIPO

Para definir el tamao del arreglo utilizar la siguiente sintaxis:

ReDim NOMBRE_ARREGLO(NMERO_ELEMENTOS)

Cada vez que se ejecuta la sentencia ReDim, todos los valores almacenados en el arreglo se pierden. Para definir o cambiar
el tamao del arreglo conservando los valores del mismo use la siguiente sintaxis:

ReDim Preserve NOMBRE_ARREGLO(NMERO_ELEMENTOS)

Para liberar el espacio de memoria utilizado por arreglos dinmicos que ya no son tiles, utilizar la sintaxis:

Erase NOMBRE_ARREGLO

La orden Erase asigna cero a cada elemento de los arreglos numricos y nulo () a cada elemento de los arreglos de cadena
de caracteres.

A manera de ejemplo considere el siguiente cdigo que declara y hace uso de un arreglo dinmico:

Dim I As Integer, N As Integer, TEMP() As Integer


N = InputBox(Ingrese N?)
ReDim TEMP(N - 1)
For I = 0 To N - 1
TEMP(I) = I + 1
Print TEMP(I)
Next
Erase TEMP

26
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

REGISTROS
Un registro es un nuevo tipo de dato, que se define como una coleccin de datos de diferentes tipos, conocidos como
campos, los cuales se encuentran evidentemente relacionados.

Un registro slo se puede ser creado en la seccin de declaraciones de un mdulo. La sintaxis correspondiente es:

Private Type NOMBRE_REGISTRO


DECLARACIONES_DE_LOS_MIEMBROS
End Type

Por ejemplo considere el siguiente cdigo que define la estructura ALUMNO:

Private Type ALUMNO


ID_ALUMNO As String * 7
NOMBRE As String * 25
DIRECCION As String * 35
TELEFONO As String * 7
ESTADO As Boolean
End Type

Luego, podemos declarar una variable tipo ALUMNO de la siguiente forma:

Dim X As ALUMNO

Para referirse a un determinado miembro del registro se utiliza el operador selector de campos ( . ), veamos:

X.ID_ALUMNO = 980976G X.NOMBRE = Carlos Castillo Peralta X.DIRECCION = Jr. C. Richardson 412 Chorrillos
X.TELEFONO = 2510850 X.ESTADO = True Las mismas rdenes del prrafo anterior se pueden escribir de una manera
ms fcil, ms legible y ms eficiente si utiliza la sentencia With . . . End With, del siguiente modo:

With X
. ID_ALUMNO = 980976G
.NOMBRE = Carlos Castillo Peralta
.DIRECCION = Jr. C. Richardson 412 Chorrillos
.TELEFONO = 2510850
.ESTADO = True
End With

27
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

FUNCIONES
Las funciones son uno de los elementos bsicos en programacin. A continuacin sern estudiadas detalladamente.

Declaracin de una funcin


Una funcin es un procedimiento que cuando se ejecuta devuelve un nico resultado al procedimiento que la invoc. La
sintaxis correspondiente a la declaracin de una funcin es:

Function NOMBRE_FUNCIN([LISTA_PARMETROS]) [As TIPO]


SENTENCIAS
[NOMBRE_FUNCIN = VALOR_RETORNADO]
[Exit Function]
End Function

Donde LISTA_PARMETROS es una secuencia de variables separadas por comas que se corresponden con los argumentos
pasados cuando es invocada la funcin.

Para especificar el tipo de datos que ser retornado por la funcin utilice la clusula opcional As TIPO, el tipo es Variant por
omisin.

El valor retornado por la funcin es almacenado en su propio nombre, es decir en NOMBRE_FUNCIN, que acta como
variable dentro del cuerpo de la funcin. Si no se efecta esta asignacin el valor devuelto ser cero si la funcin es de tipo
numrica, nulo () si la funcin es de tipo cadena, o vaco (Empty) si la funcin es de tipo Variant.

La clusula opcional Exit Function permite salir de una funcin antes de que la funcin finalice, en caso sea esto necesario.

Llamado de una funcin


La sintaxis para la llamada a una funcin es de la siguiente forma:

VARIABLE = NOMBRE_FUNCIN([LISTA_ARGUMENTOS])
Dnde:

LISTA_ARGUMENTOS es una secuencia de constantes, variables o expresiones separadas por comas. El nmero de
argumentos debe ser igual al nmero de parmetros de la funcin. Los tipos de los argumentos deben coincidir con los tipos
de sus correspondientes parmetros.

A manera de ejemplo considere la implementacin de la siguiente funcin:

()232=++fxxx

En la seccin de Declaraciones del mdulo de formulario ingrese el siguiente cdigo:

Function F(X As Double) As Double


F=X^2+2*X+3
End Function

Para invocar la funcin creada recientemente, codifique las siguientes lneas:

Dim A As Double, RESP As Double


A = InputBox(Ingrese A?)
RESP = F(A)
MsgBox (Str(RESP))

28
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Paso de argumentos a una funcin


El paso de argumentos a una funcin es la forma como se ingresan los datos y variables al interior de la funcin y se
presenta de dos formas:

Por referencia
Por valor

Paso de argumentos por referencia


En las funciones de Visual Basic, los argumentos se pasan por referencia (forma por defecto), de este modo cualquier
cambio de valor que sufra un parmetro en el cuerpo de la funcin, tambin se produce en el argumento correspondiente
de la llamada a la funcin. Esta forma de pasar los argumentos a una funcin es til para funciones que devuelven ms de
un valor. Por ejemplo, considere la siguiente funcin que calcula las races reales de una ecuacin cuadrtica Ax Bx C 2 0 + +
=.

Function RAIZ(A As Double, B As Double, C As Double, _


X1 As Double, X2 As Double) As Boolean
Dim D As Double
D=B^2-4*A*C
If D >= 0 Then
X1 = (-B - Sqr(D)) / (2 * A)
X2 = (-B + Sqr(D)) / (2 * A)
RAIZ = True ' Verdadero si hay races reales
Else
RAIZ = False ' Falso si no hay races reales
End If
End Function

La llamada a esta funcin se puede realizar de la manera que se presenta a continuacin:

Dim A As Double, B As Double, C As Double


Dim X1 As Double, X2 As Double
A = InputBox(Ingrese A?)
B = InputBox(Ingrese B?)
C = InputBox(Ingrese C?)
If RAIZ(A, B, C, X1, X2) Then
MsgBox X1= & Str(X1)
MsgBox X2= & Str(X2)
Else
MsgBox NO EXISTEN RACES REALES
End If

Paso de argumentos por valor


Cuando se ejecuta una funcin, se podr especificar que el valor de un argumento no sea cambiado por esta funcin,
pasando dicho argumento por valor. Para ello se debe anteponer la palabra reservada ByVal a la declaracin del parmetro
en la cabecera de la funcin. Por ejemplo:

Function F(ByVal X As Double) As Double


F=X^2+2*X+3
End Function

La cabecera de la funcin F especifica que X ser pasado por valor y no por referencia.

29
Apoyo didctico de Visual Basic ISC. Juan Jos Del ngel Garca

Funciones recursivas
Se dice que una funcin es recursiva si se llama a s misma. Por ejemplo la funcin FACTORIAL cuyo cdigo se presenta a
continuacin es recursiva:

Function FACTORIAL(N As Integer) As Long


If N 0 Then <>
FACTORIAL = FACTORIAL(N - 1) * N
Else
FACTORIAL = 1
End If
End Function

PROCEDIMIENTOS
La sintaxis para definir un procedimiento es la siguiente:

Private Sub NOMBRE_PROCEDIMIENTO([LISTA_PARMETROS])


SENTENCIAS
[Exit Sub]
End Sub

La explicacin es anloga a la dada para las funciones. Sin embargo, un procedimiento no puede ser utilizado en una
expresin, ya que un procedimiento no retorna ningn valor a travs de su nombre.

La llamada a un procedimiento puede ser realizada de alguna de las dos formas siguientes:

Call NOMBRE_PROCEDIMIENTO([LISTA_ARGUMENTOS])

NOMBRE_PROCEDIMIENTO([LISTA_ARGUMENTOS])

Por ejemplo, el siguiente cdigo corresponde a un procedimiento que calcula e imprime la suma de los primeros nmeros
naturales impares, es decir: = 1 + 3 + 5 + . . . + N S N

Private Sub SUMA_IMPAR(N As Integer)


Dim S As Integer, I As Integer
S=0
For I = 1 To N If I Mod 2 <> 0 Then
S=S+I
End If
Next
MsgBox La suma es S= & Str(S)
End Sub
La llamada a este procedimiento podra ser de la forma:
Call SUMA_IMPAR(25)

30

Vous aimerez peut-être aussi