You are on page 1of 75

Aprenda a programar en Visual Basic

Aprenda a programar en Visual Basic

Edicin 1.0
Prohibida la reproduccin total o parcial
Sin nuestro consentimiento
Derechos de copia reservados
www.LibrosDigitales.NET

Aprenda a programar en Visual Basic

Introduccin a la Programacin Visual


Lenguajes procedurales frente a los dirigidos por
eventos
Algunos aos atrs la construccion de aplicaciones se realizaba usando lenguajes
procedurales, consistia en usar un editor para unir un conjunto de instrucciones
bajo un orden determinado segn la logica establecida por el Programador, a
veces uno terminaba con un gran archivo de unas 2000 a 3000 lineas. Para otro
programador hacer operaciones de actualizacion y/o depuracion, era toda una tarea
titanica, pues si no estaba adecuadamente documentada no quedaba otra cosa que
darse tiempo y descubrir la logica usada por el otro programador. Por otra parte el
programador no solo debia cuidar los procesos que debia realizar el programa sino
que tambien debia guiar al usuario en la Ejecucin de su programa a traves de un
dialogo monotomo: desea continuar?, esta seguro de borrar?, realizar otra
transaccion?.

En la actualidad, los lenguajes de programacion visuales, presentan una interfaz de


desarrollo grfico la tarea de programacin esta definida en dos fases, en la
primera el Desarrollador de aplicaciones disea la interfaz que el usuario ha de
usar. El siguiente paso consiste en dar funcionalidad a los elementos usados en el
diseo, es decir asociar un grupo de instrucciones (procedimiento) a los diversos
controles segn el tipo de accin que realice el usuario (evento).

Aprenda a programar en Visual Basic


Su tarea como desarrollador ser la de identificar que posibles eventos podrian
ocurrir y en base a ellos definir los procedimientos.

Bajo esta modalidad de programacion interesa poco que inicie por un lado u otro,
ademas debe tener en cuenta que el usuario que haga uso de su aplicacin podra
navegar (moverse) libremente con el mouse y hacer click donde le de la gana.

Aprenda a programar en Visual Basic

Definiciones bsicas
Formulario
Ventana personalizable que sirve de interfaz entre el usuario y la aplicacin. En ella
se sita los controles.

Control
Representacin grfica de un objeto, como un cuadro de texto,
desplegable, un botn de comando, etc.

una lista

Objeto
Termino usado para describir al formulario y a los controles usados. En realidad
todo lo que observe incluyendo la pantalla es considerado como objeto.

Propiedad
Son las caractersticas del objeto, como el tamao, la ubicacin, el color.

Mtodo
Accin que se puede definir para un objeto, esta accin esta asociada a un conjunto
de instrucciones (procedimiento).

Evento
Accin provocada por el usuario, por el sistema operativo (un error por ejemplo) o
por la aplicacin. El evento esta asociado a un procedimiento.
Hay que tener en cuenta que los procedimientos de los eventos se ejecutan
automticamente, en cambio los procedimientos de los mtodos requieren de una
instruccin para ser ejecutadas.

Aprenda a programar en Visual Basic

La programacin en Visual Basic


Ejecutando Visual Basic
Una vez instalado el producto, vaya al botn Inicio y ubique en la carpeta
Programas, Microsoft Visual Studio, luego Microsoft Visual Basic 6.0.
Este cuadro de dialogo muestra una lista de los tipos de archivo que puede crear (a
medida que avance con la lectura del texto se ver cada uno de ellos), por lo
pronto se usar un EXE estndar.

A continuacin le muestra una ventana vaca, al que llamaremos formulario, a la


izquierda se muestra una caja de herramientas con controles, con ellos
disearemos la interfaz dentro del formulario, las propiedades de cada uno de estos
controles se ver en la ventana de propiedades la cual se muestra en el grfico al
lado derecho.

Aprenda a programar en Visual Basic

Para abandonar Visual Basic haga Alt-F4 o ubique la opcion Salir dentro del menu
Archivo.

Aprenda a programar en Visual Basic

El Entorno Integrado de Desarrollo


Los elementos que componen la pantalla de Visual Basic son:

Barra de mens
Barra de herramientas
Caja de herramientas
Ventana de proyecto
Ventana de formulario
Ventana de propiedades

Aprenda a programar en Visual Basic


Barra de titulo
Es la barra horizontal de la ventana mayor (de Visual Basic) en ella se muestra el
nombre de la aplicacin, al lado derecho de esta se muestra encerrado entre
parentesis los estados: diseo, mientras este creando o editando su programa,
Ejecucin, si se encuentra ejecutando su aplicacin y break si la aplicacin ha
sido detenida.

Barra de mens.
Visualiza las rdenes que se utilizan para desarrollar, probar y archivar una
aplicacin. Las opciones mas usada del menu son:

Archivo
Edicin
Ver
Ejecutar
Herramientas
Complementos
Ayuda.

Contiene las rdenes para trabajar con archivos.


Contiene las herramientas que ayudan a escribir el cdigo.
Da acceso rpido a todas las partes del programa.
Permite verificar la aplicacin mientras se desarrolla.
Controla el aspecto y propiedades del entorno.
Contiene las utilidades para el manejo de bases de datos.

Barra de herramientas.
Facilita el uso a las rdenes ms comunes.

De izquierda a derecha los iconos tienen la siguiente funcion:

Aprenda a programar en Visual Basic


Nombre
Funcion
Agregar proyecto EXE Al hacer click en la fecha se muestra los distintos tipos
estandar
de ejecutables que Visual Basic puede crear.
Agregar formulario
Abre un nuevo formulario. Al hacer click en la flecha
puede elegir entre otras posibles partes de una
aplicacin Visual Basic
Editor de menus
Le permite disear menus. Equivale a seleccionar la
opcion Editor de menus del menu Herramientas o hacer
Ctrl-E
Abrir proyecto
Le permite abrir un proyecto existente, equivale a que
elija la opcion Abrir del menu Archivo
Guardar proyecto

Guarda el proyecto actual, equivale a seleccionar la


opcion Guardar proyecto del menu Archivo

Cortar

Corta el texto u objeto seleccionado, equivale a que


pulse las teclas Ctrl-X

Copiar

Copia en el portapapeles el texto u objeto seleccionado ,


equivale a pulsar Ctrl-C

Pegar

Pega el texto u objeto que se encuentra en el


portapapeles, equivale a usar Ctrl-V

Buscar

Abre el cuadro de dialogo Buscar

Deshacer

Deshace la ultima accion hecha

Rehacer

Rehace la ultima accion

Iniciar

Ejecuta la aplicacin, equivale a elegir la opcion Iniciar


del menu Ejecutar o pulsar la tecla F5

Interrumpir

Detiene la Ejecucin de un programa, es lo mismo que


elegir la opcion Interrumpir del menu Ejecutar o pulsar
las teclas Ctrl-Pausa.
Finaliza la Ejecucin de un programa. Equivale a elegir
Terminar del menu Ejecutar

Terminar
Explorador
proyectos

de Muestra el Explorador de Proyectos

Ventana
propiedades

de Activa la ventana de propiedades

Ventana posicion del Activa la Ventana de posicion del formulario para


formulario
determinar la posicion inicial del formulario en la pantalla.
Examinador de objetos

Abre el cuadro de dialogo Examinador de Objetos,


equivale a pulsar la tecla F2

Caja de herramientas

Activa la caja de herramientas si esta oculta

10

Aprenda a programar en Visual Basic


Caja de herramientas.
Provee de un conjunto de herramientas que permiten colocar los controles en el
formulario durante el diseo del proyecto. Para usarlo solo debe hacer click en el
icono apropiado y sobre el formulario dibuje un rectangulo arrastrando el mouse,
con esto el control se colocar en ese lugar. Luego lo puede redimensionar.
No todo los controles se puede cambiar de tamao, es el caso de control
Temporizador que aparece como un pequeo cuadro.

Ventana de proyecto.
Esta ventana contiene una lista de los elementos que compone un Proyecto, loc
cuales pueden ser formularios (.FRM), archivos de mdulo (.BAS) con
procedimientos que pueden ser accedidos desde cualquier otro procedimiento de la
aplicacin, mdulos de clase (.CLS) y ficheros de recursos (.RES) que contienen
bitmaps, cadenas de texto, o cualquier otra informacin que pueda ser cambiada
sin tener que reeditar el cdigo de la aplicacin.
El proyecto hace un seguimiento de dnde estn los archivos, para esto crea un
archivo con la extensin .VBP, este es el archivo de proyecto.
La ventana de proyecto contiene dos botones: Ver Formulario que visualiza el
formulario seleccionado y; Ver Cdigo que visualiza el cdigo del fichero
seleccionado.

11

Aprenda a programar en Visual Basic

Tenga cuidado de eliminar archivos fuera del entorno de VB, la aplicacin que use
este archivo al no encontrarlo producir un error en la ejecucin del proyecto
Ventana del formulario.
Es la ventana que da lugar a la interfaz de usuario. Estas actuan como
contenedoras
graficas de controles tales como botones, etiquetas, cuadros
combinados, etc. Existen tres tipos de formulario:
Formulario de interfaz simple: SDI (Single document interface)
Formulario de interfaz padre para multiples documentos: MDI (Parent multiple
document interface)
Formulario hijo MDI (Child MDI)
La interfaz de documento simple SDI no tiene padre ni hijos, es una simple ventana
donde se colocan los controles. La interfaz de multiples documentos MDI necesita
un formulario padre y uno o mas formularios hijos. Los formularios MDI se usan
para crear aplicaciones que puedan abrir mas de un documento a la vez. Cualquier
formulario MDI hijo puede ser contenida en un formulario MDI padre. Un ejemplo
de este tipo puede ser Word para Windows (se puede abrir varios documentos a la
vez)
Para crear una aplicacion MDI primero deber crear un formulario MDI padre,
opcion Formulario MDI nuevo del menu Archivo. Los formularios hijo puede ser
creadas como formularios normales y seleccionando luego la propiedad MDI Child
como True.
Durante el diseo ayuda mucho la presencia de unos puntos horizontales y
verticales que forman una rejilla la cual sera util para alinear los controles que se
sitan sobre el mismo. Esta rejilla desaparece en tiempo de ejecucin. Para
eliminarla
en
tiempo
de
diseo
se
acceder
a
la
opcin
Herramientas/Opciones/Ficha Entorno/Mostrar Cuadrcula.

12

Aprenda a programar en Visual Basic

Ventana de propiedades.
Especifica las propiedades de cada uno de los objetos para ser cambiadas en modo
de diseo. En cada momento mostrar las propiedades del objeto seleccionado en
el formulario. Est formada por dos partes: la lista desplegable de objetos que
visualiza el nombre del objeto seleccionado y, la lista de propiedades del objeto
seleccionado.

Las propiedades puede variar segn el tipo de control. Por ejemplo una etiqueta
tiene la propiedad Caption, la cual esta ausente para un cuadro de texto. No todas
las propiedades de un control pueden cambiarse en tiempo de diseo. Por ejemplo
la propiedad ActiveForm no es accesible en modo diseo y es de solo lectura en
tiempo de Ejecucin. Asi mismo hay propiedades como Name que en tiempo de
Ejecucin es de solo lectura y que puede variarse solo en tiempo de diseo.

13

Aprenda a programar en Visual Basic

Ventana de cdigo
Se activa cuando se hace doble click sobre un control, esta ventana muestra dos
listas en la parte superior, en una aparece el nombre del objeto y en la otra el
nombre del evento. Debajo de estas se define el procedimiento, este editor verifica
automticamente la sintaxis de cada instruccin.

14

Aprenda a programar en Visual Basic

Creando una Aplicacin en VB


El desarrollo de una Aplicacin se da en dos pasos:
1. En Tiempo de Diseo. Se crea un formulario, sobre ella se sita los controles u
objetos necesarios, cambindolos de lugar y/o de tamao. Esta ser la
presentacin de nuestra aplicacin. Luego se procede a dar valores a las
propiedades de los objetos colocados en el formulario.
2. En Tiempo de Ejecucin. Consiste en escribir el cdigo en los objetos para
indicar que acciones o eventos se debern realizar cuando el usuario interaccione
con estos objetos. Este paso es conocido tambin como "Dar funcionalidad a la
aplicacin".

J Antes de empezar a construir su programa, es necesario que primero lo tenga planeado. Deber
entender las caractersticas de los objetos contenidos en las diferentes pantallas, todo esto para que la
interfaz sea amigable y funcional.

15

Aprenda a programar en Visual Basic

Programacin en tiempo de Diseo


Luego de indicar un nuevo proyecto, en un formulario colocamos un cuadro de
texto y un botn de comando.

Los valores de las propiedades son cambiados o actualizados en la ventana de


propiedades. Puede activar la ventana de Propiedades pulsando F4.
Ubique la propiedad Name, y asigne un nombre a cada objeto. El cuadro de texto
se llamara txtMensaje y el botn de comando cmdPulsame, para que el botn
muestre el titulo Pulsame, ubique la propiedad Caption y en ella anote el texto
Pulsame.
La siguiente tabla muestra las teclas que se puede usar en la ventana de
Propiedades:
Tecla
Shift + Ctrl + Letra
Flecha abajo
Flecha arriba
PgUp/End
PgDn/Home
F4

Accion
Se ubica el primer elemento que comience con la letra.
Ir al siguiente elemento
Ir al anterior elemento
Ir al ultimo elemento
Ir al primer elemento
Activa la ventana de propiedades

16

Aprenda a programar en Visual Basic

Programacin en tiempo de Ejecucin


El paso final es escribir el cdigo para que la aplicacin se ejecute adecuadamente.
En el ejemplo le vamos a dotar de funcionalidad al botn cmdPulsame. Para abrir la
ventana de cdigo puede hacer doble click sobre el objeto o usar el botn derecho
del mouse sobre el objeto y eligir la opcion Ver cdigo.

Puede seleccionar el objeto al que se ha de asociar el cdigo en la lista de la


izquierda de la ventana de cdigo.
Cualquier evento o procedimiento puede ser seleccionado usando la lista de la
derecha.
Para afectar el estado de alguna propiedad de un objeto debe establecer una
referencia al objeto, segn la sintaxis:
Control.Propiedad=Valor
Por ejemplo:

txtMensaje.Caption = Hola amigos

Cada control posee un subconjunto propio de eventos. La lista siguiente muestra


los eventos disponibles:
Activate
Change
Click
DblClick
Deactivate
DragDrop
DragOver
DropDown
Error
GotFocus
KeyDown
KeyPress

KeyUp
LinkClose
LinkError
LinkExecute
LinkNotify
LinkOpen
Load
LostFocus
MouseDown
MouseMove
MouseUp
Paint

17

PathChange
PatternChange
QueryUnload
Reposition
Resize
RowColChange
Scroll
SelChange
Timer
Unload
Updated
Validate

Aprenda a programar en Visual Basic

Para ejecutar la aplicacin pulse F5 o haga click en el botn Ejecutar


Al hacer clic en el botn Plsame, deber aparecer el mensaje dentro del cuadro de
texto.

Para detener la aplicacin, pulse el botn Finalizar


Terminar en el Men Ejecutar

o, ubique la opcin

Los procedimiento asociados a un evento comienzan:

Private Sub Objeto_Evento()


Y termina con:

End Sub
Ampliaremos este ejemplo, si luego de haber hecho click en el botn Plsame se
modifica el contenido del cuadro de texto, haremos que el botn muestre el titulo
"Restaurar mensaje".
Cuando se modifica el contenido o valor de un objeto, en nuestro caso el cuadro de
texto, se ejecuta o dispara el evento Change, entonces definimos:

Private Sub txtMensaje _Change()


cmdPulsame.Caption = "Restaurar mensaje"
End Sub

Modificaremos la aplicacin para que, una vez restaurado el mensaje, en el botn


de comando vuelva a aparecer el texto "Plsame".

Private Sub cmdPulsame _Click()


txtMensaje.Text = Hola amigos
cmdPulsame.Caption = "Pulsame"
End Sub

18

Aprenda a programar en Visual Basic

Finalmente puede crear un archivo ejecutable (.EXE), que sea independiente a


Visual Basic. Para crear un ejecutable seleccione Generar Proyecto1.exe del
men Archivo. Deber escribir un nombre para el ejecutable.
Puede crea dos tipos de ejecutable, el autentico ejecutable esta disponible solo en
las versiones Profesional y Empresarial, el otro tipo de ejecutable no estn
completamente en cdigo de mquina, estos estn en un Pseudo-cdigo. De esta
forma era necesario un archivo .DLL externo el cual traduca los comando P-Code a
comandos que pueden ser entendidos por Windows.

Versin de Visual Basic


1.0
2.0
3.0
4.0 (16-bit)
4.0 (32-bit)
5.0 (32 bit)
6.0 (32 bit)

Archivo DLL Requerido


VBRUN100.DLL
VBRUN200.DLL
VBRUN300.DLL
VB16400.DLL
VB32400.DLL
VSVBVM50.DLL
VSVBVM60.DLL

J Mas adelante se explicara con mas detalle una forma practica de distribuir las aplicaciones.

19

Aprenda a programar en Visual Basic

Nomenclatura a seguir
Un buen estilo para programar deber tener una estructura de cdigo fcil de
entender, no solo para otros desarrolladores sino tambin para si mismo.

Asigne nombres a los Controles


Use Prefijos para cada tipo de control seguido de un nombre significativo.

Control
Check box
Combo box
Command button
Form
Grid
Horizontal Scroll Bar
Image
Label
List Box
Menu
Option Button
Picture Box
Text Box
Timer
Vertical Scroll Bar

Prefijo
chk
cbo
cmd
frm
grd
hsb
img
lbl
lst
mnu
opt
pic
txt
tmr
vsb

Ejemplo
chkSoloEscritura
cboLenguaje
cmdCancelar
frmPrincipal
grdCantidades
hsbColor
imgBitMap
lblAyuda
lstCdigoColor
mnuAbrirArchivo
optNegritaBold
picMemoria
txtEntrada
tmrIniciaAlarma
vsbRango

20

Aprenda a programar en Visual Basic

Mantenga la identacin
Cuando deba anidar un grupo de instrucciones dentro de otra, es bueno que las
instrucciones anidadas se encuentren adistanciadas respecto a la primera orden, no
le recomiendo usar la barra espaciadora sino en su lugar un espacio de tabulacin,
esto se llama identar.
La identacin es usada para tener una mejor visibilidad en el diseo de un
programa. Observe el ejemplo siguiente:

For nDia = 1 To 7
Select Case nDia
Case 1
Print "Domingo"
Case 2
Print "Lunes"
Case 3
Print "Martes"
Case 4
Print "Mircoles"
Case 5
Print "Jueves"
Case 6
Print "Viernes"
Case 7
Print "Sbado"
End Select
Next nDia

21

Aprenda a programar en Visual Basic

Documente el Cdigo
Coviene que documente aquellas zonas donde haya complejidad en el cdigo.
Hay dos formas de documentar cdigo en VB:
Puede usar el comando REM la cual reserva toda la lnea como comentario.
Ejemplo:

Rem Centra el formulario.


frmCurrent.Left = (Screen.Width / 2) - (frmCurrent.Width / 2)
frmCurrent.Top = (Screen.Height / 2) - (frmCurrent.Height / 2)

Puede usar un apstrofe (') seguido por el texto de comentario. El apstrofe le


dice a VB que ignore todas la palabras que estn a continuacin. Ejemplo:

Dim xyz As Integer

la variable xyz ser entera

22

Aprenda a programar en Visual Basic

Construya Procedimientos
Toda la complejidad de un proceso desdblelo en pequeos procesos. A las finales
cada proceso formar un procedimiento, Por tanto procure que sus procedimientos
realicen tareas simples. Si un procedimiento maneja muchas tareas, lo mas
probable es que sea difcil de entender y que pueda provocar fcilmente un error.

Use Constantes
Algunas propiedades se especifican a travs de valores numricos, por ejemplo:

Check1.Value = 1

Si se trata de documentar, para un desarrollador principiante, el valor 1 no le dice


mucho, tendr que tomar un manual y averiguar su significado, pero si optamos
por esta otra forma:

Check1.Value = vbChecked

ser mas fcil interpretarla, vbChecked es una constante.


Otro ejemplo, la expresin 2*3.1416 puede parecer un tanto confuso, se vera
mejor como 2*Pi, donde Pi es una constante.

23

Aprenda a programar en Visual Basic

Respecto al valor de las propiedades


Puede guardar el estado de una propiedad en una variable, de la forma siguiente:

nPrecio = txtPrecio.Text

Aqu se guarda en la variable nPrecio, el valor de la propiedad Text del objeto


txtPrecio.
El siguiente ejemplo, asigna el color actual del objeto txtPrecio a una variable:

nColor = txtPrecio.BackColor
luego, dicho color es asociado al objeto frmEjemplo

frmEjemplo.BackColor = nColor

Tambien se puede hacer clculos con el valor de las propiedades:

txtPrecio.Text = txtPrecio.Text * 1.05

Se incrementa el valor de la propiedad Text en un 5% del objeto txtPrecio, luego el


valor es asignado a este mismo objeto.

24

Aprenda a programar en Visual Basic

El Formulario
El formulario es la ventana que sirve de interfaz entre la aplicacin y el usuario.
Presenta las caractersticas de cualquier ventana Windows.

Estas caractersticas son accesibles a travs de propiedades. El tamao del


formulario y de otros objetos se mide en Twips. Donde 1 Twips es igual a 1/20
punto1 o lo que es lo mismo, 567 twips equivale a un centmetro.
Las propiedades de un formulario son:
AutoRedraw
Si toma el valor True, vuelve a redibujar las imgenes en pantalla.
BackColor
Determina el color de fondo.
Visual Basic describe los cdigos de color en hexadecimal, en la ventana de
propiedades puede usar la paleta de colores.
BorderStyle
Permite definir el estilo de borde, esta propiedad es accesible solo en tiempo de
diseo. Puede tomar los siguientes valores:

Los puntos se usan para medir el tamao de las fuentes

25

Aprenda a programar en Visual Basic


Constante
vbBSNone

Valor
0 - None

Descripcin

vbFixedSingle

1 - Fixed Single

Tamao fijo con borde no dimensionable. Puede


incluir men de control, barra de ttulo, botn de
maximizar y minimizar.

VbSizable

2 - Sizeable

Ventana dimensionable, esta es la opcin por


defecto.

VbFixedDialog

3 - Fixed Dialog

Tamao fijo del borde, no dimensionable. Puede


incluir men de control, barra de ttulo. No puede
incluir botn de maximizar y botn de minimizar.

VbFixedTool
Window

4 - Fixed
ToolWindow

En aplicaciones de 16 bits o Windows NT 3.51 o


anteriores funciona como Fixed Single, sin
visualizar los botones de maximizar y minimizar.
Con Windows 95/98 visualiza el botn de cerrar y,
no aparece en la barra de tareas.

VbSizableToolWindow

5 - Sizeable
ToolWindow

En aplicaciones de 16 bits o Windows NT 3.51 o


anteriores funciona como Sizeable, sin visualizar
los botones de maximizar y minimizar. Con
Windows 95 visualiza el botn de cerrar y, no
aparece en la barra de tareas.

Ventana del formulario sin borde

Caption
Asigna un ttulo al formulario2, esta se muestra en el borde superior
ControlBox
En el estado True se muestra los botones de control, es accesible en tiempo de
ejecucin.
Enabled
En el estado False el formulario queda deshabilitado, por consecuencia no podr
responder a eventos.
Font
Determina el tipo de letra, atributos, etc. para impresin. El texto ya escrito no se
ver afectado por un cambio en estas propiedades, pero s el texto impreso
posteriormente.
Height, Width
Determinan el ancho y el alto del formulario. Se miden en Twips Determinan el
tamao del formulario cuando se imprima, no cuando sea visualizado en pantalla. A
2

No confunda esta propiedad con Name

26

Aprenda a programar en Visual Basic


menos que el usuario modifique el borde cambiando la propiedad BordeStyle, el
usuario podr modificar el tamao y la forma de los diversos formularios de la
aplicacin sin tener en cuenta esta propiedad.
Icon
Asigna un icono al formulario, esta se muestra cuando el formulario es minimizado
o cuando se convierta en una aplicacin independiente en el escritorio de Windows.
Left, Top
Determinan la posicin del formulario en la pantalla. Funcionan de manera idntica
a las propiedades Height y Width descritas anteriormente. Se miden en twips.
MaxButton, MinButton
Si estas propiedades estn en el estado False, los botones de maximizar o
minimizar no se harn visibles, estas propiedades sern ignoradas si la propiedad
BorderStyle esta 0 - None.
MousePointer
Determina la forma en que se mostrar el puntero del ratn.
Name
Define el nombre del formulario, esta propiedad no es accesible en tiempo de
ejecucin
Picture
Muestra una imagen en el formulario a manera de tapiz
Visible
En el estado False el formulario no se har visible
WindowState
Establece el estado del formulario durante la ejecucin.
Constante
vbNormal
vbMinimized
vbMaximized

Valor
0
1
2

Descripcin
Tamao normal (por defecto)
Minimizar hacia un icono
Expandir el formulario al tamao de la ventana

27

Aprenda a programar en Visual Basic

Ejemplo
Vamos a crear un formulario que solicite el ingreso de una contrasea, en el
formulario situe un cuadro de texto y dos botones de comando, luego proceda a
definir las propiedades siguientes:

Objeto
Form1
Label1
Text1

Command1
Command2

Propiedad
Name
Caption
Name
Caption
Name
PassWordChar
Value
Enabled
Name
Default
Name
Cancel

Valor
frmClave
Validando los datos del Usuario
lblClave
Contrasea
txtClave
*
(vacio)
False
cmdAceptar
True
cmdCancelar
True

El formulario deber tener el siguiente aspecto:

En las ventanas Windows habr notado que la tecla Enter y Esc responden por
omisin a la eleccin de los botones Aceptar y Cancelar o Iniciar y Salir. Podemos
hacer lo mismo mediante las propiedades Default y Cancel de los botones de
comando. Deber asignar Default = True para el botn Aceptar y Cancel = True
para el botn Cancelar en tiempo de diseo.
Veamos las especificaciones en tiempo de Ejecucin:
El Botn cmdAceptar en un principio esta deshabilitado, ni bien se ingrese una letra
en el cuadro de texto txtClave, se podr habilitar, esta accin la hacemos mediante
el evento Change de txtClave:

28

Aprenda a programar en Visual Basic

Private Sub txtClave_Change()


If txtClave.Text <> "" Then
cmdAceptar.Enabled = True
End If
End Sub

El botn Aceptar, sera quin se encargue de validar el ingreso de la palabra clave,


vamos a suponer que que la llave de acceso es Cesar

Private Sub cmdAceptar_Click()


If txtClave.Text = "Cesar" Then
MsgBox "Usuario autorizado", vbOKOnly
Else
MsgBox "Usuario no autorizado", vbOKOnly
End If
End Sub

Ahora nos ocupamos del botn salir:

Private Sub cmdCancelar_Click()


End
End Sub

Ejecutando el formulario se obtiene algo asi:

29

Aprenda a programar en Visual Basic


Intente estirar el borde derecho o inferior del formulario, notar que es
redimensionable, si desea anular esta caracterstica, establezca la propiedad
BorderStyle en 1 Fixed Single. Tambin puede retirar los botones de control
estableciendo ControlBox en False.
Ahora la nica forma de cerrar el formulario es a travs del botn Cancelar

J No olvide dejar sus comentarios en www.LibrosDigitales.NET, son servir para preparar la segunda
edicin.

30

Aprenda a programar en Visual Basic

Usando multiples formularios


La mayora de las aplicaciones estn basadas en el uso de multiples formularios,
para acceder a los objetos ubicados en otro formulario, deber usar la sintaxis
siguiente:
Nombre_Formulario!Nombre_del_Control
Las propiedades que se usan con mltiples formularios son:
Show
Muestra en primer plano un formulario.

Hide
Oculta el formulario de la pantalla pero no lo descarga de memoria.

Load
Carga a memoria el formulario, pero no lo visualiza

31

Aprenda a programar en Visual Basic


Unload
Descarga de memoria el formulario, perdindose toda la informacin de sus
variables.

Ejemplo:
Agregue un nuevo formulario a su proyecto.
La secuencia es ir al men Proyecto y luego hacer click en la opcin Agregar
Formulario.

En el cuadro de dilogo elija el formulario tipo Acerca de

32

Aprenda a programar en Visual Basic

En este nuevo formulario complete los datos que se pide en las lineas punteadas

Le debe quedar algo asi:

33

Aprenda a programar en Visual Basic

A este formulario llamelo frmSplash, si hace doble click sobre el formulario,


encontrara que ya hay un cdigo predefinido:

Option Explicit
Private Sub Form_KeyPress(KeyAscii As Integer)
Unload Me
End Sub
Private Sub Form_Load()
lblVersion.Caption = "Versin " & App.Major & "." & _
App.Minor & "." & App.Revision
lblProductName.Caption = App.Title
End Sub
Private Sub Frame1_Click()
Unload Me
End Sub

El cual indica que cuando se haga click sobre el formulario, este se ha de cerrar.
Ahora nuestro proyecto ya tiene dos formularios: frmClave y frmSplash.
Si intenta ejecutar notar que se muestra primero frmClave.
Vamos a cambiar el orden primero deber de mostrarse el formulario de
presentacion, es decir frmSplash.
Vaya al menu Propiedades y elija la opcion Propiedades de Proyecto, en el
cuadro de dialogo ubique la pagina General, en ella cambie a frmSplash en la lista
Objeto Inicial:

34

Aprenda a programar en Visual Basic

Ahora para enlazar frmSplash con frmClave, aadimos la orden frmClave.Show


luego de UnLoad me en el cdigo autogenerado de frmSplash:

Option Explicit
Private Sub Form_KeyPress(KeyAscii As Integer)
Unload Me
FrmClave.Show
End Sub

Private Sub Form_Load()


lblVersion.Caption = "Versin " & App.Major & "." &_
App.Minor & "." & App.Revision
lblProductName.Caption = App.Title
End Sub
Private Sub Frame1_Click()
Unload Me
FrmClave.Show
End Sub

Seria mucho mas interesante, si la ventana de presentacin se muestre digamos


por dos segundos para luego cerrarse de manera automatica.

35

Aprenda a programar en Visual Basic


Es momento entonces de recurrir al control Cronometro (Timer)
Aada un control Cronometro y luego defina las propiedades:

Objeto
Timer1

Propiedad
Name
Enabled
Interval

Valor
tmrVer
True
2000

Luego haga doble click sobre este control y defina:

Private Sub tmrVer_Timer()


Unload Me
frmClave.Show
End Sub

Borre los procedimientos: Form_Keypress y Frame1_Click. Luego ejecute.


Agregue otro formulario al proyecto, sera un formulario normal, llamelo frmMagic,
situe en ella un control OLE, una etiqueta y un Botn de Comando, luego defina las
propiedades siguientes:

Objeto
Form1
OLE1
Label1
Command1

Propiedad
Name
Caption
Name
Name
Caption
Name
Caption
Cancel

Valor
frmMagic
A King of magic...
oleMagic
lblMagic
Haz doble click sobre la imagen
cmdCerrar
Cerrar
True

Al colocar el control OLE le mostrara el cuadro de dialogo Insertar Objeto, en ella


seale Crear desde archivo y luego ubique el archivo de video magic.avi

36

Aprenda a programar en Visual Basic

El aspecto del formulario deber ser el siguiente:

El botn Cerrar deber incluir el siguiente cdigo:

Private Sub cmdCerrar_Click()


Unload frmMagic
End Sub

37

Aprenda a programar en Visual Basic


Para asociar los formularios frmClave y frmMagic, vamos a redefinir el evento Click
del botn cmdAceptar en el formulario frmClave:

Private Sub cmdAceptar_Click()


If txtClave.Text = "Cesar" Then
frmMagic.Show vbModal
Else
MsgBox "No autorizado", vbOKOnly, "Advertencia"
End If
End Sub
Al ejecutar obtenemos:

38

Aprenda a programar en Visual Basic

Impresion del formulario


Ahora que su programa corre perfectamente, seguro desea imprimirla para
mostrarla a sus amigos.
Para obtener una copia impresa del formulario puede ir al menu Archivo, opcion
Imprimir y luego indicar si desea solo el cdigo o ademas la imagen es decir el
resultado.
Existe otra forma, es imprimiendo desde la aplicacin, por ejemplo mientras se va
reproduciendo el video de King of the Magic, quiza desee una instantanea de
Freddy Mercury para el album de fotos. Puede asociar la instruccin PrintForm a un
botn de comando.
Suponiendo que el botn se llamara cmdImprimir anotariamos:

Private Sub cmdImprimir_Click()


PrintForm
End Sub

39

Aprenda a programar en Visual Basic

Las funciones InputBox() y MsgBox()


InputBox()
Muestra una ventana para el ingreso de datos
cVariable = InputBox("Pregunta" [," Ttulo", xPos, yPos])
xPos, yPos indica las coordenadas donde se mostrar esta ventana, los valores
deben ser en twips

MsgBox()
Muestra una ventana para la visualizacion de algun resultado.
nValor = MsgBox("Mensaje ", Tipo, "Ttulo")
Aqu tipo es un numero que indica el icono y los botones que aparecern, la
tecnologia IntelliSense con la cual est dotada VB hace que mientras se anote la
funcion automaticamente aparezca las constantes de tipo.

nValor tomara un valor numerico segn el tipo de botn que se haya definido para
MsgBox(), una forma facil de manejarlo es a traves de constantes

Constante
vbOk
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo

nValor
1
2
3
4
5
6
7

Botn pulsado
Aceptar
Cancelar
Anular
Reintentar
Ignorar
Si
No

40

Aprenda a programar en Visual Basic

Ejemplo
Iremos a crear una aplicacin que pregunte al usuario su nombre y luego le d la
bienvenida.
Coloque en un formulario un botn de comando y un control imagen, luego defina
las propiedades:

Objeto
Form1
Image1
Command1

Propiedad
Name
Caption
Name
Picture
Stretch
Name
Caption
Cancel

Valor
frmSaludo
(vacio)
imgClaudia
Claudia.GIF
True
cmdCerrar
Cerrar
True

Al final le debe quedar algo asi:

Ahora haga doble click en el formulario y defina el evento Load. Aqu solicitamos el
nombre del usuario a traves del comando InputBox y la guardamos en la variable
cNombre, el cual luego lo pasamos como titulo del formulario.

41

Aprenda a programar en Visual Basic

Private Sub Form_Load()


cNombre = InputBox("Hola!!!" + Chr(13) _
+ "Cual es tu nombre?", "Saludos", "Colega")
frmSaludo.Caption = "Bienvenido " + cNombre
End Sub

Cuando se haga click sobre el botn Cerrar, mostraremos un mensaje de


despedida, aqu usaremos MsgBox:

Private Sub Command1_Click()


nRpta = MsgBox("Gracias por tu visita" + Chr(13) _
+ "Larga vida...", vbOKOnly, "Hasta pronto...")
End
End Sub

Al ejecutar se obtiene:

42

Aprenda a programar en Visual Basic

Variables
Podriamos representar una variable como una posicion en memoria a la cual
podemos llegar mediante un identificador y donde podemos guardar un dato por un
determinado tiempo, cuando se requiera podr tomarse, modificarse y volverse a
guardar.

Resumiendo diremos que las variables son estructura de datos usados para
almacenar informacin. Hay dos tipos de informacin que puede ser almacenada:
nmeros y texto, antes de usar una variable, deber primero definirla
Dim nombre_de_variable As Tipo
Ejemplo:

Dim numPrecio , numCant As Integer


Dim strNombreArticulo As String
numTotal = numPrecio*numCant
Print strNombreArticulo & Total = & numTotal

A continuacin exponemos los tipos de variables disponibles, luego los criterios a


tener cuando se usen y el alcance que estas tienen dentro de una aplicacion

43

Aprenda a programar en Visual Basic

Tipos de variable
Se dispone de los siguientes tipos de variable:

Tipo
Integer
(Entero)

Descripcion
Guardan valores numricos enteros relativamente
pequeos, el espacio que ocupa cada variable es de 2
bytes

Long
(Entero largo)

Permite el uso de valores relativamente grandes, ocupa 4


bytes en memoria

Single
(Simple precision)

Numeros de simple precision, estas variables guardan


aproximaciones de los numeros, el tamao de estos
numeros es de hasta 38 digitos, pueden ser fraccionarios,
pero solo tienen una precision de siete digitos, estas
variables ocupan 4 bytes en memoria.

Double
(Doble precision)

Estas variables guardan numeros con una precision de 16


digitos y permiten mas de 300 digitos, use estas variables
para clculos cientificos, el espacio que ocupa 8 bytes

Currency
(Monetario)

Este tipo de variable mantiene 4 cifras decimasles de


precision y puede tener hasta 14 digitos en la parte
entera. Ocupa 8 bytes

String
(Cadena)

Para el almacenamiento de caracteres, la variable puede


guaradr hasta 2 billones de caracteres (estaria restringido
por la capacidad de su computadora)

Date
(Fecha)

Permite almacenar una fecha y una hora. Si incluye solo la


fecha se asumira por hora la medianoche. Ocupa 8 bytes

Byte

Puede contener un valor entero entre 0 y 255, aparente si


se desea economizar espacio. Ocupa 1 byte

Boolean

Permite almacenar un valor logico, puede ser True o False.


Ocupa 2 bytes

Variant

Este tipo de variable puede guardar cualquier tipo de dato,


VB hace las conversiones automaticamente de modo que
el Desarrollador no tendr que preocuparse por ellas.

44

Aprenda a programar en Visual Basic


Para cada tipo de variable hay un rango de valores permitidos:
Tipo
Byte

Rango permitido
De 0 a 255

Integer

-32,768 a 32,767

Long

-2,147,483,648 a 2,147,483,647

Single

-3.402823E38 a -1.401298E-45
1.401298E-45 a 3.402823E38

Double

-1.79769313486232D308 a -4.94065645841247D-324
4.94065645841247D-324 a 1.79769313486232D308

Currency
String

-922337203685477.5808 a 922337203685477.5807
Con tamao variable 10 bytes + 1 byte/char
Con tamao fijo, 1 byte/char
(0 hasta 65400 caracteres)

Date

De 1 de Enero del 100 al 31 de Dic de 9999

Variant

Con nmero, 16 bytes


Con caracteres, 22 bytes + 1 byte/char
Valores de fechas: 1/1/0000 a 12/32/9999

Una vez definida la variable, le puede asignar un valor. Para esto se usa el operador
' = '.
Ejemplo:

Dim numPrecio , numCant As Integer


Dim strNombreArticulo As String
numPrecio = 17
numCant = 5
strNombreArticulo = Teclados

Las operaciones que se efectuan con variables, se deben hacer entre variables del
mismo tipo, por ejemplo:

Print numCant * strNombreArticulo

Presentaria un error indicando que los tipos no coinciden Type Mismatch

45

Aprenda a programar en Visual Basic

Si no define la variable por defecto asumir el tipo Variant (evite usar este tipo de
variable), analice el siguiente caso:

var1 = 8
var2 = var1 + 6
Print var2

Espera el error Type Mismatch?, pues no la respuesta es 14, hay un hecho curioso
en las variables del tipo Variant, antes de realizar la suma, VB evalua el contenido
de var1, a pesar de estar entre comillas lo convierte a numrico.

var1 = 8
var2 = var1 & 6
Print var2

El simbolo & se usa para unir dos cadenas, en la secuencia anterior var1 es una
variable numrica, al igual que en el ejemplo anterior se esperaria un error del tipo
Type Mismatch, pero termina arrojando el resultado 86, es decir var1 lo ha
convertido a cadena.

Dim var1 As Integer


Dim var2 As Integer
var1 = 8
var2 = 6
var2 = var1 & var2
Print var2

En teoria la secuencia anterior deberia arrojar un mensaje de error ya que var1 y


var2 son variables numricas, el hecho de usar el operador de concatenacion los ha
unido como si fueran datos del tipo carcter. La gran pregunta es: cual es el tipo de
la variable var2 luego de haberse hecho el clculo? Y que suceder si a ese
resultado le multiplicamos o sumamos un numero?.
En resumen: el operador '+' suma los operandos, mientras que '&' los une:

X
X
X
Y

=
=
=
=

"ABC" + "DE"
"ABC" & "DE"
12 + 3
12 & 3

X="ABCDE"
X="ABCDE"
X=15
X="123"

46

Aprenda a programar en Visual Basic

Option Explicit
Para evitar posibles errores a consecuencia de variables no declaradas (es decir
Variant), podemos obligarnos a definirlas. Vaya al menu Herramientas, luego a
Opciones y marque la casilla Requerir declaracion de variables.
Ahora en cada modulo, (FRM, BAS o CLS) se aadir al principio la instruccin
Option Explicit.

Procure usar siempre Option Explicit en cada mdulo. Option Explicit localiza los
nombres de variables incorrectos de forma automtica.
En cuanto a la definicion de las variables, se mencion que se deba usar la
instruccin DIM, pero no es la unica forma, tambien puede usar:

47

Aprenda a programar en Visual Basic

Dim
Dim
Dim
Dim
Dim
Dim
Dim

var1
var2
var3
var4
var5
var6
var7

As
As
As
As
As
As
As

Variant
Integer
Long
Single
Double
String
Currency

Dim
Dim
Dim
Dim
Dim
Dim
Dim

var1
var2%
var3&
var4!
var5#
var6$
var7@

Puede declarar mas de una variable con una sola instruccin Dim, por ejemplo:

Dim numPrecio As Currency, strNombre As String


Dim numCant%, strTelefono$

De que tipo son las variables valor1, valor2 y valor3, en la siguiente linea?

Dim valor1, valor2, valor3 As Integer

Si afirma que todas son de tipo Integer, est en un error, pues las dos primeras
variables son de tipo Variant y la ultima Integer, asi que hay que tener mucho
cuidado. Finalmente si elige un tipo de variable incorrecto y luego almacena un
valor que excede el rango permitido, se presentar un error de desbordamiento,
por ejemplo:

Dim nPoblacion As Integer


nPoblacion = 90000

48

Aprenda a programar en Visual Basic

Usando DefXXX en la definicion de variables


Si definimos:

Dim nPoblacion, nVarones, nMujeres

ya se sabe que estas variables por omision son del tipo Variant, para simplificar el
cdigo, se puede indicar al principio del modulo (en Declaraciones Generales) que
todas las variables que se definan sin tipo, pertenezcan a uno por defecto3, esto se
hace a traves de la instruccin DefXXX.
Los formatos de las distintas instrucciones DefXXX son:
DefInt
DefLng
DefSng
DefDbl
DefCur
DefStr
DefVal
DefBool
DefByte
DefDate

rango
rango
rango
rango
rango
rango
rango
rango
rango
rango

de
de
de
de
de
de
de
de
de
de

letra
letra
letra
letra
letra
letra
letra
letra
letra
letra

Enteros
Enteros largos
Reales de simple precision
Reales de doble precision
Moneda
Cadenas
Variantes
Booleanas
Byte
Fecha

Por ejemplo las variables nPoblacion, nVarones y nMujeres tienen algo en comun,
todas empiezan con la letra n, entonces en Declaraciones Generales anote:

DefLng N
DefStr A-D

Ahora cuando se defina:

Dim nPoblacion, nVarones, nMujeres, nSalario As Currency

Se asumir por defecto que todas las variables que empiezan con la letra n seran
del tipo Entero largo, excepto nSalario que es Monetario.

Excepto el Variant

49

Aprenda a programar en Visual Basic


Tambien se puede indicar un rango, por ejemplo:

DefStr A-D

Indica que todas las variable que empiezan con las letras A, B, C o D seran del tipo
Cadena.
A continuacion se muestra la estructura completa del ejemplo:

50

Aprenda a programar en Visual Basic

Alcance de las variables


En muchas ocasiones se necesita que el valor de una variable se conserve mientras
se ejecuta la aplicacin, en otras que el valor solo exista por un determinado
momento.
El ambito de la variable va a depender del lugar donde la defina, si la variable la
define en Declaraciones Generales, la variable ser visible en todos los
procedimientos relacionados al formulario, cualquier cambio que haga en esta
variable desde un procedimiento de evento persistir.
Veamos un ejemplo: En un formulario disponga de dos botones de comando:
Command1 y Command2, haga doble click en el formulario, en la ventana de
cdigo ubiquese al principio en la zona denominada Declaraciones Generales, en
ella defina la variable x. Luego asigne el cdigo siguiente a los botones de
comando:

Las variables que se declaran a nivel de formulario (en Declaraciones Generales),


mantienen su valor y son accesibles desde cualquier procedimiento del formulario.
Si ejecuta el formulario y hace click en Command1, la primera vez se imprima 0, si
vuelve a pulsarlo imprimir 1 y asi sucesivamente.
Para Command2 aparentemente se redefine la variable, al asociarle un nuevo valor,
en este caso la cadena Cesar, y luego hacer click sobre el botn se espera como
resultado Cesar, hasta alli va bien pero que suceder si ahora hacemos click en
Command1? si cree que se imprimir Cesar, estamos mal se imprimir el
nmero siguiente.

51

Aprenda a programar en Visual Basic


La variable definida en Command2 existe solo cuando se ingresa a dicho
procedimiento, al abandonarla, dicha variable deja de existir.

Hay tres tipos de alcance en una variable:


Local

La variable solo puede ser usada en el procedimiento actual (use


Dim dentro del procedimiento).

Mdulo

La variables pueden ser accesadas desde cualquier procedimiento


del formulario actual (use Dim dentro de la seccin de
Declaraciones Generales del modulo).

Global

Pueden ser accesados desde cualquier procedimiento y desde


cualquier formulario. (usa Global dentro de la seccin de
Declaraciones Generales del formulario).

El declarar variables y arreglos como local en un procedimiento o funcin es


muy usado, porque esto minimza los efectos extraos que pueden ocurrir cuando
se usan variables globales. Sin embargo, cuando usamos una variable local en un
procedimiento, crea un espacio de memoria para mantener el valor de esta variable
, esto sucede cuando lee la definicion Dim, pero cuando llega al final del
procedimiento (End Sub) libera el espacio asigndo para el valor de la variable local.
Agrega el siguiente cdigo a un botn de comando y observa que valores son
impresos:

52

Aprenda a programar en Visual Basic

Despus de dar clic varias veces al botn el valor nunca ser arriba de uno a pesar
de que el valor de la variable se incrementa en uno cada vez. Esto es porque cada
vez que el procedimiento es llamado, la variable se define, existe y al finalizar la
Ejecucin del prodimiento muere. Para que sto no suceda as, podemos sustituir
Static en lugar de Dim:

Ahora en vez de que el valor de la variable se pierda cuando el procedimiento


termina, con este cambio (static) su valor permanecer hasta que todo el programa
termine. De esta manera, podemos ver una lista de nmeros que se incrementan
en uno cada vez que se haga click en el botn de comando4.
4

La nueva variable esttica es una variable de alcance local, si algun procedimiento trata de acceder esta variable no
prodr hacerlo

53

Aprenda a programar en Visual Basic

Constantes
Hay ciertos valores que no necesariamente cambian en una aplicacin como el
contenido de las variables, datos como por ejemplo el IGV, el tipo de cambio, el
valor de PI. En lugar de anotar:

nRadio = 10
Print Perimetro circulo ; 2*nRadio*3.1416

Resulta mas claro:

Const PI = 3.1416
nRadio = 10
Print Perimetro circulo ; 2*nRadio*PI

Mas aun si el valor PI se utiliza en diferentes partes de la aplicacin.


Las constantes mantiene un valor en toda la ejecucin del programa. Se definen
usando la instruccin Const.
Veamos otro ejemplo:

Const IGV = 1.18


Declara y asigna un valor
constante
Const TipoCambio = 5.2
Tipo de cambio
Dim Precio As Currency
Precio = 120
Print Precio ; Precio * IGV
Print Al cambio ; Precio * IGV*TipoCambio

a la

Como las variables las constantes tambin tiene reglas de alcance. Hay constantes
globales que pueden ser accesadas por cualquier mdulo o cualquier formulario del
proyecto, las constantes de mdulo solo son accesadas por el formulario que los
contiene, y las contantes locales son accesadas solamente por el objeto actual o por
el procedimiento o funcin.

54

Aprenda a programar en Visual Basic


Local

Utilice Const dentro del procedimiento

Mdulo

Utilice Const dentro de la seccin de Declaraciones Generales de


un formulario o mdulo

Global

Utilice Global Const dentro de la seccin de Declaraciones


Generales de un mdulo

Hay un gran nmero de constantes predefinidas, muchas de ellas son accesibles


mediante la tecnologia IntelliSense. Puede acceder a la lista de constantes
pulsando la tecla F2 o mediante el menu Ver opcion Examinador de Objetos (Object
Browser)

Para trasladar una constante a la ventana de cdigo, ubique la constante en la


ventana Examinador de Objetos, luego haga uso del botn Copiar al Portapapeles.
Ahora en la ventana de cdigo solo tiene que pegar: Ctrl-V.

55

Aprenda a programar en Visual Basic

Arreglos (arrays)
Un arreglo, representa un conjunto de posiciones consecutivas en memoria
identificadas con un mismo nombre a las que se puede acceder a traves de un
subindice, cada posicion cumple la misma funcion que una variable: almacenar un
dato.
Podriamos decir tambien que un arreglo si es unidimensional es la representacion
de un vector y si es bidimensional la de una matriz.

En VB los elementos de un arreglo deben almacenar datos del mismo tipo. Un


detalle mas, el primer elemento de una matriz posee como subindice 0, el siguiente
1 y asi sucesivamente. El rango mximo va desde -32.769 hasta 32.767
Para definir un arreglo se usar la instruccin:
Dim/Static/Private/Public Arreglo ([Rango1[,Rango2[,...]]]) As Tipo
Ejemplo:

Dim aAmigos(3) As String

En el ejemplo se crea el arreglo aAmigos con 3 elementos, para asignar valores al


arreglo use el signo =:

aAmigos(0) = Guino
aAmigos(1)= Dario
aAmigos(2) = Cesar

Si deseamos imprimir uno de los nombres basta sealarlo con el indice:

Print aAmigos(1)

Imprime Dario

56

Aprenda a programar en Visual Basic


Si el valor debe asignarse como titulo de un botn de comando (a Command1 por
ejemplo), basta referenciar y asignar:

Command1.Caption = aAmigos(1)

Para quienes estamos acostumbrados a iniciar la cuenta a partir del nmero uno,
puede que nos desencaje el cero como inicial, para corregirlo podemos usar la
instruccin Option Base 1, de esa forma forzamos a empezar con 1. Asi

Print aAmigos(1)

Imprimir Guino

Si deseramos agregar mas elementos, no podramos ya que este tipo de arreglo


no lo permite (arreglo esttico), la solucion est en usar un arreglo dinamico.
Un alcance mas, tambien puede crear arreglos indicando un rango de subindices,
por ejemplo:

Dim Lista(2 To 5) As Integer

Crea un arreglo de 4 elementos, del 2 al 5.

57

Aprenda a programar en Visual Basic

Arreglos Dinmicos
Podemos crear arreglos tantas veces lo necesitemos, pero en ciertos momentos es
necesario cambiar el tamao del arreglo en una aplicacin. Para hacer esto
podemos usar un arreglo 'dnamico'. Primero el arreglo puede ser declarado en la
misma forma, pero sin el nmero de elementos.
Como ejemplo vamos a crear un arreglo que contenga los distritos de Lima:

Dim aDistritos() As String

Para cambiar el tamao de este arreglo use el comando 'ReDim' y especifique el


nmero de elementos :

ReDim aDistritos(5)
aDistritos(0) = Lince
aDistritos(1) = San Borja
aDistritos(2) = Miraflores
aDistritos(3) = Barraco
aDistritos(4) = Surco

Si intentamos redimensionar el arreglo se perder, para que esto no suceda


podemos usar:

ReDim Preserve aDistritos(7)


aDistritos(5) = Rimac
aDistritos(6) = San Martin de Porres

58

Aprenda a programar en Visual Basic

Funciones para el tratamiento de arreglos


Hay dos funciones que se usa con cierta frecuencia en el tratamiento de arreglos se
trata de:
LBound

Retorna el menor valor de un arreglo

UBound

Devuelve el mayor valor de un arreglo

Por ejemplo

Dim aPrecios(3) As Integer


aPrecios(0) = 300
aPrecios(1) = 190
aPrecios(2) = 200
Print Lo mas barato; LBound(aPrecios)
Print Lo mas caro; UBound(aPrecios)

J No olvide visitar siempre www.LibrosDigitales.NET, recomiende a sus amistades nuestros libros, son
GRATIS

59

Aprenda a programar en Visual Basic

Arreglo de Controles
Un Arreglo de Controles es un grupo de controles que comparten el mismo nombre
y tipo. A su vez, comparten los mismos procedimientos de eventos, pero son
controles fsicamente separados y cada uno posee su propio conjunto de
propiedades. Un arreglo de controles tiene al menos un elemento y no puede
exceder de 254. Para crear un arreglo de controles es suficiente con asignar el
mismo nombre a los controles (propiedad Name) en la fase de diseo, o bien
asignar un valor a la propiedad Index de un control. En el ltimo caso se genera un
arreglo de un solo elemento, lo cual es til cuando se quieren crear controles en
tiempo de ejecucin. Cuando Visual Basic crea un arreglo de controles, asigna por
defecto los ndices 0, 1, ..., los cuales pueden modificarse a voluntad del usuario
cambiando el valor de la propiedad Index. Esta operacin slo puede hacerse
durante el diseo.
Un pequeo ejemplo: en un formulario se situar tres botones de comandos, a los
tres pngale de nombre cmdBotones, claro con ttulos diferentes: Aceptar,.
Cancelar y Ayuda.
Si hace doble click sobre uno de ellos, se abrir la ventana de cdigo, debemos
usar el parmetro Index5, para averiguar cual de los tres botones de puls. Debe
tener presente que el cdigo creado es compartido por cada uno de los elementos
del arreglo de controles.

Un elemento del arreglo


NombreArreglo(Index)

de

controles

Que por defecto aparecer

60

puede

referenciarse

escribiendo

Aprenda a programar en Visual Basic

Control del flujo en un Programa


El flujo de control de la lgica de un programa es una de las facetas ms
importantes de cualquier lenguaje de programacin. Las instrucciones condicionales
que cambian la direccin del flujo de control, las instrucciones iterativas (los bucles)
que repiten una determinada accin un cierto nmero de veces, y las instrucciones
de seleccin que escogen una posible lnea de accin de entre varias posibles
basndose en un valor de control, son herramientas que permiten escribir
programas tiles en Visual Basic.

Estructura condicional simple


La estructura condicional simple dirige el flujo de un programa basandose en una
condicin, la veracidad o falsedad de la condicin dirigir el flujo en una direccin,
de entre dos posibles.

La sintaxis de esta instruccin es la siguiente:


Forma simple:
IF <Condicin> THEN <instruccin>
La forma en que trabaja esta instruccin resulta casi evidente: si (IF) la condicin
resulta cierta (True), entonces (THEN) la instruccin se ejecuta. Si la condicin
resulta falsa (False), el control pasa a la siguiente (en orden descendente)
instruccin del programa.
Forma completa:
IF <Condicin> THEN <instruccin1> ELSE <instruccin2>

61

Aprenda a programar en Visual Basic

Aqu, si la condicin resulta cierta, entonces se ejecuta la <instruccin 1>. Si por


el contrario (ELSE) la expresin resulta falsa, entonces se ejecuta la <instruccin
2>.
La forma de usar esta orden condicional con bloques de instrucciones es
desdoblndolas de la forma siguiente:
Forma simple:
IF <Condicin> THEN
<instrucciones>
ENDIF
Forma completa:
IF <Condicin> THEN
<instrucciones 1>
ELSE
<instrucciones 2>
ENDIF
Por ejemplo:

If k < 0 Then
Negativo = True
k = Abs(k)
Else
Negativo = False
End If

Actualiza el indicador de negativo


Toma el valor absoluto de k
Borra el indicador de negativo

62

Aprenda a programar en Visual Basic


Hay una forma ms sofisticada de la instruccin IF, donde se establece mltiples
condiciones, el bloque de instrucciones que se ejecutar ser aquella donde la
condicin sea verdadera:
IF Condicion1 THEN
[Instrucciones1]
[ELSEIF Condicion2
[Instrucciones2]]
[ELSEIF Condicion3
[Instrucciones3]]
...
[ELSE
[InstruccionesN]]
END IF
Finalmente tenemos la funcin IIF() que guarda cierto parecido al comando IF, slo
que la funcin en este caso retorna un valor, adems debe estar expresada en una
sola lnea:
Valor = IIF(Condicion, ExpVerdadera, ExpFalsa)

63

Aprenda a programar en Visual Basic

Instrucciones IF anidadas
Es posible anidar tantas instrucciones IF como se quiera, pero conviene recordar
que si alguien al leer un programa necesita profundizar en demasiados niveles de
IF antes de llegar al nivel ms elemental, podra perder la pista del funcionamiento
del programa y abandonarlo antes de tener la oportunidad de tener la oportunidad
de volver hacia los niveles superiores. Si la nica razn del anidamiento mltiple de
instrucciones IF es elegir una alternativa de entre varias, sera mucho mejor utilizar
la instruccin SELECT CASE. La forma de una estructura de este tipo sera algo
como:
IF <condicin 1> THEN
IF <condicin 2> THEN
IF <condicin 3> THEN
IF <condicin 4> THEN
<instruccin>
ENDIF
ENDIF
ENDIF
ENDIF
Aqu tenemos otro caso de anidacin:
IF <condicin 1> THEN
<instruccin 1>
ELSE
IF <condicin 2> THEN
<instruccin 2>
ELSE
IF <condicin 3> THEN
<instruccin 3>
ELSE
<instruccin 4>
ENDIF
ENDIF
ENDIF

64

Aprenda a programar en Visual Basic

Respecto a la condicin
Los operadores que puede usar para elaborar la condicin son:
>
<
=
<=
>=
<>
Like

Mayor que
Menor que
Igual a
Inferior o igual a
Superior o igual a
Distinto a
Como el modelo de cadena propuesto

Con Like se pueden usar los siguientes comodines:


*

Para cero, uno o ms caracteres cualesquiera

Para un carcter nico cualquiera

Para una cifra nica cualquiera

[ListaChars] Para todo carcter nico que se encuentre en la lista


[!ListaChars] Para todo carcter nico que no se encuentre en la lista
Ejemplos:
Si el cdigo es de 7 caracteres, de los cuales el primero es S, luego dos
caracteres cualesquiera, luego los caracteres IQT ms un nmero:

IF IdProducto LIKE "S??IQT#" THEN

El primer carcter no puede ser ni una K ni una R:

IF IdProducto LIKE "[!KR]*" THEN

No est comprendido entre la K y la R inclusive.

IF IdProducto LIKE "[!K-R]*" THEN

65

Aprenda a programar en Visual Basic


En VB las cadenas Clave, clave y CLAVE son diferentes, si en una variable
tiene un valor y la quiere comparar con una de estas palabras, tendra que usar las
funciones UCase() o LCase():

IF UCase(var) = CLAVE THEN


o

IF LCase(var) = clave THEN

Pero, hay una forma con la que ya no tiene que preocuparse de como se ingrese el
dato, es indicando: Option Compare Text al principio del mdulo en Declaraciones
Generales.
De modo que:

IF var = Clave THEN

la condicion ser verdadera si se ingres CLAVE o clave.

66

Aprenda a programar en Visual Basic

Instruccin repetitiva multiple


La instruccin SELECT CASE es una forma abreviada para referirse al anidamiento
ELSE/IF. La sintaxis es la siguiente:
SELECT CASE Condicin_de_testeo
CASE valor1
Instrucciones 1
[CASE valor2
instrucciones 2]
...
[CASE ELSE
instrucciones n]
END SELECT
La siguiente estructura de instrucciones If anidadas:

IF nota < 11 Then


estado=desaprobado
Else
If nota < 13 Then
Estado=sustitutorio
Else
Estado = aprobado
End If
End If

Puede ser reemplazada por:

Select Case nota


Case < 11
estado=desaprobado
Case < 13
estado=sustitutorio
Case Else
estado = aprobado
End Select

Es importante que tenga en cuenta que slo se activa la primera clausula Case
cuya condicin se haga verdadera.

67

Aprenda a programar en Visual Basic


Casos especiales:
Podemos usar la palabra Is , por ejemplo para averiguar si el valor de la variable es
una letra:

Case Is < A
Print El carcter no es una letra

La palabra To permite especificar un cojunto de valores, por ejemplo para validar


una edad:

Case 18 To 60
Print Bienvenido al club

Por ltimo la estructura de control Select Case permite combinar en una linea
varias comprobaciones, por ejemplo

Case Iquitos, Pucallpa


Print Se encuentra en la selva

68

Aprenda a programar en Visual Basic

Instruccin iterativa FOR


En muchas ocasiones hay necesidad de realizar una misma operacin, mltiples
veces sobre un determinado rango de valores.

Esta estructura recibe el nombre de instruccin FOR:


FOR var = Inicio TO Final [STEP Incremento]
[Instrucciones]
[EXIT FOR]
[Instrucciones]
NEXT[Variable]
La <var>iable determina la iteracin que inicia en valor <inicial> y finaliza en
valor <final>. Cuando se ejecuta una instruccin FOR, se realizan las siguientes
acciones: la variable de control toma el valor inicial si este valor es diferente al
valor final entonces, se ejecuta las instrucciones. Despus de que la instruccin ha
sido ejecutada, se asigna a la variable de control un valor siguiente de acuerdo al
incremento. Si este llega a tomar el valor final, la ejecucin de la instruccin FOR se
detendr. En caso contrario, las instrucciones se ejecutan de nuevo.

69

Aprenda a programar en Visual Basic


Ejemplo:
La impresin de races cuadradas de los nmeros pares entre el 20 al 100 usando la
instruccin FOR, sera:

For i = 20 To 100 Step 2


j = Sqrt(i) ;
Print La raz cuadrada de & i & es & j
Next

Veamos algunas restricciones de esta orden:

For k = 1 To 10
If k > 3
k = 1
End If
? k
Next

La secuencia anterior generara un error al intentar reasignar el valor de la variable


de control, recuerde la variable de control es solo de lectura. El valor de la variable
de control dentro de un bucle FOR no se puede cambiar! Las estructuras
REPEAT/UNTIL y DO/WHILE s permiten redefinir la condicion de iteracin. En
cambio los bucles FOR se ejecutan un nmero de veces predeterminado, y
mientras dura la ejecucin, el valor de la variable de control queda bajo el control
exclusivo del propio bucle FOR.
Procure no hacer clculos dentro del bucle, de valores que no van a cambiar.
Hay una instruccin vetada, es decir que no se debe usar, o al menos evitarla en lo
posible, se trata de GOTO, la cual sirve para variar el rumbo de la ejecucin de un
programa hacia alguna otra parte, rompiendo con los canones de la programacin
estructurada.
Veamos:

For k = 1 To 10
If k > 3
GoTo Salir
End If
? k
Next
Salir:

70

Aprenda a programar en Visual Basic

Esta otra estructura arrojara un error, cuando k tome el valor 4, no debe


abandonar un lazo mediante GOTO, resultara mejor si usar:

For k = 1 To 10
If k > 3
Exit For
EndIf
? k
Next

71

Aprenda a programar en Visual Basic

Instruccin iterativa WHILE


Las tareas que deban repetirse cierta cantidad podemos contrarla facilmente
mediante la orden WHILE.

Visual Basic ofrece tres posibilidades para realizar este tipo de estructura.

72

Aprenda a programar en Visual Basic


El caso While Wend:
WHILE Condicion
[Instrucciones]
WEND
La forma en que trabaja este bucle es la siguiente:
Inicialmente se evala la condicin. Si el valor de esta expresin es True,
entonces se ejecuta <instruccin>. Por el contrario, si el resultado de la
evaluacin es False, <sentencia> no llega a ejecutarse, y el control pasa a la
siguiente instruccin del programa.
Suponiendo que la <condicin> sea True la primera vez, despus de ejecutar
<instrucciones> el cdigo vuelve al principio y evala <condicin> de nuevo.
Si su resultado contina siendo verdadero, <instrucciones>se vuelve a
ejecutar. En el momento en el que el resultado de la evaluacin pase a ser
False, el bucle WHILE pasar el control a la siguiente instruccin del programa.
En resumen, mientras <condicin> es True, <instrucciones> se ejecutar una
y otra vez, solamente cuando la expresin se vuelve falsa termina de ejecutarse el
bucle.
El caso de la lista de races cuadradas de los nmeros comprendidos entre el 20 y
el 100 sera:

k = 20
While K <= 100
j = Sqrt(k) ;
Print La raz cuadrada de & k & es & j
k = k + 2
Wend

73

Aprenda a programar en Visual Basic


El caso Do While Loop:
DO [{WHILE/UNTIL} Condicion]
[Instrucciones]
[EXIT DO]
[Instrucciones]
LOOP
La salvedad es que en esta estructura se puede usar Exit Do, para forzar a terminar
el lazo y continuar con la ejecucin del resto del programa. Por ejemplo:

Num = 0
Do While Num < 5
Num = Num + 1
If Num = 3 Exit Do
Loop
Print Num
'Resultado=5

El caso Do Loop While:


DO

[Instrucciones]
[EXIT DO]
[Instrucciones]
DO [{WHILE/UNTIL} Condicion]

La diferencia entre poner las clasulas While/Until con el Do o con el Loop es que
en el primer caso puede que no se ejecuten nunca las instrucciones del bucle y en
el segundo caso se ejecutan al menos una vez. Una lista de las races de los 4
primeros nmeros:

Num = 1
Do
Print Sqrt(Num)
Num = Num + 1
Loop While Num < 5

J Estamos preparando la siguiente edicin, donde incluiremos el tratamiento de Base de Datos,


recuerde que su participacin para nosotros es muy importante.

74

Aprenda a programar en Visual Basic

Prxima Entrega

Edicin 1.1
Dentro de una semana
Prohibida la reproduccin total o parcial
Sin nuestro consentimiento
Derechos de copia reservados
www.LibrosDigitales.NET

75

You might also like