Guia de Visual Basic 5.0
Guia de Visual Basic 5.0
Curso Bsico 1
Introduccin
En el lanzamiento al mercado mundial de Visual Basic versin 1,0 Bill Gates Presidente de
Microsoft, lo describi como: El entorno perfecto para la programacin Windows de los
aos 90.
Hoy da, al final de nuestra dcada, Visual Basic en sus versiones 2, 3 4 y 5 ha logrado
importantes mejoras, que lo sitan como uno de los lenguajes de alto nivel mas utilizado a
nivel mundial. Windows, producto introducido por Microsoft en 1985, es el entorno ms
popular de interfaz grfica del usuario, Microsoft Visual Basic es un sistema de desarrollo
diseado especialmente para crear aplicaciones con interfaz grfica para Windows de una
forma rpida y sencilla.
Este curso es una introduccin al uso de Visual Basic, con lo cual aprenderemos a manejar
la creacin y programacin de ventana y controles principales, as como un repaso de las
instrucciones principales de Basic aplicadas programas sencillos.
Se espera que el curso sea tomado por personas con conocimientos bsicos de
programacin, asi como en el manejo del ambiente Windows.
La versin utilizada ser Visual Basic 5.0, la cual se recomienda utilizar en
microcomputadoras que operen bajo ambiente Windows 95, y con las siguientes
caractersticas mnimas:
Microprocesador Pentium.
32 megabytes de Memoria Principal.
Espacio disponible en disco de 60 megabytes.
Si cuenta con estos requisitos mnimos y esta dispuesto a aprender Visual Basic solo debe
hacer clic sobre el icono de Visual Basic desde el escritorio de Windows.
Al ingresar a Visual Basic vera una pantalla como la que se muestra en la figura 1.0
Barra de mens
La Barra de Mens
Una de las formas ms tpicas para desencadenar la potencia de una aplicacin en un
programa bajo Windows, es seleccionar elementos de los mens desplegables. En Visual
Basic, la barra de mens cuenta con once grandes mens desplegables los cuales encierran
todo el potencial del entorno de desarrollo.
El men File, contiene las ordenes para trabajar con archivos que forman parte
de nuestras aplicaciones.
El men Edit, contiene las herramientas de edicin que ayudan a escribir el
cdigo del programa que estemos desarrollando.
El men View, proporciona acceso rpido a todas las partes del programa.
El men Proyect, permite adicionar y manejar los diferentes elementos que
constituyen un proyecto en Visual Basic.
El men Format, con importantes comandos para el diseo grfico.
El men Debug, el cual nos ofrece forma de capturar errores de programacin.
Visual Basic 5.0. Curso Bsico 3
La Barra de Herramientas
Justo debajo de la barra de Mens (ver figura 1.0), ofrece una forma ms rpida de
invocar los comandos mas utilizados del men de Visual Basic. A lo largo del curso
describiremos el uso de muchos de ellos. Es posible agregar mas elementos a la barra de
herramientas desde el comando ToolBars del men View.
La Caja de Herramientas
Situada en el centro de la figura 1.0, la caja de herramientas
contiene parte de los controles que pueden ser utilizados para
el desarrollo de la interfaz de los programas creados en Visual
Basic. Esta caja de herramientas puede ser ampliada, esto es,
se pueden agregar mas controles visuales si estos se adicionan
desde el men Project, en el comando Componets, el cual
mostrara una caja de dialogo en donde se ofrecen todos los
posibles controles a ser adicionados desde las libreras que
vienen con el Visual Basic 5.0.
Cualquier programa que desarrollemos en Visual Basic esta formado por varios
archivos los cuales almacenan las diferentes partes del proyecto, entre los cuales
observamos, formularios, mdulos de cdigos, y controles especiales importados para ser
usados en nuestra aplicacin. Todos estos elementos aparecen y pueden ser manejados
desde la ventana del proyecto a travs de un sencillo rbol de proyecto
Visual Basic 5.0. Curso Bsico 4
Formulario Principal
Es donde se construye y personaliza la ventana que vern los usuarios cuando utilicen las
aplicaciones que desarrollamos en Visual Basic, en otras palabras, es nuestra zona de
trabajo. Sobre los formularios distribuimos diferentes tipos de controles los cuales sirven
para crear la interfaz deseada. Muchas aplicaciones requieren mas de una ventana o
formulario para completar su interfaz, por lo que es posible adems del formulario
principal, agregar otros formularios lo cual resulta sencillo desde el men Project.
Los Formularios
Caractersticas Generales
Visual Basic permite crear aplicaciones con todos los recursos grficos necesarios a fin de
obtener un programa con un completo interfaz - Windows.
Para logra este fin, Visual Basic ofrece una serie de objetos grficos los cuales pueden ser
manejados por el programador.
Todos los objetos que forman parte de las herramientas presentan tres importantes
caractersticas:
Tienen Propiedades que definen y manejan su uso.
Responden a Eventos generados por los usuarios.
Utilizan diversos Mtodos que sirven para realizar actividades especiales.
De forma muy general podemos clasificar a los objetos en dos grandes grupos:
Los Formularios. Que son las ventanas de nuestro programa, la palabra formulario
viene de Form que es el termino que utiliza Visual Basic para referirse a una ventana
personlizable.
Los Controles. Que constituyen el resto de los recursos grficos, los cuales requieren
ser instalados en el interior de un formulario.
Es claro entonces que el formulario es nuestra zona de trabajo, por lo cual es el primer
objeto grfico que estudiaremos en este curso.
Por ser este, un curso bsico de Visual Basic, no se estudiaran todos los controles, ni
todas las propiedades de los objetos. Durante el curso solo veremos los objetos ms
comunes y sus ms importantes propiedades y eventos.
Boton de cerrar
la ventana
Boton de Maximizar
Area de Trabajo
El cuadro del men de control: proporciona ordenes para: restaurar su tamao, mover,
maximizar y minimizar la ventana as como cerrar la misma.
Barra de titulo: Contiene el nombre de la ventana, esto es, el titulo
Botones de Maximizar y Minimizar la ventana: Como lo indican sus nombres, sirven
para modificar el tamao de la ventana.
Botn para cerrar: Ofrece una forma rpida para cerrar la ventana.
Area de trabajo: Es la parte de la ventana en la que el programador coloca los
controles que forman parte del programa.
Propiedades de un Formulario.
El tamao, la posicin, el color o el titulo del formulario son algunas de las caractersticas
que Visual Basic llama Propiedades. Las propiedades del cualquier objeto grfico de
Visual pueden ser modificadas por medio de la ventana de propiedades. En la figura 3.0 se
muestro la ventana de propiedades haciendo referencia al objeto form1 (formulario).
Con el foco en el objeto deseado, basta con pulsar la tecla F4, o seleccionar el comando
Properties Windows desde el men Ver de la barra de men para invocar a la ventana de
propiedades. La ventana de propiedades presenta en la parte superior la barra de titulo, en la
cual se lee Properties y el nombre del objeto al que pertenecen las propiedades. En la
figura 3.0 observamos que la ventana Properties hace referencia al nico objeto grfico que
hemos analizado hasta el momento, el formulario Form1. Debajo de esto se encuentran las
propiedades del objeto. Todas las propiedades de un objeto tienen valores por defecto,
incluyendo el nombre del objeto grfico. Para modificar alguna propiedad es suficiente
desplazarnos a lo largo de la ventana hasta la propiedad deseada. Estas pueden mostrarse en
orden alfabetico (Alfabetic), o por categorias (Categorized). Segn sea la propiedad, para
modificarla deberemos introducir una cadena de caracteres, o elegir entre una opcin de
una lista o seleccionar desde una ventana de dialogo.
4. Al correr nuestra aplicacin, tendr ante usted una ventana de Windows, la cual puede
mover, cambiar de tamao y otras propiedades bsicas de una ventana-windows, pero
por sobre todo observe que el titulo de la ventana, es ahora el que usted coloc en la
ventana de propiedades. Es importante entender que en este momento estamos en modo
de Ejecucin, con lo cual no podemos actuar obre nuestro programa, para continuar
nuestro estudio debemos regresar a modo de programacin o modo de Diseo, para esto
es suficiente con detener la corrida del programa, use el comando End del men Run o
utilice el botn respectivo de la barra de Herramientas:
ForeColor (color del primer plano): Establece el color de primer plano utilizado para
mostrar texto y grficos en un objeto.
1 Fixed Single. El formulario puede incluir un cuadro del men de control, una
barra de ttulo, un botn Maximizar y un botn Minimizar. Slo puede
cambiar de tamao utilizando los botones Maximizar y minimizar.
2 (Predeterminado) Sizable. Puede cambiar de tamao utilizando cualquiera de
los elementos opcionales de borde indicados en la configuracin 1.
3 Fixed Dialog. Puede incluir un cuadro del men de control y una barra de
ttulo, pero no los botones Maximizar ni Minimizar. No cambia de tamao.
4 Fixed Tool Window.. Muestra el botn Cerrar, y el texto de la barra de ttulo
aparece con un tamao reducido.
5 Sizable ToolWindow. Muestra el botn Cerrar, y el texto de la barra de ttulo
aparece con un tamao de fuente reducido.
ControlBox (Cuadro del men de control). Devuelve o establece un valor que indica si
se muestra el cuadro del men de control en un formulario en tiempo de ejecucin. En
cualquier aplicacin Microsoft Windows, el cuadro del men de control se encuentra en
la esquina superior izquierda de la ventana, en la barra de titulo. Al hacer clic sobre este
cuadro se muestra un pequeo men con las tareas ms comunes a realizar sobre una
ventana como son: moverla, minimizarla, maximizarla y cerrarla. Esta propiedad solo
tiene dos posible opciones:
Valor Descripcin
True (Predeterminado) Muestra el cuadro del men de control.
False Suprime el cuadro del men de control.
Figura 5.0
MousePointer (Puntero del Ratn): Establece un valor que indica el tipo de puntero del
ratn que aparece sobre un rea determinada de un objeto en tiempo de ejecucin.
Valor Descripcin
0 (Predeterminado) Forma que determine el objeto.
1 Flecha.
2 Cruz (puntero en forma de cruz).
3 Forma de I.
4 Icono (pequeo cuadrado dentro de otro cuadrado).
5 Tamao (flecha de cuatro puntas: norte, sur, este y oeste).
6 Tamao NE SO (flecha doble apuntando al nordeste y al sudoeste).
7 Tamao N S (flecha doble apuntando al norte y al sur).
8 Tamao NO SE (flecha doble apuntando al noroeste y al sudeste).
9 Tamao O E (flecha doble apuntando al oeste y al este).
10 Flecha hacia arriba.
11 Reloj de arena (espera).
12 No soltar.
13 Flecha y reloj de arena.
14 Flecha e interrogacin.
99 Se utiliza el icono personal colocado en la propiedad MouseIcon
Visible: Devuelve o establece un valor que indica si un objeto es visible o est oculto.
Los valores son:
Valor Descripcin
True (Predeterminado) El objeto es visible.
False El objeto est oculto.
Existen otras propiedades del formulario, tal como puede observarlo en la ventana de
propiedades y como puede informarse, si utiliza la ayuda en lnea que ofrece Visual Basic.
Basta con que se ubique sobre cualquier propiedad y presione la tecla F1 y aparecer en u
pantalla una detallada explicacin sobre el tema.
Analicemos a continuacin los eventos a los que puede responder un formulario en tiempo
de ejecucin, a fin de hacer ms interactivas las ventanas de nuestras aplicaciones.
Eventos en un Formulario.
La esencia de un programa en Windows es hacer a los programas interactivos con las
acciones de los usuarios. Los Objetos de Visual Basic pueden reconocer muchos sucesos
diferentes. Por ejemplo, sin un usuario hace un clic en una zona de la pantalla, el
programador podra querer que se presente un mensaje; si el usuario hace clic sobre un
botn de ordenes, querr que se lleve a cabo determinada accin. Para llevar a cabo estas
acciones se escriben los programas en el lenguaje estructurado de Visual Basic, el cual tiene
una enorme similitud con Microsoft Quick Basic, para los conocedores. Si bien los objetos
de Visual Basic pueden reconocer muchos sucesos diferentes, no se tomara ninguna accin
a menos que se escriba un cdigo que les indique lo que han de hacer cuando ocurran tales
sucesos. Por tanto para cada suceso del que se requiera una respuesta por parte de un
objeto, hay que escribir un procedimiento que indique a Visual Basic lo que tiene que hacer,
estos procedimientos no son mas que las lneas de cdigo que ponen en marcha a un
programa Orientado a Eventos como lo son las aplicaciones desarrolladas para correr bajo
Windows. A fin de escribir estos cdigos haga doble clic en cualquier zona dentro del
formulario y aparecer en pantalla la ventana de cdigo de la figura 6.0.
Visual Basic 5.0. Curso Bsico 13
End Sub
Click (Clic): Ocurre cuando el usuario presiona y libera el botn del mouse sobre un
objeto. Para un objeto Form, este evento ocurre cuando el usuario hace clic en un rea
en blanco del formulario.
Visual Basic 5.0. Curso Bsico 14
DblClick (Doble Clic): Se produce cuando un usuario presiona y suelta un botn del
mouse (ratn) dos veces sobre un control o rea en blanco de un formulario.
GotFocus (Recibir el foco): Ocurre cuando un objeto recibe el enfoque, bien mediante
una accin de usuario, bien mediante una tabulacin o al hacer clic en el objeto. Un
objeto puede recibir el enfoque slo si sus propiedades Enabled y Visible estn
establecidas a True.
Load (Cargar un Formulario): Ocurre cuando se carga un formulario. Para un
formulario principal, ocurre cuando una aplicacin se inicia.
Unload (Descargar un formulario): Este evento se desencadena debido a que un usuario
cierra el formulario utilizando el cuadro del men de control, o una instruccin Unload.
1. Para iniciar un nuevo proyecto, arranque Visual Basic desde el escritorio de trabajo de
Windows. Si ya se encontraba dentro de Visual Basic, entonces active el comando New
Project del men File
2. Haga doble clic sobre el formulario de tal forma que aparezca ante usted la ventana de
cdigo (ver figura 6.0).
3. En el interior de la plantilla para el evento Load vamos a agregar cdigo a fin de variar
el titulo de la ventana cuando el programa arranque. El procedimiento para el evento
Load debe quedar as:
Esta ventana sirve para guardar el formulario. Ubicamos el directorio donde queremos
guardar nuestra aplicacin y le damos un nombre al archivo que ha de contener el
formulario. Visual Basic recomienda como nombre de este archivo el mismo nombre
del formulario Form1, sin embargo esto no es obligatorio y podemos dar a este archivo
el nombre que deseemos, la extensin ser frm. En este caso dejaremos el nombre de
form1.frm y pulsaremos el botn Guardar para que almacene el archivo del formulario.
9. Luego de esto, la ventana de guardar archivo aparece una vez mas a fin de solicitar se
da la direccin y el nombre del archivo de proyecto, este es un archivo de gestin
interna de Visual Basic para determinar la ubicacin de los diversos archivos que
forman parte del programa. En nuestro caso, el proyecto esta constituido por un solo
archivo .frm, pues solo tenemos un formulario; en proyectos de mayor tamao pueden
tenerse mas de una ventana o formulario por lo tanto se tendrn varios archivos, todos
los cuales quedaran registrados en el archivo del proyecto. Los archivos registrados
para el proyecto son los mismos que aparecen en la ventana del proyecto de nuestra
aplicacin. Este archivo del proyecto es de extensin . vbp (Visual Basic Proyect), por
defecto aparece en la ventana de guardar archivo en nombre de proyect1.vbp, sin
embargo, es recomendable dar un nombre distinto para guardar nuestro proyecto.
Guarde este ejemplo con el nombre de tarea1.vbp, en su directorio de trabajo.
Visual Basic 5.0. Curso Bsico 16
Los Controles
En este capitulo estudiaremos los controles ms comunes utilizados en los programas que
operan bajo Windows, muchos de estos controles bsicos estn disponibles para ser
llevados a los formularios desde la caja de herramientas.
La Caja de Herramientas.
La caja de herramientas por lo regular esta disponible en la pantalla de Visual Basic. En la
figura 8.0 puede verse una caja de herramientas que contiene los controles ms comunes
usados por Visual Basic. Posiblemente la caja de herramientas que aparece en su aplicacin
contiene mas controles. De todos modos es posible agregar o retirar control de la caja de
herramientas segn sean las necesidades del programador. Para esto, de una vuelta por el
comando Componets del men Project.
Estudiaremos a continuacin tres (3) de los controles ms comunes utilizados por Visual
Basic, y la forma de manejarlos. Estos controles son:
La Etiqueta
La Caja de Texto
El Botn de rdenes
Visual Basic 5.0. Curso Bsico 17
La Etiqueta (Label)
Un control Label es un control grfico que puede utilizar para mostrar texto que el usuario
no podr cambiar directamente.
La etiqueta o Label esta disponible en la barra de herramienta bajo el smbolo siguiente:
Vamos a ver de que manera se agrega un control en un formulario. Para esto utilizaremos
al control Label desde la barra de herramientas.
La mayora de los mtodos que se emplean en la caja de herramienta, son similares a los
empleados en un programa de dibujo como Microsoft Paint ( Paintbrush).
2. A continuacin se lleva el puntero del ratn hasta el formulario. Ntese que el puntero
del ratn ha cambiado de una flecha a una cruz filiar. Estamos listos para dibujar el
control sobre el rea de trabajo del formulario.
3. Se mantiene pulsado el botn del ratn y se arrastra este para crear el objeto tal como se
ve en la figura 10.0
Una de las esquinas del control viene determinada por el punto donde se pulso el ratn,
y la otra, por el punto donde suelte el ratn, tal como se observa en el rectngulo que se
va dibujando en el formulario.
Finalmente al soltar el botn del ratn queda el control dibujado sobre el formulario.
Visual Basic 5.0. Curso Bsico 18
Figura 10.0
Observe que dentro de la etiqueta se lee la cadena label1, esta es la leyenda de la etiqueta la
cual puede modificarse a travs de la propiedad caption. La propiedad Caption, es la
propiedad ms importante de una etiqueta, pues esta propiedad porta la leyenda que se
mostrara en la ventana por medio de la etiqueta. Por defecto Visual Basic asigna al caption
el nombre predeterminado del control el cual consiste en el nombre del control ms un
numero consecutivo segn la cantidad de controles del mismo tipo que se carguen a la
ventana (label1, label2, etc...).
Adems de las propiedades comunes como name, enbled, visible, las ms importantes del
control Caja de Texto son:
La propiedad BackColor, acta en la caja de texto igual que en el formulario y en la
etiqueta: Cambia el color del fondo del control. Por cierto para cambiar el color de las
letras se usa su homologa propiedad ForeColor.
En la caja de texto se usa tambin la propiedad MousePointer, la cual tiene los mismos
valores que los que usa el formulario.
Otra propiedad que funciona en la caja de texto de la misma forma que en la etiqueta es
la propiedad Alignment, que sirve para justificar a la derecha izquierda, o en el centro
el texto que se muestra en el TextBox.
La propiedad BorderStyle (Estilo del Borde): Es idntica a la de la etiqueta.
Text (texto): Es la propiedad ms importante de una caja de texto. Devuelve o establece
el texto contenido en el rea de edicin. Al crear la caja de texto el valor text por
omisin es el valor name por omisin (text1, text2, etc.). Por supuesto este valor puede
ser alterado tanto en tiempo de diseo como en tiempo de corrida o ejecucin. Las cajas
de texto no interpretan nunca que el usuario introduce nmeros; esto significa que para
obtener informacin numrica de un programa, Visual Basic requiere transformar la
cadena de dgitos introducida en el textbox en un numero empleando funciones de
conversin de cadenas a nmeros y viceversa como explicaremos mas adelante.
En un formulario de Visual Basic introduzca una caja de texto y coloque en blanco su
propiedad text. Corra el programa e introduzca informacin en la caja de texto a su
gusto. Vera que es muy sencillo. En la siguiente figura puede verse un ejemplo de esto.
Visual Basic 5.0. Curso Bsico 21
MultiLine (lnea mltiple): Establece un valor que indica si un control TextBox acepta y
muestra mltiples lneas de texto.
Valor Descripcin
True Permite mltiples lneas de texto.
False (Predeterminado) Restringe los datos a una sola lnea.
MaxLength (Longitud Maxima): Establece un valor que indica si existe un nmero
mximo de caracteres a introducir en un control TextBox y, en caso afirmativo,
especifica dicho valor mximo. El valor predeterminado de la propiedad MaxLength es
0, que indica la ausencia de un mximo distinto del que imponga la memoria del
sistema del usuario para los controles TextBox de una lnea, o de aproximadamente 32
KB para los controles TextBox de mltiples lneas. Un valor mayor que 0 indica el
nmero mximo de caracteres.
Son 33 las propiedades de un commandButton. Entre ellas encontramos al igual que en los
anteriores objetos estudiados en esta guia, las propiedades: name, enabled, visible,
Backcolor y MousePointer. Una de sus propiedades mas utilizadas es la propiedad
Caption la cual se utiliza para dar titulo al botn de manera que indique al usuario cual es
su uso dentro de la ventana.
En la figura siguiente puede observarse un CommanButton cuya propiedad Caption se ha
cambiado por la cadena: Primer Botn:
Borrando un Control:
Visual Basic 5.0. Curso Bsico 22
Borrar un control en tiempo de diseo, una vez que lo hemos colocado en un formulario,
resulta algo muy sencillo, simplemente seleccione el control y luego pulse la tecla del o
suprimir, tambin puede hacerlo utilizando el comando Delete del men Editin.
Las Etiquetas, Las Cajas de Texto y Los Botones de Comando, responden igualmente a
eventos como click, dobleClic, Gotfocus, LostFocus y otros. La mejor manera de
entenderlos es programando, as que, acompenos en un programa de ejemplo que usted
mismo construir. En caso de dificultades solicite la ayuda de su profesor o revise el disco
que acompaa a este material donde encontrara este programa en el directorio cvb01.
2. Cambiemos los valores predefinidos de las propiedades de los controles segn se indica
a continuacin:
Form1:
Caption: Programa Ejemplo cvb01
Label1 :
Alignment: 2-Center
Border Style: 1-Fixed Single
Visual Basic 5.0. Curso Bsico 23
3. Vamos a programar los eventos de los botones. Para tener acceso a la ventana de cdigo
de un control se procede de igual forma que con los formularios, simplemente se hace
doble clic sobre el control. A continuacin colocaremos el siguiente cdigo:
Command1:
Private Sub Command1_Click()
Label2.Caption = "Bienvenido " + Text1.Text
End Sub
Command2:
Private Sub Command2_Click()
End
End Sub
El cdigo asignado al evento clic del Command1, escribe en la etiqueta label2 el mensaje
Bienvenido, mas el contenido que el usuario introduzca en la caja de texto; contenido que
puede ser siempre obtenido de la propiedad text de la caja de texto. Ntese que el mensaje
se coloca entre comillas dobles, mientras que no es as con la variable text1.text.
Por otro lado, en el evento clic del botn de comando Command2 se coloc la instruccin
End, la cual finaliza el programa. Hasta ahora habamos estado deteniendo los programas
desde el men o la barra de herramientas, sin embargo es hora de que nuestros programas
cuente con una forma clara e independiente de finalizar.
4. El siguiente paso en nuestro ejemplo es, por supuesto, correr la aplicacin y verificar
que funciona adecuadamente. Pues bien, adelante!.
5. No se olvide de guardar la aplicacin realizada si desea conservarla. Esto es
aconsejable hacerlo antes de correr el programa
En la medida que avancemos en el curso ser posible estudiar otros controles, por los
momentos es necesario ahondar en las instrucciones y funciones estndar de Visual Basic
que nos permitirn el desarrollo de un programa mas completo.
Visual Basic 5.0. Curso Bsico 24
Fundamentos de Programacin
El lenguaje Visual Basic es, en muchos aspectos, muy parecido a sus predecesores
QuickBasic, Qbasic y del Basic profesional de Microsoft. Con el poco conocimiento que
pueda usted tener acerca de estos u otros lenguajes de programacin le resultara muy
sencillo involucrarse rpidamente con los fundamentos de programacin del Visual Basic.
Los Comentarios
Son texto que agrega un programador a un programa que explica cmo funciona el cdigo.
En Visual Basic, una lnea de comentarios comienza generalmente con un apstrofe ('), o
bien se puede emplear la palabra reservada Rem seguida de un espacio.
Por ejemplo
MiCad2.caption = "Adis" ' Se asigna "Adis" como mensaje en la etiqueta MiCad2
Variables
Una variable es una posicin de almacenamiento con nombre que puede contener datos que
se puedan modificar durante la ejecucin del programa. Cada variable tiene un nombre que
la identifica de manera nica dentro de su nivel de alcance. Los nombres de variable deben
cumplir las siguientes caractersticas:
Deben comenzar con un carcter alfabtico.
Deben ser nicos dentro del mismo alcance.
No deben tener ms de 255 caracteres de longitud.
No deben usarse palabras reservadas de Visual Basic.
En Visual Basic no es necesario declarar una variable antes de usarla. Sin embargo, el uso
de las declaraciones puede resultar conveniente a fin de detectar errores en el cdigo,
evitando as confundir a una nueva variable con una mal escrita. A fin de evitar este tipo de
errores es suficiente dirigirse al men Tools, en donde encontraremos al comando Options,
elija el dialogo Editor y seleccione la opcin Require variable declaratin a continuacin
toda variable a usar debe ser declarada explcitamente.
Visual Basic 5.0. Curso Bsico 25
Las variables locales son las variables que son reconocidas en el procedimiento en el que
esta definida, fuera de este procedimiento la variable no es conocida. Para declarar una
variable local en un procedimiento, utilice la sentencia Dim. Dim declara variables y asigna
espacio de almacenamiento.
Por ejemplo, la instruccin siguiente declara una variable como Integer (enteros).
Entre los tipos de datos que maneja Visual Basic en sus variables encontramos.
Tipo de datos Tamao Rango
Integer(entero) 2 bytes -32.768 a 32.767.
Long(entero largo) 4 bytes -2.147.483.648 a 2.147.483.647.
Single(real de simple precisin) 4 bytes 1,401298E-45 a 3,402823E38
4,94065645841247E-324 a
Double (real de doble precisin) 8 bytes
1,79769313486232E308
Desde 1 hasta aproximadamente
String(cadena longitud fija) longitud de la cadena
65.400.
Cualquier valor numrico en el rango
Variant 16 bytes
de doble.
Boolean 2 bytes True o False.
La expresin [as tipo] entre corchetes en la sintaxis de Dim, indica que la declaracin del
tipo es opcional. Cuando el tipo no es indicado en una declaracin, la variable es del tipo
Variant por defecto. Lo mismo ocurre cuando se trabaja con variables no declaradas.
Ejemplo:
Dim MiValor variable sin tipo expreso, es automticamente variant.
Por supuesto las variables tipo variant tambien se pueden declara en foma expresa:
Operadores
Podemos dividirlos en:
Operadores aritmticos: Utilizados para ejecutar clculos matemticos.
Operadores de comparacin: Utilizados para efectuar comparaciones lgicas.
Operadores lgicos: Usados para efectuar operaciones lgicas.
Cambiemos las propiedades caption de las tres primeras etiquetas por Primer Dato,
Segundo Dato y Tercer Dato, respectivamente. Las tres cajas de texto deben quedar
con la propiedad text en blanco y en la ultima etiqueta, esto es en label4, dejamos vaca la
propiedad caption. La propiedad caption del formulario ser: Programa Ejemplo cvb02
(Promedio) .
En los botones podemos realizar los siguientes cambios en las propiedades, tanto en el
caption como en el name, hasta ahora siempre habamos aceptado el nombre (name) por
defecto que daba Visual Basic, intentemos dar esta vez nuestros propios nombres.
Command1:
Caption: Limpiar
name: botonLimpiar
Command2:
Caption: Promedio
name: botonCalcular
Command3:
Caption: Salir
name: botonSalir
Debemos entender, que despus de estos cambios, no solo cambian las etiquetas visuales
(Caption) de los botones, sino que los nombres internos de los botones ya no son
command1, command2 y command3; ahora estos se llaman: botonLimpiar, botonCalcular,
botonSalir.
Tambin incluiremos cdigo en los eventos clic de nuestros botones:
'2 Leemos los datos desde las cajas de texto. Debemos recordar que las cajas de texto no
'ven sus contenidos como numricos sino como textos, por lo cual es necesario
' utilzar una funcion de libreria que transforme datos de cadena (string) a un numero.
'La funcion es Val
'________________________________________________
dato1 = Val(Text1.Text)
dato2 = Val(Text2.Text)
dato3 = Val(Text3.Text)
End Sub
'*******************************************************
'Limpiamos tambin la etiqueta label4 que es la etiqueta
'donde se muestra el resultado del calculo
'********************************************************
Label4.Caption = ""
End Sub
Visual Basic 5.0. Curso Bsico 29
Al correr el programa e introducir nmeros, usted debe poder observar algo parecido a la
figura numero 12.0:
Al haber declarado a las variables como single, el programa puede manejar nmeros que no
son enteros como los que se ven en la corrida ejemplo que muestra la figura 12.0, en el
segundo dato y en el resultado mostrado en la etiqueta.
El ejemplo cvb02 es un programa sencillo que opera directamente sobre tres datos, existen
operaciones y problemas mas complicados los cuales requieren toma de decisiones,
estructuras cclicas y un mayor potencial en funciones y operadores.
A continuacin estudiaremos las estructuras con las que cuneta Visual Basic para los
cdigos de toma de decisiones
Visual Basic 5.0. Curso Bsico 30
If ...then...else:
If condicin Then
(Conjunto de instrucciones 1)
[Else
End If
Operadores de comparacin
Operador Smbolo Ejemplo
Igual = If a = b then
Diferente <> If X <> 5 then
Mayor > If X >Y then
Menor < If prom < 0 then
Mayor o Igual >= If Z >= 10 then
Menor o Igual <= If dato1 <= 7.3 then
Estudiemos el ejemplo cvb03 a fin de poner en practica la estructura if.. then ..else.
Visual Basic 5.0. Curso Bsico 31
Claro esta, para eso tenemos que hacer los siguientes ajustes
Al formulario de nuestro nuevo proyecto le ponemos como caption: Programa
Ejemplo cvb03 - Uso de If . Tal como se ve en la figura 13.0
La primera etiqueta (la que se encuentra arriba de la caja de texto) se le da un mensaje
indicativo como el que se ve en la figura 13: Ingrese un numero, o algo similar.
A la caja de texto debe quedarle la propiedad text en blanco, lo mismo debe ocurrir con
la propiedad caption de la segunda etiqueta.
Para que el programa realice lo que deseamos de l, debemos incluir el respectivo
cdigo, el cual vamos a colocar en el evento Change de la caja de texto. El evento
Change se activa cada vez que el usuario cambia el contenido o texto del control
textbox. El cdigo es el siguiente:
End Sub
Ntese el uso de la funcin IsNumeric en la ultima parte del cdigo a fin de determinar si lo que
hay en la caja de texto es o no un numero.
IsNumeric
Indica si una expresin puede o no evaluarse como nmero.
Sintaxis
IsNumeric(expresin)
El argumento con nombre expresin puede ser cualquier expresin numrica o expresin de
cadena.
Con razn si usted introduce una expresin no numrica en la caja de texto no recibe
ninguna respuesta por parte del programa.
Observe en la figura 13.0 que el formulario no tiene botn para maximizar, ni para
minimizar, esto se logra colocando en False ambas propiedades del formulario desde la
ventana de propiedades. Por cierto para cerrar el programa solo se cuenta con el botn de
cerrar la ventana en el formulario.
Estructuras Ciclicas
Ciclo For
Repite un grupo de instrucciones un nmero especificado de veces.
Sintaxis
For contador = principio To fin [Step incremento]
[Instrucciones]
[Exit For]
[Instrucciones]
Next [contador]
Visual Basic 5.0. Curso Bsico 33
Parte Descripcin
contador Variable numrica que se usa como contador de bucle.
principio Valor inicial del contador.
fin Valor final del contador.
incremento Cantidad en la que cambia el contador cada vez a travs del bucle. Si
no se especifica, el valor predeterminado de incremento es uno.
instrucciones Una o ms instrucciones entre For y Next que se ejecutan un nmero
especificado de veces.
El argumento incremento puede ser positivo o negativo. El valor del argumento incremento
determina la manera en que se procesa el bucle, como se muestra a continuacin:
Una vez que se inicia el bucle y se han ejecutado todas las instrucciones en el bucle,
incremento se suma a contador. En este punto, las instrucciones en el bucle se pueden
ejecutar de nuevo (basados en la misma prueba que caus que el bucle se ejecutara
inicialmente) o se sale del bucle y la ejecucin contina con la instruccin que sigue a la
instruccin
Cambiar el valor de contador mientras se est dentro de un bucle, puede hacer difcil su
lectura y depuracin, adems de generar serios errores .
La instruccin Exit For slo se puede usar dentro de una estructura de control For...Next,
para proporcionar una manera alternativa de salir. Se pueden colocar en el bucle cualquier
nmero de instrucciones Exit For. La instruccin Exit For, el cual se usa a menudo en la
evaluacin de alguna condicin (por ejemplo, If...Then), transfiere el control a la
instruccin que sigue inmediatamente a la instruccin Next, a fin de abandonar el ciclo.
Se pueden anidar bucles For...Next, colocando un bucle For...Next dentro de otro. Para ello,
proporcione a cada bucle un nombre de variable nico como su contador. La siguiente
construccin es correcta:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
End If
End Sub
Label2.Caption = ""
'****************************************************
End Sub
Visual Basic 5.0. Curso Bsico 36
MsgBox
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario elija un botn y devuelve el
valor correspondiente al botn elegido por el usuario.
Sintaxis
MsgBox(mensaje[, botones][, ttulo]
El primer grupo de valores (05) describe el nmero y el tipo de los botones mostrados en el cuadro de
dilogo; el segundo grupo (16, 32, 48, 64) describe el estilo del icono; el tercer grupo (0, 256, 512)
determina el botn predeterminado y el cuarto grupo (0, 4096) determina la modalidad del cuadro de
mensaje. Cuando se suman nmeros para obtener el valor final del argumento botones, se utiliza
solamente un nmero para cada grupo
Nota Estas constantes son especificadas por Visual Basic. Por lo tanto, el nombre de las mismas
puede ser utilizado en cualquier lugar del cdigo en vez de su valor.
Ciclo Do-Loop-While
Repite un bloque de instrucciones mientras una condicin es True o hasta que una
condicin se convierta en True.
Sintaxis
Do While condicin
(Instrucciones)
[Exit Do]
(Instrucciones)
Loop
Do
(Instrucciones)
[Exit Do]
(Instrucciones)
Loop While condicion
Parte Descripcin
condicin Numrico o expresin de cadena que es True o False. Si la condicin
es Null, condicin se considera False.
instrucciones Una o ms instrucciones que se repiten mientras o hasta que
condicin sea True.
label1 label3
text1
label4
label2 command1
command2
Para que el formulario tenga esta apariencia debemos cambiar algunas de las propiedades de los controles
segn esta tabla:
Option Explicit 'se exige que las variables usadas a nivel de los procedimientos y de todo
' el formulario deben ser declaradas
' las variables aqu declaradas son reconocidas en todas las rutinas del formulario
Dim aleatorio As Integer 'Para almacenar l numero aleatorio
Dim intento As Integer ' Para contar el numero de intentos
Sub Form_Click()
' Si se hace clic en la caja de texto sin inicilizar el juego en el botn
' Al estar desabilitada la caja de texto todo evento (click, por ejemplo)
' dirigido a la caja de texto lo recibe el formulario que la contiene
' con lo cual le envimos este mensaje.
MsgBox "Debe pulsar el botn Nuevo Intento para iniciar el juego", 0 + 48, "Para Jugar"
End Sub
Sub Command2_Click()
End
End Sub
Sub Command1_Click()
*****************************************************
'Esta rutina inicializa la ventana en cada nuevo intento genera un numero aleatorio usando
'la funcin randimize rnd
'***************************************************
Randomize ' se inicializa el generador de nmeros aleatorios usando del reloj del comp.
'*************************************************************************
' Validar y recibir el numero dado. Solo se acepta el nmero si el usuario pulsa la
' tecla enter (KeyAscii = 13). El contenido dado por el usuario en text1 debe ser numrico
'************************************************************************
Else
MsgBox "Debe introducir un numero entero menor que 100", 0 + 48, "Para Jugar"
Text1.Text = ""
End If
End If
End Sub
Visual Basic 5.0. Curso Bsico 41
Rnd
Devuelve un nmero aleatorio.
Sintaxis
Rnd[(nmero)]
El argumento con nombre nmero puede ser cualquier expresin numrica vlida.
La funcin Rnd devuelve un valor menor que 1 pero mayor o igual a 0.
El valor de nmero determina la forma en que Rnd genera un nmero aleatorio.
Para cualquier semilla inicial se genera la misma secuencia de nmeros. Esto es debido a que cada
llamada sucesiva a la funcin Rnd usar el nmero anterior como semilla para el siguiente nmero de
la secuencia.
Se utiliza la instruccin Randomize sin argumento para proveer una semilla aleatoria que se base en el
cronmetro del sistema para inicializar el generador de nmeros aleatorios antes de llamar a Rnd.
Para producir enteros aleatorios en un intervalo dado se utiliza esta frmula:
Aqu, lmitesup es el nmero mayor del intervalo y lmiteinf es el nmero menor del intervalo.
Para repetir secuencias de nmeros aleatorios, se puede llamar a Rnd con un parmetro negativo
antes de utilizar Randomize con un parmetro numrico. Al utilizar Randomize con el mismo valor
de nmero no se repite la secuencia previa.
Nivel Proyecto
Variables declaradas como Publicas en modulos de codigos
r f o o f f jjjjjf
endsub
iu iu e oe o eo e oe o e oee
ee e e ee e e e eee e e e
ee e e ee e
ee e e ee e ee e ee e e eee ee
e
efde wre g
sg s g arga
f
Nivel Procedimientos
f Las variables son locales y
declaradas en el procedimento
con Dim
3. Para que un procedimiento o una variable pueda ser usada o invocada por cualquier
formulario, debe ser declarada como publica en un modulo de cdigo independiente,
para crear un modulo de cdigo debemos agregarlo a nuestro proyecto usando el
comando Add Module del men Project o el respectivo botn de la caja de
herramientas:
Visual Basic, como todo lenguaje de la familia Basic, cuenta con dos tipos de Subrutinas:
Las Funciones.
Los Procedimientos.
Las Funciones
Existen dos grandes tipos de funciones estas son:
1. Las funciones de Librera de Visual Basic
2. Las funciones definidas por el Programador
Adems de la que hemos visto hasta ahora, revisaremos a continuacin algunas de las mas
importantes funciones de librera que vienen con Visual Basic:
Visual Basic 5.0. Curso Bsico 44
Cos( )
Devuelve el coseno de un ngulo.
Sintaxis
Cos(nmero)
El argumento con nombre nmero puede ser cualquier expresin numrica vlida que
exprese un ngulo en radianes.
Ejemplo
MiAngulo = 1.3 ' Define un ngulo en radianes.
MiSecante = 1 / Cos(MiAngulo) ' Calcula la secante.
Exp( )
Devuelve el nmero e (que es la base de los logaritmos naturales) elevado a una potencia.
Sintaxis
Exp(nmero)
El argumento con nombre nmero puede ser cualquier expresin numrica vlida. Si el
valor del nmero es mayor que 709,782712893, ocurre un error. La constante e es
aproximadamente 2.718282.
Int ( )
Devuelve la porcin entera de un nmero.
Sintaxis
Int(nmero)
El argumento nmero puede ser cualquier expresin numrica. Int elimina la fraccin de
un nmero y devuelven el valor entero resultante.
Ejemplo
MiNumero = Int(99.8) ' Devuelve 99.
Visual Basic 5.0. Curso Bsico 45
Now ( )
Devuelve la fecha y la hora actuales de acuerdo a la configuracin de la fecha y la hora del
sistema de su PC.
Sintaxis
Now
Ejemplo
Label1.Caption = Now Asigna la fecha y hora actual del sistema a la etiqueta Label1.
QBColor ( )
Devuelve el cdigo de color RGB correspondiente a un nmero de color.
Sintaxis
QBColor(color)
Sgn ( )
Devuelve un entero indicando el signo de un nmero.
Sintaxis
Sgn(nmero)
Sin ( )
Devuelve el seno de un ngulo.
Sintaxis
Sin(nmero)
El argumento con nombre nmero puede ser cualquier expresin numrica vlida que
exprese un ngulo en radianes.
Sqr ( )
Devuelve la raz cuadrada de un nmero.
Sintaxis
Sqr(nmero)
El argumento con nombre nmero puede ser cualquier expresin numrica vlida mayor o
igual que 0.
Ejemplo
MiSqr = Sqr(4) ' Devuelve 2.
MiSqr = Sqr(-4) ' Genera un error de ejecucin. Esto debe evitarse
Tan ( )
Devuelve la tangente de un ngulo.
Sintaxis
Tan(nmero)
El argumento con nombre nmero puede ser cualquier expresin numrica vlida que
expresa un ngulo en radianes.
Atn ( )
Sintaxis
Atn(nmero)
El argumento con nombre nmero puede ser cualquier expresin numrica vlida. Atn es la
funcin trigonomtrica inversa de Tan. El intervalo del resultado es -pi/2 a pi/2 radianes.
Adems de las funciones aportadas por Visual Basic, el programador puede crear sus
propias funciones:
Visual Basic 5.0. Curso Bsico 47
If resto = 0 Then
' la funcin devuelve True si numero es divisible por divisor
Divisible = True
Else
' la funcin devuelve False si numero no es divisible por divisor
Divisible = False
End If
End Function
Los parmetros van dentro del parntesis que esta al lado del nombre; indicando los
tipos de datos que han de manejar:
Private Function Divisible(numero As Integer, divisor As Integer) As Boolean
A la funcin tambin se le asigna un tipo, como si fuera una variable. Este tipo se
refiere al tipo de dato que ha de devolver la funcin:
Private Function Divisible(numero As Integer, divisor As Integer) As Boolean
El tipo puede ser cualquiera de los validos para Visual Basic: Integer, single, double etc.
En nuestro caso se uso el Tipo Boolean, con lo cual la funcin devuelve True o False
El valor que ha de devolver la funcin debe ser indicado en forma explcita, asignando
dicho valor al nombre de la funcin antes de que el cdigo alcance la instruccin End, o
la instruccin Exit Function, si esta existe en el cdigo de la funcin:
Visual Basic 5.0. Curso Bsico 49
Else
' la funcin devuelve False si numero no es divisible por divisor
Divisible = False
La expresin Private antes del nombre de la funcin indica que la funcin solo podr
ser utilizada en el entorno del formulario donde fue declarada, si existieran en nuestro
proyecto mas de un formulario y quisiramos que esta funcin fuera utilizada por todos
tendramos que cambiar esta expresin por Public.
dato = CInt(Text1.Text)
If Divisible(dato, 4) Then
If Not Divisible(dato, 100) Then
Label2.Caption = "Este ao es Bisiesto"
Else
If Divisible(dato, 400) Then
Label2.Caption = "Este ao es Bisiesto"
Else
Label2.Caption = "Este ao No es Bisiesto"
End If
End If
Else
Label2.Caption = "Este ao No es Bisiesto"
End If
End Sub
If resto = 0 Then
' la funcin devuelve True si nmero es divisible por divisor
Divisible = True
Else
' la funcin devuelve False si nmero no es divisible por divisor
Divisible = False
End If
End Function
Not
Se utiliza para ejecutar una negacin lgica sobre una expresin.
Sintaxis
resultado = Not expresin
Mod
Divide dos nmeros (division entera) y devuelve slo el residuo.
Sintaxis
resultado = nmero1 Mod nmero2
Parte Descripcin
resultado Cualquier variable numrica.
nmero1 Cualquier expresin numrica (Preferiblemente entera).
nmero2 Cualquier expresin numrica (Preferiblemente entera)..
El operador de Mod divide nmero1 por nmero2 (redondeando a enteros los nmeros de punto flotante) y
devuelve slo el residuo como resultado. Por ejemplo, en la siguiente expresin, A (que es el resultado) es
igual a 5. A = 19 Mod 6.7
Visual Basic 5.0. Curso Bsico 52
Los Procedimientos
Constituyen el ms importante tipo de Subrutina diseado por el programador. Para anexar
un procedimiento al modulo general de un formulario se siguen los mismos paso que para
una funcin, con la diferencia que en la ventana de insertar procedimiento se marca la
opcin Procedimiento en lugar de Funcin. Con lo cual Visual Basic le mostrara una
plantilla similar a la de la funcin.
La sintaxis completa de un procedimiento es la siguiente:
[Private / Public] Sub nombre (argumento1 as tipo, argumento2 as tipo......)
[Instrucciones]
[Exit Sub]
[Instrucciones]
End Sub
Sin saberlo durante este curso hemos estado utilizando procedimientos. Si observa bien la
plantilla de cdigo para los eventos de los objetos son Procedimientos, como es el caso del
procedimiento utilizado en el ejemplo anterior (cvb06 Ao Bisiesto) en donde colocamos
cdigo en el evento Change de la caja de texto, creando as el procedimiento:
Private Sub Text1_Change()
End Sub
Ahora bien, los procedimientos creados para los eventos de los objetos son llamados
automticamente por Visual Basic cuando el evento ocurre en tiempo de ejecucin. Otros
procedimientos diseados por el programador deben ser llamados con la instruccin Call.
Call.
Transfiere el control a un procedimiento Sub.
Sintaxis
[Call] nombre [listaargumentos]
Parte Descripcin
Call Palabra clave opcional; si se especifica, listaargumento se debe colocar
entre parntesis. Por ejemplo: Call MyProc(0)
nombre Nombre del procedimiento a llamar.
listaargumentos Lista de variables, delimitada por coma, para pasar al procedimiento. Los
componentes de listaargumentos pueden incluir las palabras clave ByVal
o ByRef para describir la forma en la que los argumentos deben ser
tratados por el procedimiento llamado.
No se requiere usar la palabra clave Call cuando se llama a un procedimiento. Sin embargo, si se
usa la palabra clave Call para llamar a un procedimiento que requiere los argumentos,
listaargumentos debe estar entre parntesis. Si se omite la palabra clave Call, debe omitir tambin
los parntesis alrededor de listaargumentos.
Picture
Devuelve o establece un grfico mostrado en un control Image.
Sintaxis
objeto.Picture [= imagen]
La imagen puede ser un icono o mapa de bits
Stretch
Devuelve o establece un valor que indica si un grfico cambia su tamao para ajustarlo
al de un control Image.
Sintaxis
objeto.Stretch [= lgico]
Ya usted sabe como crear el botn para Salir, la figura de la parte derecha superior del
formulario se crea insertando en el mimo un control imagen, en nuestro caso es el control
image1. Realice los siguientes cambios en nuestros controles:
En la propiedad picture de image1 cargaremos el siguiente icono
...\vb\icons\arrows\Point08.ico (Viene con Visual Basic 4.0 o 3.0).
Cambiemos la propiedad Stretch de image1 a True y reajuste el tamao de la
figura.
Carge en la propiedad MouseIcon del formulario el siguiente icono
...\vb\icons\computer\mouse04.ico (Viene con Visual Basic 4.0 o 3.0).
La propiedad caption del Formulario es la que se ve en la figura 18.0 Programa
Ejemplo cvb07.
Se cambia el Backcolor de formulario por un color que contraste con gris.
Las lneas de cdigo son las siguientes:
'********************************************************************
' Los valores X y Y que se pasan como parmetros a este procedimiento
'son los valores del puntero del ratn los cuales se envan al procedimiento Buscar
'********************************************************************
End Sub
Visual Basic 5.0. Curso Bsico 55
End Sub
End Sub
Dim i As Integer
For i = 1 To tiempo
Next i
End Sub
Visual Basic 5.0. Curso Bsico 56
Mejorando la Interfaz
En esta seccin veremos algunos controles que adicionan mas interactividad entre el
usuario y el programa. Comenzaremos por el botn de opciones.
OptionButton
Value
Devuelve o establece el estado del control.
Sintaxis
objeto.Value [= valor]
Frame (Marco)
Un control Frame proporciona un agrupamiento identificable para controles. Tambin
puede utilizar un Frame para subdividir un formulario funcionalmente, por ejemplo, para
separar grupos de controles OptionButton. Para agrupar controles, en primer lugar trace el
control Frame y, a continuacin, los controles dentro de Frame. De este modo podr mover
al mismo tiempo el Frame y los controles que contiene. Si traza un control fuera del Frame
y, a continuacin, intenta moverlo dentro de ste, el control se colocar sobre el Frame y
deber mover el Frame y los controles por separado. Aprenderemos con un ejemplo:
Text1.Text = "" ' Limpia la caja de texto donde ingresan los datos
End Sub
Visual Basic 5.0. Curso Bsico 58
' Al elegir cualquier opcin, se reajustan las etiquetas a fin de que la etiqueta sobre text1
'sea del dato de entrada la etiqueta sobre el label1 corresponda al resultado
End Sub
' Al elegir cualquier opcin se reajustan las etiquetas a fin de que la etiqueta sobre text1 sea
'del dato de entrada la etiqueta sobre el label1 corresponda al resultado
End Sub
End Sub
Control Timer
Otro control interesante es el control Timer. Un control Timer puede ejecutar cdigo a
intervalos regulares produciendo un evento Timer. El control Timer, invisible para el
usuario, resulta til para el procesamiento de fondo. Por ser un control no visual, el Timer
posee muy pocas propiedades de las cuales la ms relevante es la propiedad interval
Interval
Devuelve o establece el nmero de milisegundos entre las llamadas al evento Timer de un control
Timer.
Sintaxis
objeto.Interval [= milisegundos]
Parte Descripcin
objeto Expresin de objeto que da como resultado un objeto de la lista Aplicable a.
milisegundos Expresin numrica que especifica el nmero de milisegundos
La propiedad Enabled del control Timer determina la forma en que el control responder al paso del
tiempo. Establezca False en Enabled para deshabilitar el control Timer, o True para habilitarlo.
Cuando se activa un control Timer, la cuenta atrs siempre empieza por el valor indicado en su
propiedad Interval.
Cree un procedimiento de evento Timer para indicar a Visual Basic lo que debe hacer cada vez que
transcurra el intervalo indicado en Interval.
Para que las cajas de dibujo tengan estas figuras cargaremos en la propiedad Picture de
cada una, los siguientes iconos que vienen con el Visual Basic 4.0:
Otra propiedad que es necesario modificar es la propiedad Interval del control Timer,
cambiando su valor predeterminado de 0 a 500. Con lo cual se producir una llamada al
evento Timer del control Timer1 cada 500 milisegundos (esto es cada segundo).
Visual Basic 5.0. Curso Bsico 61
De esta forma cada ves que se llame a este evento se ejecutara el siguiente cdigo:
End Sub
' esta rutina habilita o deshabilita la labor de control timer mediante su propiedad enabled,
'al mismo tiempo cambia el titulo de command1
End Sub
Es importante hacer notar que el control Timer solo responde al evento Timer, no tiene
otros eventos.
Por otro lado el control Picture utilizado por primera vez en este ejemplo es similar al
control image solo que no tiene la propiedad Stretch, pero tiene la propiedad Autisize que
adapta el tamao del control al tamao de la imagen que porta.
Visual Basic 5.0. Curso Bsico 62
Diseo de Mens
El diseo de mens adecuados hacen que las aplicaciones sean mucho ms amigables con
el usuario. Se crean mens en Visual Basic mediante la utilizacin del Editor de Mens.
Para llamar al editor de mens se puede usar el comando Men Editor del men Tools de
la barra de mens de Visual Basic. Por otro lado puede llamarlo usando el correspondiente
botn de la barra de herramientas:
Utilice el men Editor para crear mens personalizados para su aplicacin y para definir sus
propiedades
Para cerrar el Editor de mens, haga doble clic en el cuadro del men de control. Para
aceptar los cambios realizados en el Editor de mens, elija Aceptar.
Para dar un acceso de teclado al usuario a la opcin de men, inserte un signo & antes de
una letra. En tiempo de ejecucin, esta letra se subraya, y el usuario puede tener acceso al
men o comando presionando ALT y la tecla de acceso.
Visual Basic 5.0. Curso Bsico 63
Shortcut: Un cuadro de lista desplegable desde el cual puede seleccionar una combinacin
de teclas de mtodo abreviado con la cual se tiene acceso rpido al men.
Checked. Una casilla de verificacin que puede seleccionar si desea que aparezca una
marca de verificacin inicialmente a la izquierda de un elemento de men. Esto se utiliza
generalmente para indicar si una opcin est activada o desactivada.
Enabled. Una casilla de verificacin que puede seleccionar si desea que el elemento de
men responda a eventos, o que puede desactivar si desea que no est disponible y aparezca
borroso.
Visible. Una casilla de verificacin que puede seleccionar si desea que el elemento de
men aparezca sobre el men.
Un conjunto de botones exteriores que le permiten mover los elementos de men a un nivel
ms alto o ms bajo:
Utilice estos botones para cambiar el nivel de un men a un nivel ms alto o a un nivel
ms bajo. Puede crear hasta cuatro niveles de submens.
Utilice estos botones para cambiar la posicin de un elemento de men dentro del mismo
nivel de men (hacia arriba o hacia abajo en la lista de men).
Un cuadro de lista que muestra una lista jerrquica de elementos de men. Los elementos
de los submens se sangran para indicar su posicin jerrquica o nivel.
Visual Basic 5.0. Curso Bsico 64
Si observa la figura 20.0 podr observar el rbol de men a disear. Ntese que el tercer
sub-men del men Primero es solo una lnea corta , esto crea una lnea divisora en el
men de &Primero. Tambin debe notarse que en el sub-men Primero C se asigno una
tecla rpida . Con lo cual esta opcin se alcanza directamente con la combinacin Ctrl-C.
Fjese en la forma en la que se asigna el nombre al men ejemplo de la figura 20.0. Las tres
primeras letras son mnu (de men), si el men tiene niveles superiores se colocan en forma
Visual Basic 5.0. Curso Bsico 65
acumulativa las tres primeras letras de los niveles superiores, en nuestro caso solo hay un
nivel superior, este es, el men principal Primero por lo cual el nombre ser mnuPriC.
Esta nomenclatura es recomendada, pues usted puede dar cualquier nombre a sus mens.
Los cdigos se signaran el del men. El evento click es el nico evento al que responden
los objetos mens.
Coloque en cada uno de los eventos click de las opciones del rbol de mens, un cdigo
como este:
Adems del formulario inicial, el cual entrega Visual Basic al arrancar un nuevo programa,
para adicionar un formulario a nuestro proyecto es suficiente con utilizar el comando Add
Formulario del men Project. O utilizando el botn respectivo de la barra de herramienta
el cual es el segundo del extremo izquierdo. Por cierto al adicionar un nuevo formulario
este debe aparecer en la ventana de proyecto, as mismo al salvar el programa debe darse
nombre al archivo frm que va a guardar este nuevo formulario, tanto sus imgenes como
sus cdigos, en general todo formulario se almacena en un archivo particular.
Debe recordarse que el formulario principal es la ventana que aparece de primera cuando
arranca un programa, esto es, es el formulario inicial. Es posible cambiar esta condicin si
utilizamos el comando Project Properties del men Project la cual invoca la siguiente
ventana de dialogo:
Visual Basic 5.0. Curso Bsico 66
En la figura 21.0, podemos ver en la parte superior derecha una lista que contiene todas los
formularios que forman parte del proyecto y en la cual podemos seleccionar cual ser el
formulario inicial o formulario por donde arrancara el programa. Por defecto este puesto lo
ocupa el primer formulario creado en el proyecto.
Cuando un proyecto con mltiples formularios arranca, todos los formularios son invisibles
excepto el formulario de arranque, para que los otros puedan aparecer en pantalla es
necesario cargarlos desde el programa con el mtodo Show.
Show.
Presenta y carga un objeto Form. (Formulario)
Sintaxis
objeto.Show estilo
Cuando Show presenta un formulario no modal, el cdigo siguiente sigue su ejecucin. Cuando
Show presenta un formulario modal, el cdigo siguiente no se ejecuta hasta que el formulario se
oculta o se descarga.
Cuando Show presenta un formulario modal, no hay entradas (de teclado o del mouse) excepto
sobre los objetos del formulario modal. El programa debe ocultar o descargar los formularios
modales (normalmente en respuesta a alguna accin del usuario) antes de que pueda producirse
entrada a otro formulario.
El cdigo del programa se encuentra en los eventos clic de las opciones del men:
En el programa podemos observar que para referirse a un control que se encuentra en otro
formulario es necesario indicar tambin el nombre del formulario:
Form3.Label1.Caption = Text1.Text
El formulario form2 se abre en estilo no modal, mientras que el formulario form3 se abre
con show 1, es decir en forma modal. Corra el programa y pruebe la diferencia.
Visual Basic 5.0. Curso Bsico 69
Arreglos
Como ya es sabido, un arreglo permite referirse a una serie de elementos del mismo tipo
por un mismo nombre y referenciar un nico elemento de la serie utilizando un ndice.
Visual Basic, igual que todos lo lenguajes de programacin permite definir arreglos de
variables de una o ms dimensiones y de cualquier tipo de dato.
Parte Descripcin
nombreVar Nombre de la variable; sigue las convenciones de nomenclatura estndar de variable.
subndices Dimensiones de una variable de matriz; puede declarar un mximo de 60
dimensiones mltiples.
tipo Cualquiera de los tipos validos para Visual Basic.
Use una clusula As tipo para cada variable que defina. En los datos de tipo Variant que contienen
una matriz, tipo describe el tipo de cada elemento de la matriz, pero no cambia el tipo Variant a otro
tipo diferente.
Puede usar la instruccin ReDim varias veces para cambiar el nmero de elementos y las dimensiones
de una matriz. Pero no puede declarar una matriz de un tipo de datos y usar luego ReDim para
cambiar la matriz a otro tipo de datos, a menos que la matriz est contenida en una variable Variant.
Si la matriz est en una variable Variant, puede modificar el tipo de los elementos usando una clusula
As tipo.
Precaucin Si reduce el tamao de una matriz, se pierden los datos de los elementos eliminados.
El ndice puede ser una constante o una variable de valor ya definido para el momento de la
declaracin. Este ndice en el momento de la declaracin expresa la cantidad de elementos
(espacio) que se crearan para el arreglo. Una declaracin Redim puede efectuarse en
cualquier sitio del cdigo, antes de invocar a cualquier elemento del arreglo.
Para declarar arreglos unidimensionales se utiliza solo un ndice en la declaracin, para
arreglos bidimensionales se utilizaran dos ndices, por ejemplo:
Redim Miarreglo( n , m ) as Single
El control ListBox
Un control ListBox muestra una lista de elementos en la que el usuario puede seleccionar
uno o ms. Si el nmero de elementos supera el nmero que puede mostrarse, se agregar
automticamente una barra de desplazamiento al control ListBox.
ListCount
Devuelve el nmero de elementos de la porcin de lista de un control.
Sintaxis
objeto.ListCount
ListIndex
Devuelve o establece el ndice del elemento seleccionado actualmente en el control. No
disponible en tiempo de diseo.
Sintaxis
objeto.ListIndex [= ndice]
Parte Descripcin
ndice Expresin numrica que especifica el ndice del elemento actual
List
Devuelve o establece los elementos contenidos en la porcin de lista de un control. La lista
es una matriz de cadenas cuyos elementos se corresponden con los de la lista. Disponible en
tiempo de diseo para los controles ListBox
Sintaxis
objeto.List(ndice) [= cadena]
Puede utilizar esta propiedad para tener acceso a los elementos de la lista. El ndice del
primer elemento es 0, y el del ltimo es ListCount. Inicialmente, los controles ListBox
contienen una lista vaca. La propiedad List funciona conjuntamente con las propiedades
ListCount y ListIndex. Cuando el ndice se encuentra fuera del rango de los elementos del
cuadro de lista, se obtiene una cadena de longitud cero. Por ejemplo, List(-1) devuelve una
cadena de longitud cero cuando se utiliza para un control ListBox.
Visual Basic 5.0. Curso Bsico 71
Sorted
Devuelve un valor que indica si los elementos de un control se colocan automticamente en
orden alfabtico.
Sintaxis
objeto.Sorted
Cuando esta propiedad tiene el valor True, Visual Basic se encarga de casi todo el
procesamiento de cadenas necesario para mantener el orden alfabtico, incluyendo el
cambio de los nmeros de ndice cuando se agregan o eliminan elementos.
Para agregar y retirar elementos del ListBox se usan los mtodos AddItem y RemoveItem.
AddItem
Agrega un elemento a un control ListBox.
Sintaxis
objeto.AddItem elemento, ndice
Si se especifica un valor vlido de ndice, elemento se sita en dicha posicin dentro del
objeto. Si se omite ndice, elemento se agrega al objeto en la posicin que le corresponda
dentro del orden apropiado (si la propiedad Sorted es True) o al final de la lista (si Sorted es
False).
RemoveItem.
Elimina un elemento de un control ListBox .
Sintaxis
objeto.RemoveItem ndice
ndice: Entero que especifica la posicin dentro del objeto del elemento que se elimina.
Clear
Borra el contenido de los controles ListBox
Sintaxis
objeto.Clear
Visual Basic 5.0. Curso Bsico 72
Para comprender mejor el uso de las listas y de los arreglos unidimensionales veremos un
ejemplo que ordena una lista de datos numricos:
'Ordenamiento descendente
For i = 1 To n - 1
For j = i + 1 To n
If valores(i) > valores(j) Then
auxiliar = valores(i)
valores(i) = valores(j)
valores(j) = auxiliar
End If
Next j
Next i
End Sub
Use las propiedades Cols y Rows para determinar el nmero de columnas y filas de un
control Grid. Este control no puede tener ms de 2000 filas o 400 columnas.
El control MSFlexGrid esta disponible en la caja de herramientas bajo el siguiente smbolo:
En esta ventana seleccionaremos el control Microsoft FlexGrid Control 5.0 con lo cual se
anexara el botn del control a la caja de herramientas.
Cols, Rows
Devuelven o establecen el nmero total de columnas o filas de un control Grid.
Sintaxis
objeto.Cols [= nmero]
objeto.Rows [= nmero]
Puede utilizar estas propiedades para extender dinmicamente un control Grid en tiempo de
ejecucin. Las propiedades Cols y Rows son distintas de las propiedades Col y Row.
Col, Row
Devuelven o establecen la celda activa en un control Grid. No disponible en tiempo de
diseo.
Sintaxis
objeto.Col [= nmero]
objeto.Row [= nmero]
Puede utilizar estas propiedades para especificar una celda de un control Grid, o para
averiguar la fila o columna que contiene la celda activa en una regin seleccionada. Las
filas y columnas se numeran a partir de cero, comenzando por la parte superior para las
filas y por la izquierda para las columnas. Al establecer estas propiedades en tiempo de
ejecucin no varan las celdas seleccionadas.
FixedCols y FixedRows
Devuelven o establecen el nmero total de columnas o filas fijas de un control Grid. De
forma predeterminada, un control Grid tiene una columna fija y una fila fija.
Sintaxis
objeto.FixedCols [= nmero]
objeto.FixedRows [= nmero]
nmero Una expresin numrica que especifica el nmero de filas o columnas fijas.
Visual Basic 5.0. Curso Bsico 76
Una columna fija es una columna estacionaria en la parte izquierda de un control Grid. Una
fila fija es una fila estacionaria en la parte superior del control Grid. Puede haber cero o
ms columnas fijas y cero o ms filas fijas. Las columnas y filas fijas se presentan en gris y
no se mueven cuando otras columnas o filas del control Grid se desplazan. No se puede
cambiar el color de una columna o fila fijas. Un control Grid debe tener al menos una
columna no fija y una fila no fija. El nmero mximo de columnas o filas fijas de un
control Grid es uno menos que el nmero total de filas o columnas.
Text
Devuelve o establece el texto contenido en una celda o en un rango de celdas. No
disponible en tiempo de diseo.
Sintaxis
objeto.Text [= cadena]
Para comprender mejor el uso del control Grid y de los arreglos bidimensionales veremos
un ejemplo que opera matemticamente dos matrices:
Option Explicit
'**************************************************
' Primera matriz
'**************************************************
' Damos el tamao adecuado a la primera matriz
'**************************************************
' Segunda matriz
'**************************************************
' Damos el tamao adecuado a la segunda matriz
'**************************************************
' Matriz de resultados
'**************************************************
' Los mismos pasos que en los caso anteriores solo que no
' hacemos visible esta matriz sino hasta despus de realizados
' los clculos y escrito en ella los resultados
MSFlexGrid3.Rows = Val(Text1.Text) + 1
MSFlexGrid3.Cols = Val(Text2.Text) + 1
MSFlexGrid3.Row = 0
For i = 1 To MSFlexGrid3.Cols - 1
MSFlexGrid3.Col = i
MSFlexGrid3.Text = i
Next i
MSFlexGrid3.Col = 0
For i = 1 To MSFlexGrid3.Rows - 1
MSFlexGrid3.Row = i
MSFlexGrid3.Text = i
Next i
End Sub
Visual Basic 5.0. Curso Bsico 79
'*************************************************************
' Usamos este procedimiento(Subrutina) para reiniciar la pantalla
' 1. Borramos los contenidos de las cajas de texto
' 2 Borramos los contenidos de las matrices (Grids)
' 3 Hacemos invisibles los controles grid y sus etiquetas
'*************************************************************
Dim i As Integer
Dim j As Integer
Text1.Text = ""
Text2.Text = ""
For i = 0 To MSFlexGrid1.Rows - 1
For j = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Row = i
MSFlexGrid1.Col = j
MSFlexGrid1.Text = ""
Next j
Next i
MSFlexGrid1.Visible = False
Label3.Visible = False
For i = 0 To MSFlexGrid2.Rows - 1
For j = 0 To MSFlexGrid2.Cols - 1
MSFlexGrid2.Row = i
MSFlexGrid2.Col = j
MSFlexGrid2.Text = ""
Next j
Next i
MSFlexGrid2.Visible = False
Label4.Visible = False
For i = 0 To MSFlexGrid3.Rows - 1
For j = 0 To MSFlexGrid3.Cols - 1
MSFlexGrid3.Row = i
MSFlexGrid3.Col = j
MSFlexGrid3.Text = ""
Next j
Next i
MSFlexGrid3.Visible = False
Label5.Visible = False
End Sub
Visual Basic 5.0. Curso Bsico 80
If KeyCode = 46 Then
MSFlexGrid1.Text = ""
End If
End Sub
End Sub
If KeyCode = 46 Then
MSFlexGrid2.Text = ""
End If
End Sub
End Sub
End Sub
Visual Basic 5.0. Curso Bsico 81
Label5.Visible = True
MSFlexGrid3.Visible = True
End Sub
End Sub
End Sub
End Sub
End Sub
Visual Basic 5.0. Curso Bsico 83
Sin embargo existen tcnicas adicionales para mejorar las entradas de texto en los controles
grid. Entre las cuales esta el de usar una caja de texto oculta para escribir en el grid:
Abra un nuevo formulario en el que
incluir un control grid y una caja de texto
como se muestra en la figura
Oculte la caja de texto detrs del control
grid a fin de que esta no se vea. Puede
valerse del comando Send to Back del
submenu Order que esta en el men
Format a fin de que la caja de texto se
dibuje debajo del control grid
Cambie el nombre del grid de
MSFlexGrdid1 por matriz
Option Explicit
matriz.Cols = 9
matriz.Rows = 9
matriz.Row = 0
For i = 1 To 8
matriz.Col = i
matriz.Text = i
Next i
matriz.Col = 0
For i = 1 To 8
matriz.Row = i
matriz.Text = i
Next i
matriz.Col = 1
matriz.Row = 1
End Sub
Visual Basic 5.0. Curso Bsico 84
Ahora podr escribir en la malla como si fuera una caja de texto (bueno, recuerde que
realmente esta escribiendo en la caja de texto oculta).
Visual Basic 5.0. Curso Bsico 85
Creando un Ejecutable
Finalmente crear un ejecutable con su proyecto es muy sencillo, solo tiene que seguir los
siguientes pasos:
1. Una vez que ha terminado su programa invoque el comando Make Project (proyecto),
del men File, donde proyecto es el nombre que se ha dado al proyecto que se esta
elaborado. Se presentara ante usted la siguiente ventana de dialogo:
2. En esta ventana solo tiene que ubicar el directorio y el nombre que ha de tener su
aplicacin.
3. Pulse el botn aceptar y listo; salga de Visual Basic y corra su aplicacin directamente
desde su disco. Visual Basic recomienda como nombre predeterminado de su ejecutable
el mismo nombre que tiene el archivo VBP de su aplicacin.
Ahora bien debe recordar que al distribuir sus aplicaciones, las mismas para poder correr
fuera del entorno de Visual Basic, necesitan estar acompaadas del archivo Msvbvm.dll, o
por lo menos debe estar este archivo en el directorio System de Windows, donde tambin
usted puede encontrarlo a fin de anexarlo cuando distribuya su programa. Adems debe
incluir tambin los maneadores de los controles adicionales que incluya en su aplicacin,
como es el caso del archivo MSFLXGRD.OCX para los programas que utilicen un control
Grid. (Ver parte inferior de la figura 22.0).
Visual Basic 5.0. Curso Bsico 86
El Depurador (Debug)
Errores durante la ejecucin: Ocurre cuando al ejecutar una aplicacin una sentencia
intenta una operacin que es imposible realizar. Un ejemplo tpico es una divisin por cero.
Una buena programacin debe anticiparse a este tipo de errores manipulndolos
adecuadamente.
O en la barra de herramientas Debug, la cual puede anexar desde el comando Toolbars del
men View
Los comandos del debuger se ejecutan en modo de interrupcin, este es un modo especial
de corrida en donde el programa parece estar temporalmente suspendido, esto es el
programa no corre a la velocidad normal sino que es el programador el que determina en
forma dinmica la cantidad de instrucciones que han de ejecutarse, cuando se detendr el
programa, reiciar el modo normal de corrida o parar. En este modo puede mirar el
contenido de las variable durante la ejecucin del programa para as detectar que el mismo
este funcionando como se esperaba y poder detectar los errores lgicos cometidos
Step Into: Correr paso a paso por instrucciones. Puede utilizar Paso a paso por
instrucciones para ejecutar una instruccin cada vez. Si la instruccin es una llamada a un
procedimiento, la siguiente instruccin que se muestra es la primera instruccin del
procedimiento llamado.
Mtodo abreviado de teclado: F8.
Step Over: Paso a paso por procedimientos es similar a Paso a paso por instrucciones. La
diferencia de uso ocurre cuando la instruccin actual contiene una llamada a un
procedimiento. Paso a paso por procedimientos lo ejecuta como una unidad, y despus salta
a la siguiente instruccin del procedimiento actual. Por lo tanto, la siguiente instruccin que
se muestra es la siguiente del mdulo actual sin que importe si la instruccin actual es una
llamada a procedimiento.
Mtodo abreviado de teclado: SHIFT+F8.
Run to Cursor: Cuando su aplicacin est en modo de ruptura, puede utilizar Run to
Cursor para seleccionar una instruccin posterior de su cdigo donde desee parar la
ejecucin. La ejecucin se realizara de forma normal desde donde invoque el comando
hasta alcanzar la lnea de cdigo el la que se coloque el cursor, luego el programa se
detendr permitiendo continuar su corrida paso a paso Podra utilizar este comando, por
ejemplo, para permitir la ejecucin de ciclos grandes. No disponible en tiempo de
ejecucin.
Mtodo abreviado de teclado: CTRL+F8.
Quick Watch: Muestra el cuadro de dilogo Inspeccin instantnea con el valor actual de
la expresin seleccionada. Disponible slo en modo de ruptura. Mientras depura su
programa, utilice este comando para comprobar el valor actual de una variable, propiedad u
otra expresin para la cual no haya definido una expresin de inspeccin. Seleccione la
expresin bien de la ventana Cdigo o del panel de cdigo de la ventana Depuracin, y
despus elija el comando Inspeccin instantnea.
Mtodo abreviado de teclado: SHIFT+F9.
Visual Basic 5.0. Curso Bsico 88
Ahora vuelva a cargar el programa cvb13.0 y con la ayuda de su profesor realice una
revisin completa a la rutina Private Sub mnuSumar_Click() en modo de interrupcin y
utilizando los comandos de Debug
Visual Basic 5.0. Curso Bsico 89
Archivos de Datos
En muchos casos es necesario guardar en memoria secundaria (unidades de discos) los
datos que manejamos en nuestros programas.
Los dos tipos ms importantes de archivos de datos que maneja Visual Basic son:
Archivo de acceso Secuencial
Archivo de acceso Aleatorio.
Open
Activa operaciones de entrada/salida (E/S) con un archivo.
Sintaxis
Open nombreruta For modo As [#]nmeroarchivo
Parte Descripcin
nombreruta Expresin de cadena que especifica un nombre de archivonombrearchivpuede
incluir el directorio o carpeta y la unidad de disco.
modo Palabra clave que especifica el modo de archivo Input:Para leer datos
desde el archivo, Output para escribir en el archivo, Append: Agergar
elementos al archivo..
nmeroarchivo Un nmero de archivo en el intervalo 1 a 511 inclusive.
Antes de poder ejecutar una operacin de E/S en un archivo, ste debe estar abierto. Open
asigna un rea de memoria intermedia para operaciones de E/S con el archivo y determina
el modo de acceso que se debe utilizar con el rea de memoria intermedia. Si el archivo
especificado con nombreruta no existe, se crea al abrir un archivo en los modos Append,
Output o Random. Si el archivo ya ha sido abierto por otro proceso y no se permite el tipo
de acceso especificado, la operacin Open fracasa y se produce un error.
Importante: En el modo Input se puede abrir un archivo utilizando un nmero de archivo
distinto sin necesidad de cerrarlo antes. En los modos Append y Output se debe cerrar el
archivo para poder abrirlo con un nmero de archivo distinto.
Ejemplo:
Open "PRUEBA" For Input As #1
Close
Visual Basic 5.0. Curso Bsico 90
Sintaxis
Close [listadenmerosdearchivo]
Para poder leer y escribir datos, en el archivo secuencial, contamos con las siguientes
instrucciones:
Input #
Lee datos de un archivo secuencial abierto y asigna esos datos a variables.
Sintaxis
Input #nmarchivo, listavariables
Parte Descripcin
nmarchivo Cualquier nmero de archivo vlido.
listavariables Lista de variables delimitadas por puntos y coma a las que se asignan
valores que se leen de un archivo.
Cuando se leen datos numricos o cadenas estndar, se asignan tal y como son a variables.
Los elementos de los datos de un archivo deben aparecer en el mismo orden que tienen las
variables en listavariables y deben coincidir con variables del mismo tipo de datos. Si una
variable es numrica y los datos no lo son, se asigna cero a esa variable.
Si se llega al fin del archivo cuando se est introduciendo un elemento de los datos, se da
por terminada la entrada y se emite un error.
Nota: Para introducir correctamente en variables los datos ledos de un archivo, se debe
utilizar siempre la instruccin Write #, en lugar de Print #, para grabar la informacin en los
Visual Basic 5.0. Curso Bsico 91
archivos. La utilizacin de Write # garantiza que cada campo de datos separado se delimite
correctamente.
Ejemplo
Open "PRUEBA" For Input As #1 ' Abre el archivo para recibir los datos.
Write #
Escribe datos no procesados en un archivo secuencial.
Sintaxis
Write #numarchivo, [listasalida]
Parte Descripcin
numarchivo Cualquier nmero de archivo vlido.
listasalida Una o varias expresiones de cadena o numricas delimitadas por
comas que se desea escribir en un archivo.
Ejemplo
Open "PRUEBA" For Output As #1 ' Abre el archivo para operaciones de salida.
Write #1, "Hola a todos ", 234 ' Delimita con comas los datos introducidos.
Write #1, ' Coloca una lnea en blanco.
Close #1
Las rutinas para abrir, escribir, leer y cerrar archivos en disco son muy propensas a errores
en tiempo de ejecucin. Por ejemplo si en la instruccin Open se utiliza un nombre de
archivo invalido, inexistente, o mal ubicado de tal manera que el computador no puede
localizarlo esto es motivo suficiente para que el programa reviente por causa de un Run
Time Error.
A fin de no perder el control de un programa cuando estos errores ocurran, Visual Basic
cuenta con un sistema de captura de errores en tiempo de ejecucin, este sistema no solo
Visual Basic 5.0. Curso Bsico 92
captura los errores en tiempo de ejecucin producidos por la comunicacin con archivos,
sino por cualquier instruccin que a esto conduzca.
On Error
Activa una rutina de tratamiento de errores y especifica la ubicacin de la misma en un
procedimiento.
Sintaxis
On Error GoTo lnea
On Error Resume Next
Instruccin Descripcin
Uno de los mayores problemas en programas interactivos que tratan con archivos es
determinar el nombre y la ubicacin correcta en donde se ha de cargar o escribir datos en un
archivo. Tambin este es uno de los motivos ms comunes de errores en tiempo de
ejecucin. La siguiente instruccin:
Presenta la limitante de que es un nombre y direccin fija, con lo cual este cdigo no es til
en caso de programas que interactuen con el usuario para preguntar a este cual es el nombre
y direccin del archivo de inters.
La salida mas Windows para este problema, es poder contar con una ventana desde
nuestros programas a las unidades de disco externas lo que nos permitira recorrer las
Visual Basic 5.0. Curso Bsico 94
direcciones y asignar correctos nombres a nuestros archivos en estudio. Tal como la hacen
los programas profesionales que trabajan bajo Windows.
La solucin es el uso de control CommonDialog (Dialogos Comunes):
CommonDialog1.ShowOpen
marca:
MsgBox "Archivo no Permitido"
End Sub
Entre las propiedades principales de un CommonDialog encontramos las siguientes:
DefaultExt Establece la extensin por defecto de los archivos mostrados en el cuadro.
Visual Basic 5.0. Curso Bsico 95
Por supuesto existen otras opciones que deber revisar en la ayuda de Visual Basic.
Preprese para un ejemplo en donde se trabaja con muchos datos los cuales son
almacenados en archivos secuenciales, preste atencin al uso del control CommonDialog y
al tratamiento de errores.
Visual Basic 5.0. Curso Bsico 96
Next i
End Sub
Visual Basic 5.0. Curso Bsico 98
Frame1.Visible = False
Grid1.Row = 1
Grid2.Col = 1
Grid2.Row = 1
Grid3.Row = 1
Text1.Text = ""
End Sub
End Sub
If KeyCode = 46 Then
Grid1.Text = "" ' para borrar escribimos ...!nada !
End If
End Sub
Visual Basic 5.0. Curso Bsico 99
' ********************************************************************
' Esta rutina se invoca cuando el usuario pulsa cualquier tecla, luego de soltar la tecla
' el valor keyascii representa el cdigo de la tecla pulsada, en nuestro caso cuando
' esta rutina se utiliza para escribir en las celdas la rutina que escribe en la celda
' es Grid1.Text = Grid1.Text + Chr$(KeyAscii) donde Chr$(KeyAscii) es
' el caracter que representa el caracter ascii de la tecla
' Ntese que solo se alcanza este cdigo si el caracter pulsado es un numero
' o si es el caracter ascii 8 ( es decir la tecla bacspace o borrar en retroceso )
' adems debe cumplirse el segundo ciclo if que cuestiona si el caracter que ingresa
' adicionado a lo ya escrito representa un numero, esto impedira que el usuario intentara
' escribir puntos solos
'******************************************************************
End If
End Sub
Visual Basic 5.0. Curso Bsico 100
Dim auxiliar As Variant 'para retirar el valor del archivo y colocarlo en las mallas
'********************************************************
' filename se enva al comondialog de nombre archivo
' para determinar los archivo que se visualizaran
' DialogTitle determina el titulo de la ventana de abrir
' archivo.ShowOpen para levantar la ventana de Open (abrir archivo)
Visual Basic 5.0. Curso Bsico 101
archivo.filename = "*.*"
archivo.DialogTitle = "Leer Datos desde Archivos"
archivo.ShowOpen
'**********************************************************
' El archivo se abre con el nombre devuelto por la ventana abierta por el commondialog en
' la lnea anterior como se va a abrir el archivo para leer datos desde el
' Open se invoca en el modo input(leer desde archivo)
Grid2.Row = i
For j = 1 To n
Next i
Exit Sub
End Sub
Visual Basic 5.0. Curso Bsico 102
'************************************************************
' La rutina se ejecuta solo si frame1 es visible, es decir
' si se han dimensionados las matrices y seguramente se han
' introducido valores en las mismas, de no ser asi no tendra
' sentido guardar y hasta podra ocurrir un error al intentarlo
'
'**********************************************************
' El archivo se guarda con el nombre devuelto por la ventana
' abierta por el commondialog en la lnea anterior
' como se va a abrir el archivo para guardar datos
' Open se invoca en el modo Output
For i = 1 To n
Grid1.Row = i
Write #1, Grid1.Text
Visual Basic 5.0. Curso Bsico 103
Grid2.Row = i
For j = 1 To n
Grid2.Col = j
Write #1, Grid2.Text
Next j
Next i
Close #f
End If
Exit Sub
marca2:
Call errores
Exit Sub
End Sub
Call borrar
End Sub
respuesta = MsgBox("Se han modificados datos . Desea Salir sin guardarlos?", 4 + 48,_
"Cuidado")
If respuesta = 6 Then
End ' Es decir nos vamos sin guardar
Else
Exit Sub ' No queremos salir del programa
End If
End Sub
End Sub
Visual Basic 5.0. Curso Bsico 105
Else
End Sub
KeyAscii = 0
End If
End Sub
Unload segundo
End Sub
Visual Basic 5.0. Curso Bsico 106
'***************************************
' Variable de ambito global al proyecto
For i = 1 To n
primero.Grid1.Row = i
If primero.Grid1.Text = "" Then
V(i) = 0
Else
V(i) = CSng(primero.Grid1.Text) 'el vector V se carga con los
' valores del grid1 del formulario
' primero, Por estar en un modulo
' aparte debe indicarse el formulario
' en el que se encuentra el control (grid)
End If
Next i
' la impedancia
For i = 1 To n
primero.Grid2.Row = i
For j = 1 To n
primero.Grid2.Col = j
Next j
Next i
If devuelve = 0 Then
MsgBox "No se pueden efectuar los calculos. El sistema es Singular o Los elementos de
la diagonal Principal de Z son cero. Debe replantear las ecuaciones"
Exit Sub
End If
Visual Basic 5.0. Curso Bsico 108
For i = 1 To n
C(i) = 0
For j = 1 To n
C(i) = C(i) + Z(i, j) * V(j)
Next j
Next i
segundo.Grid1.FixedRows = 1
segundo.Grid2.FixedRows = 1
For i = 1 To n
segundo.Grid1.Row = i
segundo.Grid1.Text = "X" + Str$(i)
segundo.Grid2.Row = i
segundo.Grid2.Text = CStr(C(i)) ' se copian los resultados
Next i
End Sub
mat(i, i) = 1 / mat(i, i)
Visual Basic 5.0. Curso Bsico 109
If j <> i Then
mat(j, i) = mat(j, i) * mat(i, i)
If k <> i Then
mat(j, k) = mat(j, k) - mat(j, i) * mat(i, k)
End If
End If
If j <> i Then
mat(i, j) = -mat(i, j) * mat(i, i)
End If
invertir = 1
End Function
Los archivos de acceso aleatorio a diferencia de los secuenciales ofrecen una forma mas
directa de accesar a los datos de forma independiente sin recorrer todo el archivo.
Los datos se almacenan en registros los cuales tienen una longitud mxima predefinida aun
cuando cada registro no consuma todo el espacio predeterminado para este.
Cuando un archivo de acceso aleatorio es abierto este puede utilizarse para leer o escribir
indistintamente, por lo cual no es necesario indicar en la instruccin Open si es For Input o
For Output, en su lugar indicaremos que se ha de abrir para acceso aleatorio: For Random,
adems debemos indicar el espacio que han de tener los registro que van ingresando al
archivo. Este es un ejemplo del uso de Open para la creacin de archivo para acceso
aleatorio:
Open "PRUEBA" For Random As #1 Len = 50
La cantidad despus de Len indica los bytes que ha de ocupar cada registro, lo cual debe ser
menor a 32,767 (bytes). Por lo regular esta debe ser calculada a partir del tamao de la
variable o constante ms grande que se ha de enviar como registro al archivo.
El espacio que ocupa un variable puede ser calculado en forma sencilla utilizando al
comando Len:
Open "PRUEBA" For Random As #1 Len = Len(Mivariable)
En los archivos de acceso aleatorio la nocin de registro esta incorporada. En elleos los
datos estn dispuestos en registros lo cual permite ir directamente al registro numero 8 sin
tener que pasar por el 7.
Para un mejor uso de los archivos de acceso aleatorio resulta conveniente usar el tipo de
dato Registro. Aunque este tipo de dato puede ser usado en cualquier ocasin son de
especial utilidad en el manejo de estos archivos.
Type
Se usa en el nivel de mdulo para definir un tipo de datos definido por el usuario que
contiene uno o ms elementos.
Sintaxis
[Private | Public] Type nombreVar
nombreElemento [([subndices])] As tipo
[ nombreElemento [([subndices])] As tipo]
...
End Type
Visual Basic 5.0. Curso Bsico 111
Public Se usa para declarar los tipos definidos por el usuario que estn
disponibles para todos los procedimientos de todos los mdulos en
todos los proyectos.
Private Se usa para declarar los tipos definidos por el usuario que nicamente
estn disponibles dentro del mdulo donde se efecta la declaracin.
nombreVar Nombre del tipo definido por el usuario; sigue las convenciones de
nomenclatura estndar de variable.
nombreElemento Nombre de un elemento de tipo definido por el usuario. Los nombres
de los elementos siguen tambin las convenciones de nomenclatura
estndar de variable, pero puede usar palabras clave.
subndices Cuando alguno de los elementos sea un arreglo
tipo Todos los tipos validos en Visual Basic u otros tipos previamente
definidos por el usuario.
Una vez que ha declarado un tipo definido por el usuario usando la instruccin Type, puede
declarar una variable de ese tipo en cualquier parte, dentro del mbito de la declaracin.
Use Dim, Private, Public, ReDim o Static para declarar las variables de los tipos definidos
por el usuario.
Los tipos definidos por el usuario se usan a menudo con registros de datos, que suelen
consistir en varios elementos relacionados de tipos de datos diversos.
El ejemplo siguiente muestra cmo se usan las matrices de tamao fijo en un tipo definido
por el usuario:
Type DatosEstado
CdigoCiudad (1 To 100) As Integer Declara un arreglo
Distrito As String * 30
End Type
...
Dim Bolivar As DatosEstado
Cada uno de los elementos de la variable Guayana puede ser accesado en forma sencilla
Label1.Caption=Bolivar.Distrito
Label2.Caption=Bolivar.CodigoCiudad(5)
Visual Basic 5.0. Curso Bsico 112
Sin embargo para escribir y leer desde ellos utilizaremos las siguientes instrucciones:
Put
Escribe en un archivo de disco los datos contenidos en una variable.
Sintaxis
Put [#]nmeroarchivo, [nmeroregistro], nombrevar
Parte Descripcin
nmeroarchivo Cualquier nmero de archivo vlido.
nmeroregistro Nmero de registro (archivos en modo Random) en el cual se
va a imprimir.
nombrevariable Nombre de la variable que contiene la informacin a escribir
en el disco.
Aunque la longitud de los datos escritos sea menor que la especificada en la clusula Len
de la instruccin Put escribe los registros siguientes segn los lmites de longitud de
registro y llena el espacio entre el fin de un registro y el comienzo del siguiente con el
contenido del rea de memoria intermedia del archivo.
Dado que la cantidad de datos de llenado no puede ser determinada con certeza, se
considera una buena prctica que el registro tenga la misma longitud que los datos que se
escriben. Si la longitud de los datos que se escriben es mayor que la especificada en la
clusula Len de la instruccin Open, ocurre un error.
Ejemplo
En este ejemplo se utiliza la instruccin Put para escribir datos en un archivo del disco. Se
escriben cinco registros del tipo definido por el usuario Registro.
Next NumeroRegistro
Get
Lee en un archivo de disco abierto y coloca la informacin en una variable.
Sintaxis
Get [#]nmeroarchivo, [nmeroregistro], nombrevariable
Parte Descripcin
nmeroarchivo Cualquier nmero de archivo vlido.
nmeroregistro El nmero de registro (en archivos de modo Random) o el nmero de
byte (en archivos de modo Binary) desde el que se va a leer.
nombrevariable Nombre de una variable vlida en la que se colocan los datos.
Ejemplo
En este ejemplo se utiliza la instruccin Get para leer datos de un archivo de disco y
ponerlos en una variable. Se supone que PRUEBA es un archivo que contiene cinco
registros del tipo definido por el usuario Record.
Veamos un ejemplo sencillo del uso de archivos aleatorios. En el ejemplo cvb15 se usa un
archivo de acceso aleatorio y la sencillez de Visual Basic en generar interfaz Windows, para
crear un programa que gestione una agenda telefnica de rpida implementacin
Es detalle importante que hay que denotar es que la propiedad MazLenght de las cajas de
texto que se observan en la figura 25.0 (cvb15) fueron establecidas as:
Para text1 Maxlenght=40
Para text2 Maxlenght=40
Para text3 Maxlenght=100 (esta caja tiene la propiedad Multiline en True)
Visual Basic 5.0. Curso Bsico 115
Option Explicit
Text1.SetFocus
End Sub
End Sub
If ActualRegist = 1 Then
MsgBox "Principio del Archivo", vbExclamation
Else
Call SalvarRegistro
ActualRegist = ActualRegist - 1
Call MostrarRegistro
End If
'termina el programa
End
End Sub
End Sub
Visual Basic 5.0. Curso Bsico 118
Ordenes de Archivos
Visual Basic cuenta adems con un conjunto de comandos que interactuan con el sistema
operativo subyacente a fin de gestionar archivos y directorios en su computadora, entre
estas ordenes encontramos:
Sintaxis
Shell(rutaDeAcceso[, estiloDeVentana])
Parte Descripcin
FileCopy
Copia un archivo.
Sintaxis
FileCopy fuente, destino
Parte Descripcin
fuente Expresin de cadena que especifica el nombre de un archivo a
copiarse puede incluir el directorio o carpeta y la unidad de disco..
destino Expresin de cadena que especifica el nombre del archivo de destino
se puede incluir el directorio o carpeta y la unidad de disco.
Existen muchas otros comandos para manejo de archivos y directorios, los cuales el lector
deber investigar a medida que las requiera en sus aplicaciones.