Aprenda Visual Basic 6.0
como si estuviera en primero

Capítulo 1: Introducción página 1
1. INTRODUCCIÓN
Visual Basic 6.0 es uno de los lenguajes de programación que más entusiasmo despiertan entre los
programadores de PCs, tanto expertos como novatos. En el caso de los programadores expertos por
la facilidad con la que desarrollan aplicaciones complejas en poquísimo tiempo (comparado con lo
que cuesta programar en Visual C++, por ejemplo). En el caso de los programadores novatos por el
hecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio que
hay que pagar por utilizar Visual Basic 6.0 es una menor velocidad o eficiencia en las aplicaciones.
Visual Basic 6.0 es un lenguaje de programación visual, también llamado lenguaje de 4ª
generación. Esto quiere decir que un gran número de tareas se realizan sin escribir código,
simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla.
Visual Basic 6.0 es también un programa basado en objetos, aunque no orientado a objetos
como C++ o Java. La diferencia está en que Visual Basic 6.0 utiliza objetos con propiedades y
métodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos
lenguajes orientados a objetos como Java y C++.
En este primer capítulo se presentarán las características generales de Visual Basic 6.0, junto
con algunos ejemplos sencillos que den idea de la potencia del lenguaje y del modo en que se
utiliza.
1.1 PROGRAMAS SECUENCIALES, INTERACTIVOS Y ORIENTADOS A EVENTOS
Existen distintos tipos de programas. En los primeros tiempos de los ordenadores los programas
eran de tipo secuencial (también llamados tipo batch) Un programa secuencial es un programa que
se arranca, lee los datos que necesita, realiza los cálculos e imprime o guarda en el disco los
resultados. De ordinario, mientras un programa secuencial está ejecutándose no necesita ninguna
intervención del usuario. A este tipo de programas se les llama también programas basados u
orientados a procedimientos o a algoritmos (procedural languages). Este tipo de programas siguen
utilizándose ampliamente en la actualidad, pero la difusión de los PCs ha puesto de actualidad otros
tipos de programación.
Los programas interactivos exigen la intervención del usuario en tiempo de ejecución, bien
para suministrar datos, bien para indicar al programa lo que debe hacer por medio de menús. Los
programas interactivos limitan y orientan la acción del usuario. Un ejemplo de programa interactivo
podría ser Matlab.
Por su parte los programas orientados a eventos son los programas típicos de Windows, tales
como Netscape, Word, Excel y PowerPoint. Cuando uno de estos programas ha arrancado, lo único
que hace es quedarse a la espera de las acciones del usuario, que en este caso son llamadas eventos.
El usuario dice si quiere abrir y modificar un fichero existente, o bien comenzar a crear un fichero
desde el principio. Estos programas pasan la mayor parte de su tiempo esperando las acciones del
usuario (eventos) y respondiendo a ellas. Las acciones que el usuario puede realizar en un momento
determinado son variadísimas, y exigen un tipo especial de programación: la programación
orientada a eventos. Este tipo de programación es sensiblemente más complicada que la secuencial
y la interactiva, pero Visual Basic 6.0 la hace especialmente sencilla y agradable.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 2
1.2 PROGRAMAS PARA EL ENTORNO WINDOWS
Visual Basic 6.0 está orientado a la realización de programas para Windows, pudiendo incorporar
todos los elementos de este entorno informático: ventanas, botones, cajas de diálogo y de texto,
botones de opción y de selección, barras de desplazamiento, gráficos, menús, etc.
Prácticamente todos los elementos de interacción con el usuario de los que dispone Windows
95/98/NT pueden ser programados en Visual Basic 6.0 de un modo muy sencillo. En ocasiones
bastan unas pocas operaciones con el ratón y la introducción a través del teclado de algunas
sentencias para disponer de aplicaciones con todas las características de Windows 95/98/NT. En los
siguientes apartados se introducirán algunos conceptos de este tipo de programación.
1.2.1 Modo de Diseño y Modo de Ejecución
La aplicación Visual Basic de Microsoft puede trabajar de dos modos distintos: en modo de diseño
y en modo de ejecución. En modo de diseño el usuario construye interactivamente la aplicación,
colocando controles en el formulario, definiendo sus propiedades, y desarrollando funciones para
gestionar los eventos.
La aplicación se prueba en modo de ejecución. En ese caso el usuario actúa sobre el programa
(introduce eventos) y prueba cómo responde el programa. Hay algunas propiedades de los controles
que deben establecerse en modo de diseño, pero muchas otras pueden cambiarse en tiempo de
ejecución desde el programa escrito en Visual Basic 6.0, en la forma en que más adelante se verá.
También hay propiedades que sólo pueden establecerse en modo de ejecución y que no son visibles
en modo de diseño.
Todos estos conceptos –controles, propiedades, eventos, etc.- se explican en los apartados
siguientes.
1.2.2 Formularios y Controles
Cada uno de los elementos gráficos que pueden formar parte de una aplicación típica de Windows
95/98/NT es un tipo de control: los botones, las cajas de diálogo y de texto, las cajas de selección
desplegables, los botones de opción y de selección, las barras de desplazamiento horizontales y
verticales, los gráficos, los menús, y muchos otros tipos de elementos son controles para Visual
Basic 6.0. Cada control debe tener un nombre a través del cual se puede hacer referencia a él en el
programa. Visual Basic 6.0 proporciona nombres por defecto que el usuario puede modificar. En el
Apartado 1.2.4 se exponen algunas reglas para dar nombres a los distintos controles.
En la terminología de Visual Basic 6.0 se llama formulario (form) a una ventana. Un
formulario puede ser considerado como una especie de contenedor para los controles. Una
aplicación puede tener varios formularios, pero un único formulario puede ser suficiente para las
aplicaciones más sencillas. Los formularios deben también tener un nombre, que puede crearse
siguiendo las mismas reglas que para los controles.
1.2.3 Objetos y Propiedades
Los formularios y los distintos tipos de controles son entidades genéricas de las que puede haber
varios ejemplares concretos en cada programa. En programación orientada a objetos (más bien
basada en objetos, habría que decir) se llama clase a estas entidades genéricas, mientras que se
llama objeto a cada ejemplar de una clase determinada. Por ejemplo, en un programa puede haber
Capítulo 1: Introducción página 3
varios botones, cada uno de los cuales es un objeto del tipo de control command button, que sería la
clase.
Cada formulario y cada tipo de control tienen un conjunto de propiedades que definen su
aspecto gráfico (tamaño, color, posición en la ventana, tipo y tamaño de letra, etc.) y su forma de
responder a las acciones del usuario (si está activo o no, por ejemplo). Cada propiedad tiene un
nombre que viene ya definido por el lenguaje.
Por lo general, las propiedades de un objeto son datos que tienen valores lógicos (True, False)
o numéricos concretos, propios de ese objeto y distintos de las de otros objetos de su clase. Así
pues, cada clase, tipo de objeto o control tiene su conjunto de propiedades, y cada objeto o control
concreto tiene unos valores determinados para las propiedades de su clase.
Casi todas las propiedades de los objetos pueden establecerse en tiempo de diseño y también
-casi siempre- en tiempo de ejecución. En este segundo caso se accede a sus valores por medio de
las sentencias del programa, en forma análoga a como se accede a cualquier variable en un lenguaje
de programación. Para ciertas propiedades ésta es la única forma de acceder a ellas. Por supuesto
Visual Basic 6.0 permite crear distintos tipos de variables, como más adelante se verá.
Se puede acceder a una propiedad de un objeto por medio del nombre del objeto a que
pertenece, seguido de un punto y el nombre de la propiedad, como por ejemplo optColor.objName.
En el siguiente apartado se estudiarán las reglas para dar nombres a los objetos.
1.2.4 Nombres de objetos
En principio cada objeto de Visual Basic 6.0 debe tener un nombre, por medio del cual se hace
referencia a dicho objeto. El nombre puede ser el que el usuario desee, e incluso Visual Basic 6.0
proporciona nombres por defecto para los diversos controles. Estos nombres por defecto hacen
referencia al tipo de control y van seguidos de un número que se incrementa a medida que se van
introduciendo más controles de ese tipo en el formulario (por ejemplo VScroll1, para una barra de
desplazamiento -scroll bar- vertical, HScroll1, para una barra horizontal, etc.).
Los nombres por defecto no son adecuados porque hacen referencia al tipo de control, pero
no al uso que de dicho control está haciendo el programador. Por ejemplo, si se utiliza una barra de
desplazamiento para introducir una temperatura, conviene que su nombre haga referencia a la
palabra temperatura, y así cuando haya que utilizar ese nombre se sabrá exactamente a qué control
corresponde. Un nombre adecuado sería por ejemplo hsbTemp, donde las tres primeras letras
indican que se trata de una horizontal scroll bar, y las restantes (empezando por una mayúscula) que
servirá para definir una temperatura.
Existe una convención ampliamente aceptada que es la siguiente: se utilizan siempre tres
letras minúsculas que indican el tipo de control, seguidas por otras letras (la primera mayúscula, a
modo de separación) libremente escogidas por el usuario, que tienen que hacer referencia al uso
que se va a dar a ese control. La Tabla 1.1 muestra las abreviaturas de los controles más usuales,
junto con la nomenclatura inglesa de la que derivan. En este mismo capítulo se verán unos cuantos
ejemplos de aplicación de estas reglas para construir nombres.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 4
Abreviatura Control Abreviatura Control
chk check box cbo combo y drop-list box
cmd command button dir dir list box
drv drive list box fil file list box
frm form fra frame
hsb horizontal scroll bar img image
lbl label lin line
lst list mnu menu
opt option button pct pictureBox
shp shape txt text edit box
tmr timer vsb vertical scroll bar
Tabla 1.1. Abreviaturas para los controles más usuales.
1.2.5 Eventos
Ya se ha dicho que las acciones del usuario sobre el programa se llaman eventos. Son eventos
típicos el clicar sobre un botón, el hacer doble clic sobre el nombre de un fichero para abrirlo, el
arrastrar un icono, el pulsar una tecla o combinación de teclas, el elegir una opción de un menú, el
escribir en una caja de texto, o simplemente mover el ratón. Más adelante se verán los distintos
tipos de eventos reconocidos por Windows 95/98/NT y por Visual Basic 6.0.
Cada vez que se produce un evento sobre un determinado tipo de control, Visual Basic 6.0
arranca una determinada función o procedimiento que realiza la acción programada por el usuario
para ese evento concreto. Estos procedimientos se llaman con un nombre que se forma a partir del
nombre del objeto y el nombre del evento, separados por el carácter (_), como por ejemplo
txtBox_click, que es el nombre del procedimiento que se ocupará de responder al evento click en el
objeto txtBox.
1.2.6 Métodos
Los métodos son funciones que también son llamadas desde programa, pero a diferencia de los
procedimientos no son programadas por el usuario, sino que vienen ya pre-programadas con el
lenguaje. Los métodos realizan tareas típicas, previsibles y comunes para todas las aplicaciones. De
ahí que vengan con el lenguaje y que se libere al usuario de la tarea de programarlos. Cada tipo de
objeto o de control tiene sus propios métodos.
Por ejemplo, los controles gráficos tienen un método llamado Line que se encarga de dibujar
líneas rectas. De la misma forma existe un método llamado Circle que dibuja circunferencias y
arcos de circunferencia Es obvio que el dibujar líneas rectas o circunferencias es una tarea común
para todos los programadores y que Visual Basic 6.0 da ya resuelta.
1.2.7 Proyectos y ficheros
Cada aplicación que se empieza a desarrollar en Visual Basic 6.0 es un nuevo proyecto. Un
proyecto comprende otras componentes más sencillas, como por ejemplo los formularios (que son
las ventanas de la interface de usuario de la nueva aplicación) y los módulos (que son conjuntos de
funciones y procedimientos sin interface gráfica de usuario).
¿Cómo se guarda un proyecto en el disco? Un proyecto se compone siempre de varios
ficheros (al menos de dos) y hay que preocuparse de guardar cada uno de ellos en el directorio
Capítulo 1: Introducción página 5
adecuado y con el nombre adecuado. Existe siempre un fichero con extensión *.vbp (Visual Basic
Project) que se crea con el comando File/Save Project As. El fichero del proyecto contiene toda la
información de conjunto. Además hay que crear un fichero por cada formulario y por cada módulo
que tenga el proyecto. Los ficheros de los formularios se crean con File/Save Filename As teniendo
como extensión *.frm. Los ficheros de código o módulos se guardan también con el comando
File/Save Filename As y tienen como extensión *.bas si se trata de un módulo estándar o *.cls si
se trata de un módulo de clase (class module).
Clicando en el botón Save en la barra de herramientas se actualizan todos los ficheros del
proyecto. Si no se habían guardado todavía en el disco, Visual Basic 6.0 abre cajas de diálogo Save
As por cada uno de los ficheros que hay que guardar.
1.3 EL ENTORNO DE PROGRAMACIÓN VISUAL BASIC 6.0
Cuando se arranca Visual Basic 6.0
aparece en la pantalla una configuración
similar a la mostrada en la Figura 1.1. En
ella se pueden distinguir los siguientes
elementos:
1. La barra de títulos, la barra de menús y
la barra de herramientas de Visual
Basic 6.0 en modo Diseño (parte
superior de la pantalla).
2. Caja de herramientas (toolbox) con los
controles disponibles (a la izquierda de
la ventana).
3. Formulario (form) en gris, en que se
pueden ir situando los controles (en el
centro). Está dotado de una rejilla (grid) para facilitar la alineación de los controles.
4. Ventana de proyecto, que muestra los formularios y otros módulos de programas que forman
parte de la aplicación (arriba a la derecha).
5. Ventana de Propiedades, en la que se pueden ver las propiedades del objeto seleccionado o del
propio formulario (en el centro a la derecha). Si esta ventana no aparece, se puede hacer visible
con la tecla <F4>.
6. Ventana FormLayout, que permite determinar la forma en que se abrirá la aplicación cuando
comience a ejecutarse (abajo a la derecha).
Existen otras ventanas para edición de código (Code Editor) y para ver variables en tiempo de
ejecución con el depurador o Debugger (ventanas Immediate, Locals y Watch). Todo este conjunto
de herramientas y de ventanas es lo que se llama un entorno integrado de desarrollo o IDE
(Integrated Development Environment).
Construir aplicaciones con Visual Basic 6.0 es muy sencillo: basta crear los controles en el
formulario con ayuda de la toolbox y del ratón, establecer sus propiedades con ayuda de la ventana
de propiedades y programar el código que realice las acciones adecuadas en respuesta a los eventos
o acciones que realice el usuario. A continuación, tras explicar brevemente cómo se utiliza el Help
de Visual Basic, se presentan algunos ejemplos ilustrativos.
Figura 1.1. Entorno de programación de Visual Basic 6.0.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 6
1.4 EL HELP DE VISUAL BASIC 6.0
El Help de Visual Basic 6.0 es de los mejores que existen. Además de que se puede buscar
cualquier tipo de información con la función Index, basta seleccionar una propiedad cualquiera en
la ventana de propiedades o un control cualquiera en el formulario (o el propio formulario), para que
pulsando la tecla <F1> aparezca una ventana de ayuda muy completa. De cada control de muestran
las propiedades, métodos y eventos que soporta, así como ejemplos de aplicación. También se
muestra información similar o relacionada.
Existe además un breve pero interesante curso introductorio sobre Visual Basic 6.0 que se
activa con la opción Help/Contents, seleccionando luego MSDN Contents/Visual Basic Documentation/
Visual Basic Start Page/Getting Started.
1.5 EJEMPLOS
El entorno de programación de Visual Basic 6.0 ofrece muchas posibilidades de adaptación a los
gustos, deseos y preferencias del usuario. Los usuarios expertos tienen siempre una forma propia de
hacer las cosas, pero para los usuarios noveles conviene ofrecer unas ciertas orientaciones al
respecto. Por eso, antes de realizar los ejemplos que siguen se recomienda modificar la
configuración de Visual Basic 6.0 de la siguiente forma:
1. En el menú Tools elegir el comando Options; se abre un cuadro de diálogo con 6 solapas.
2. En la solapa Environment elegir “Promp to Save Changes” en “When a Program Starts” para
que pregunte antes de cada ejecución si se desean guardar los cambios realizados. En la solada
Editor elegir también “Require Variable Declaration” en “Code Settings” para evitar errores al
teclear los nombres de las variables.
3. En la solapa Editor, en Code Settings, dar a “Tab Width” un valor de 4 y elegir la opción “Auto
Indent” (para que ayude a mantener el código legible y ordenado). En Windows Settings elegir
“Default to Full Module View” (para ver todo el código de un formulario en una misma
ventana) y “Procedure Separator” (para que separe cada función de las demás mediante una
línea horizontal).
1.5.1 Ejemplo 1.1: Sencillo programa de colores
y posiciones
En la Figura 1.2 se muestra el formulario y los
controles de un ejemplo muy sencillo que permite
mover una caja de texto por la pantalla, permitiendo
a su vez representarla con cuatro colores diferentes.
En la Tabla 1.2 se describen los controles
utilizados, así como algunas de sus propiedades más
importantes (sobre todo las que se separan de los
valores por defecto). Los ficheros de este proyecto
se llamarán Colores0.vbp y Colores0.frm. Figura 1.2. Formulario y controles del Ejemplo 1.1.
Capítulo 1: Introducción página 7
Control Propiedad Valor Control Propiedad Valor
frmColores0 Name frmColores0 optVerde Name optVerde
Caption Colores Caption Verde
fraColores Name fraColor fraPosicion Name fraPosicion
Caption Colores Caption Posición
optAzul Name optAzul optArriba Name optArriba
Caption Azul Caption Arriba
optRojo Name optRojo optAbajo Name optAbajo
Caption Rojo Caption Abajo
optAmarillo Name optAmarillo txtCaja Name txtCaja
Caption Amarillo Text “”
Tabla 1.2. Objetos y propiedades del ejemplo Colores0.
A continuación se muestra el código correspondiente a los procedimientos de este ejemplo.
Option Explicit
Private Sub Form_Load()
txtCaja.Top = 0
End Sub
Private Sub optArriba_Click()
txtCaja.Top = 0
End Sub
Private Sub optAbajo_Click()
txtCaja.Top = frmColores0.ScaleHeight - txtCaja.Height
End Sub
Private Sub optAzul_Click()
txtCaja.BackColor = vbBlue
End Sub
Private Sub optRojo_Click()
txtCaja.BackColor = vbRed
End Sub
Private Sub optVerde_Click()
txtCaja.BackColor = vbGreen
End Sub
Private Sub optAmarillo_Click()
txtCaja.BackColor = vbYellow
End Sub
Sobre este primer programa en Visual Basic 6.0 se pueden hacer algunos comentarios:
1. El comando Option Explicit sirve para obligar a declarar todas las variables que se utilicen.
Esto impide el cometer errores en los nombres de las variables (confundir masa con mesa, por
ejemplo). En este ejemplo esto no tiene ninguna importancia, pero es conveniente
acostumbrarse a incluir esta opción. Declarar una variable es crearla con un nombre y de un
tipo determinado antes de utilizarla.
2. Cada una de las partes de código que empieza con un Private Sub y termina con un End Sub
es un procedimiento, esto es, una parte de código independiente y reutilizable. El nombre de
uno de estos procedimientos, por ejemplo optAzul_Click(), es típico de Visual Basic. La
primera parte es el nombre de un objeto (control); después va un separador que es el carácter
de subrayado (_); a continuación el nombre de un evento -click, en este caso-, y finalmente
unos paréntesis entre los que irían los argumentos, en caso de que los hubiera.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 8
3. Es también interesante ver cómo se accede desde programa a la propiedad backColor de la
caja de texto que se llama txtCaja: se hace utilizando el punto en la forma txtCaja.BackColor.
Los colores se podrían también introducir con notación hexadecimal (comenzando con &H,
seguidos por dos dígitos entre 00 y FF (es decir, entre 0 y 255 en base 10) para los tres colores
fundamentales, es decir para el Red, Green y Blue (RGB), de derecha a izquierda. Aquí se
han utilizado las constantes simbólicas predefinidas en Visual Basic 6.0: vbRed, vbGreen y
vbBlue (ver Tabla 6.1, en la página 69).
4. Recuérdese que si se desea que el código de todos los eventos aparezca en una misma ventana
hay que activar la opción Default to Full Module View en la solapa Editor del comando
Tools/Options. También puede hacerse directamente en la ventana de código con uno de los
botones que aparecen en la parte inferior izquierda ( ).
5. Es muy importante crear primero el control frame y después, estando seleccionado, colocar
los botones de opción en su interior. No sirve hacerlo a la inversa. Visual Basic supone que
todos los botones de opción que están dentro del mismo frame forman parte del mismo grupo
y sólo permite que uno esté seleccionado.
1.5.2 Ejemplo 1.2: Minicalculadora elemental
En este ejemplo se muestra una calculadora elemental
que permite hacer las cuatro operaciones aritméticas
(Figura 1.3). Los ficheros de este proyecto se pueden
llamar minicalc.vbp y minicalc.frm.
El usuario introduce los datos y clica sobre el
botón correspondiente a la operación que desea
realizar, apareciendo inmediatamente el resultado en la
caja de texto de la derecha.
La Tabla 1.3 muestra los objetos y las propiedades
más importantes de este ejemplo.
Control Propiedad Valor Control Propiedad Valor
frmMinicalc Name frmMinicalc lblEqual Name lblEqual
Caption Minicalculadora Caption =
txtOper1 Name txtOper1 cmdSuma Name cmdSuma
Text Caption +
txtOper2 Name txtOper2 cmdResta Name cmdResta
Text Caption -
txtResult Name txtResult cmdMulti Name cmdProd
Text Caption *
lblOp Name lblOp cmdDivi Name cmdDiv
Caption Caption /
Tabla 1.3. Objetos y propiedades del ejemplo Minicalculadora.
A continuación se muestra el código correspondiente a los procedimientos que gestionan los
eventos de este ejemplo.
Option Explicit
Private Sub cmdDiv_Click()
txtResult.Text = Val(txtOper1.Text) / Val(txtOper2.Text)
lblOp.Caption = "/"
End Sub
Figura 1.3. Minicalculadora elemental.
Capítulo 1: Introducción página 9
Private Sub cmdProd_Click()
txtResult.Text = Val(txtOper1.Text) * Val(txtOper2.Text)
lblOp.Caption = "*"
End Sub
Private Sub cmdResta_Click()
txtResult.Text = Val(txtOper1.Text) - Val(txtOper2.Text)
lblOp.Caption = "-"
End Sub
Private Sub cmdSuma_Click()
txtResult.Text = Val(txtOper1.Text) + Val(txtOper2.Text)
lblOp.Caption = "+"
End Sub
En este ejemplo se ha utilizado repetidamente la función Val() de Visual Basic. Esta función
convierte una serie de caracteres numéricos (un texto formado por cifras) en el número entero o de
punto flotante correspondiente. Sin la llamada a la función Val() el operador + aplicado a cadenas
de caracteres las concatena, y como resultado, por ejemplo, “3+4” daría “34”. No es lo mismo los
caracteres “1” y “2” formando la cadena o string “12” que el número 12; la función val() convierte
cadenas de caracteres numéricos –con los que no se pueden realizar operaciones aritméticas- en los
números correspondientes –con los que sí se puede operar matemáticamente-. Visual Basic 6.0
transforma de modo automático números en cadenas de caracteres y viceversa, pero este es un caso
en el que dicha transformación no funciona porque el operador “+” tiene sentido tanto con números
como con cadenas.
1.5.3 Ejemplo 1.3: Transformación de unidades de temperatura
La Figura 1.4 muestra un programa sencillo que
permite ver la equivalencia entre las escalas de
temperaturas en grados centígrados y grados
Fahrenheit. Los ficheros de este proyecto se pueden
llamar Temperat.vbp y Temperat.frm.
En el centro del formulario aparece una barra
de desplazamiento vertical que permite desplazarse
con incrementos pequeños de 1º C y grandes de 10º
C. Como es habitual, también puede cambiarse el
valor arrastrando con el ratón el cursor de la barra.
Los valores máximos y mínimo de la barra son 100º
C y -100º C.
A ambos lados de la barra aparecen dos
cuadros de texto (color de fondo blanco) donde
aparecen los grados correspondientes a la barra en ambas escalas. Encima aparecen dos rótulos
(labels) que indican la escala de temperaturas correspondiente. Completan la aplicación un botón
Salir que termina la ejecución y un menú File con la única opción Exit, que termina asimismo la
ejecución del programa.
La Tabla 1.4 indica los controles utilizados en este ejemplo junto con las propiedades y los
valores correspondientes.
Figura 1.4. Equivalencia de temperaturas.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 10
Control Propiedad Valor Control Propiedad Valor
frmTemp Name frmTemp vsbTemp Name vsbTemp
Caption Conversor de
temperaturas
Min 100
mnuFile Name mnuFile Max -100
Caption &File SmallChange 1
mnuFileExit Name mnuFileExit LargeChange 10
Caption E&xit Value 0
cmdSalir Name cmdSalir lblCent Name lblCent
Caption Salir Caption Grados Centígrados
Font MS Sans Serif, Bold, 14 Font MS Sans Serif, 10
txtCent Name txtCent lblFahr Name lblFahr
text 0 Caption Grados Fahrenheit
txtFahr Name txtFahr Font MS Sans Serif, 10
text 32
Tabla 1.4. Controles y propiedades del Ejemplo 1.3.
Por otra parte, el código con el que este programa responde a los eventos es el contenido en
los siguientes procedimientos:
Option Explicit
Private Sub cmbSalir_Click()
Beep
End
End Sub
Private Sub mnuFileExit_Click()
End
End Sub
Private Sub vsbTemp_Change()
txtCent.Text = vsbTemp.Value
txtFahr.Text = 32 + 1.8 * vsbTemp.Value
End Sub
Sobre este tercer ejemplo se puede comentar lo siguiente:
1. Se ha utilizado la propiedad Value de la barra de desplazamiento, la cual da el valor actual de
la misma con respecto a los límites inferior y superior, previamente establecidos (-100 y 100).
2. Mediante el procedimiento cmdSalir_Click, se cierra el programa, gracias a la instrucción
End. El cometido de Beep no es otro que el de emitir un pitido a través del altavoz del
ordenador, que indicará que en efecto se ha salido del programa.
3. La función mnuFileExit_Click() y activa desde el menú y termina la ejecución sin emitir
ningún sonido.
4. Finalmente, la función vsbTemp_Change() se activa al cambiar el valor de la barra de
desplazamiento; su efecto es modificar el valor de la propiedad text en las cajas de texto que
muestran la temperatura en cada una de las dos escalas.
Capítulo 1: Introducción página 11
1.5.4 Ejemplo 1.4: Colores RGB
La Figura 1.5 muestra el formulario y los
controles del proyecto Colores. Los ficheros de
este proyecto se pueden llamar Colores.vbp y
Colores.frm.
En este ejemplo se dispone de tres barras de
desplazamiento con las que pueden controlarse
las componentes RGB del color del fondo y del
color del texto de un control label. Dos botones
de opción permiten determinar si los valores de
las barras se aplican al fondo o al texto. Cuando
se cambia del texto al fondo o viceversa los
valores de las barras de desplazamiento (y la
posición de los cursores) cambian de modo
acorde.
A la dcha. de las barras de desplazamiento
tres cajas de texto contienen los valores numéricos de los tres colores (entre 0 y 255). A la izda. tres
labels indican los colores de las tres barras. La Tabla 1.5 muestra los controles y las propiedades
utilizadas en el este ejemplo.
Control Propiedad Valor Control Propiedad Valor
frmColores Name frmColores hsbColor Name hsbColor
Caption Colores Min 0
lblCuadro Name lblCuadro Max 255
Caption INFORMÁTICA 1 SmallChange 1
Font MS Sans Serif, Bold, 24 LargeChange 16
cmdSalir Name cmdSalir Index 0,1,2
Caption Salir Value 0
Font MS Sans Serif, Bold, 10 txtColor Name txtColor
optColor Name optColor Text 0
Index 0,1 Locked True
Caption Fondo, Texto Index 0,1,2
Font MS Sans Serif, Bold, 10 lblColor Name lblColor
Caption Rojo,Verde,Azul
Index 0,1,2
Font MS Sans Serif, 10
Tabla 1.5. Objetos y propiedades del ejemplo Colores.
Una característica importante de este ejemplo es que se han utilizado vectores (arrays) de
controles. Las tres barras se llaman hsbColor y se diferencian por la propiedad Index, que toma los
valores 0, 1 y 2. También las tres cajas de texto, las tres labels y los dos botones de opción son
arrays de controles. Para crear un array de controles basta crear el primero de ellos y luego hacer
Copy y Paste tantas veces como se desee, respondiendo afirmativamente al cuadro de diálogo que
pregunta si desea crear un array.
El procedimiento Sub que contiene el código que gestiona un evento de un array es único para
todo el array, y recibe como argumento la propiedad Index. De este modo que se puede saber
exactamente en qué control del array se ha producido el evento. Así pues, una ventaja de los arrays
de controles es que pueden compartir el código de los eventos y permitir un tratamiento conjunto
Figura 1.5. Colores de fondo y de texto.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 12
por medio de bucles for. A continuación se muestra el código correspondiente a los procedimientos
que tratan los eventos de este ejemplo.
Option Explicit
Public Brojo, Bverde, Bazul As Integer
Public Frojo, Fverde, Fazul As Integer
Private Sub cmdSalir_Click()
End
End Sub
Private Sub Form_Load()
Brojo = 0
Bverde = 0
Bazul = 0
Frojo = 255
Fverde = 255
Fazul = 255
lblCuadro.BackColor = RGB(Brojo, Bverde, Bazul)
lblCuadro.ForeColor = RGB(Frojo, Fverde, Fazul)
End Sub
Private Sub hsbColor_Change(Index As Integer)
If optColor(0).Value = True Then
lblCuadro.BackColor = RGB(hsbColor(0).Value, hsbColor(1).Value, _
hsbColor(2).Value)
Dim i As Integer
For i = 0 To 2
txtColor(i).Text = hsbColor(i).Value
Next i
Else
lblCuadro.ForeColor = RGB(hsbColor(0).Value, hsbColor(1).Value, _
hsbColor(2).Value)
For i = 0 To 2
txtColor(i).Text = hsbColor(i).Value
Next i
End If
End Sub
Private Sub optColor_Click(Index As Integer)
If Index = 0 Then ’Se pasa a cambiar el fondo
Frojo = hsbColor(0).Value
Fverde = hsbColor(1).Value
Fazul = hsbColor(2).Value
hsbColor(0).Value = Brojo
hsbColor(1).Value = Bverde
hsbColor(2).Value = Bazul
Else ’Se pasa a cambiar el texto
Brojo = hsbColor(0).Value
Bverde = hsbColor(1).Value
Bazul = hsbColor(2).Value
hsbColor(0).Value = Frojo
hsbColor(1).Value = Fverde
hsbColor(2).Value = Fazul
End If
End Sub
El código de este ejemplo es un poco más complicado que el de los ejemplos anteriores y
requiere unas ciertas explicaciones adicionales adelantando cuestiones que se verán posteriormente:
1. La función RGB() crea un código de color a partir de sus argumentos: las componentes RGB
(Red, Green and Blue). Estas componentes, cuyo valor se almacena en un byte y puede oscilar
entre 0 y 255, se determinan por medio de las tres barras de desplazamiento.
Capítulo 1: Introducción página 13
2. El color blanco se obtiene con los tres colores fundamentales a su máxima intensidad. El
color negro se obtiene con los tres colores RGB a cero. También se pueden introducir con las
constantes predefinidas vbWhite y vbBlack, respectivamente.
3. Es importante disponer de unas variables globales que almacenen los colores del fondo y del
texto, y que permitan tanto guardar los valores anteriores de las barras como cambiar éstas a
sus nuevos valores cuando se clica en los botones de opción. Las variables globales, definidas
en la parte de definiciones generales del código, fuera de cualquier procedimiento, son
visibles desde cualquier parte del programa. Las variables definidas dentro de una función o
procedimiento sólo son visibles desde dentro de dicha función o procedimiento (variables
locales).
4. La función hsbColor_Change(Index As Integer) se activa cada vez que se cambia el valor en
una cualquiera de las barras de desplazamiento. El argumento Index, que Visual Basic define
automáticamente, indica cuál de las barras del array es la que ha cambiado de valor (la 0, la 1
ó la 2). En este ejemplo dicho argumento no se ha utilizado, pero está disponible por si se
hubiera querido utilizar en el código.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 14
2. ENTORNO DE PROGRAMACIÓN VISUAL BASIC 6.0
2.1 INTRODUCCIÓN: ¿QUÉ ES VISUAL BASIC 6.0?
Visual Basic 6.0 es una excelente herramienta de programación que permite crear aplicaciones
propias (programas) para Windows 95/98 o Windows NT. Con ella se puede crear desde una simple
calculadora hasta una hoja de cálculo de la talla de Excel (en sus primeras versiones...), pasando por
un procesador de textos o cualquier otra aplicación que se le ocurra al programador. Sus
aplicaciones en Ingeniería son casi ilimitadas: representación de movimientos mecánicos o de
funciones matemáticas, gráficas termodinámicas, simulación de circuitos, etc.
Este programa permite crear ventanas, botones, menús y cualquier otro elemento de Windows
de una forma fácil e intuitiva. El lenguaje de programación que se utilizará será el Basic, que se
describirá en el siguiente capítulo.
A continuación se presentarán algunos aspectos del entorno de trabajo de Visual Basic 6.0:
menús, opciones, herramientas, propiedades, etc.
2.2 EL ENTORNO DE VISUAL BASIC 6.0
Visual Basic 6.0 tiene todos los elementos que caracterizan a los programas de Windows e incluso
alguno menos habitual. En cualquier caso, el entorno de Visual Basic 6.0 es muy lógico y natural, y
además se puede obtener una descripción de la mayoría de los elementos clicando en ellos para
seleccionarlos y pulsando luego la tecla <F1>.
2.2.1 La barra de menús y las barras de herramientas
La barra de menús de Visual Basic 6.0 resulta similar a la de cualquier otra aplicación de
Windows, tal y como aparece en la Figura 2.2. Bajo dicha barra aparecen las barras de
herramientas, con una serie de botones que permiten acceder fácilmente a las opciones más
importantes de los menús. En Visual Basic 6.0 existen cuatro barras de herramientas: Debug, Edit,
Form Editor y Standard. Por defecto sólo aparece la barra Standard, aunque en la Figura 2.2 se
muestran las cuatro. Clicando con el botón derecho sobre cualquiera de las barras de herramientas
aparece un menú contextual con el que se puede hacer aparecer y ocultar cualquiera de las barras. Al
igual que en otras aplicaciones de Windows 95/98/NT, también pueden modificarse las barras
añadiendo o eliminando botones (opción Customize).
En la barra de herramientas Standard también se pueden ver a la
derecha dos recuadros con números, que representan cuatro propiedades
del formulario referentes a su posición y tamaño que se verán más
adelante: Top y Left, que indican la posición de la esquina superior
izquierda del formulario, y también Height y Width, que describen el
tamaño del mismo en unas unidades llamadas twips, que se
corresponden con la vigésima parte de un punto (una pulgada tiene 72
puntos y 1440 twips). Las dimensiones de un control aparecen también
cuando con el ratón se arrastra sobre el formulario, según se puede ver
en la Figura 2.1. Los botones de la barra de herramientas Standard responden a las funciones más
importantes: abrir y/o guardar nuevos proyectos, añadir formularios, hacer visibles las distintas
ventanas del entorno de desarrollo, etc. Todos los botones tienen su correspondiente comando en
Figura 2.1. Información visual
sobre el tamaño de un control.
Capítulo 2: El entorno de programación Visual Basic 6.0 página 15
alguno de los menús. Son importantes los botones que permiten arrancar y/o parar la
ejecución de un proyecto, pasando de modo diseño a modo de ejecución y viceversa.
Figura 2.2. Barra de menús y barras de herramientas de Visual Basic 6.0.
El menú File tiene pocas novedades. Lo más importante es la distinción entre proyectos y
todos los demás ficheros. Como ya se ha dicho, un proyecto reúne y organiza todos los ficheros que
componen el programa o aplicación (hace la función de una carpeta que contuviera apuntes). Estos
ficheros pueden ser formularios, módulos, clases, recursos, etc. Visual Basic 6.0 permite tener más
de un proyecto abierto simultáneamente, lo cual puede ser útil en ocasiones. Con el comando
AddProject se añade un nuevo proyecto en la ventana Project Manager. Con los comandos Open
Project o New Project se abre o se crea un nuevo proyecto, pero cerrando el o los proyectos que
estuvieran abiertos previamente. En este menú está el comando Make ProjectName.exe, que
permite crear ejecutables de los proyectos.
Tampoco el menú Edit aporta cambios importantes sobre lo que es habitual. Por el contrario
el menú View, generalmente de poca utilidad, es bastante propio de Visual Basic 6.0. Este menú
permite hacer aparecer en pantalla las distintas ventanas del entorno de desarrollo, así como acceder
a un formulario o al código relacionado con un control (que también aparece si se clica dos veces en
dicho control), y manejar funciones y procedimientos.
El menú Project permite añadir distintos tipos de elementos a un proyecto (formularios,
módulos, etc.). Con Project/Properties se puede elegir el tipo de proyecto y determinar el
formulario con el que se arrancará la aplicación (Startup Object). Con el comando Components se
pueden añadir nuevos controles a la Toolbox que aparece a la izquierda de la pantalla.
El menú Format contiene opciones para controlar el aspecto de la aplicación (alinear
controles, espaciarlos uniformemente, etc.). Los menús Debug y Run permiten controlar la
ejecución de las aplicaciones. Con Debug se puede ver en detalle cómo funcionan, ejecutando paso
a paso, yendo hasta una línea de código determinada, etc. Esto es especialmente útil cuando haya
que encontrar algunos errores ejecutando paso a paso, o viendo resultados intermedios.
En el menú Tools se encuentran los comandos para arrancar el Menu Editor (para crear
menús, como se verá en el Apartado 5, a partir de la página 64, dedicado a los Menús) y para
establecer las opciones del programa. En Tools/Options se encuentran las opciones relativas al
proyecto en el que se trabaja. La lengüeta Environment determina las propiedades del entorno del
proyecto, como las opciones para actualizar o no los ficheros antes de cada ejecución; en General
se establece lo referente a la retícula o grid que aparece en el formulario; Editor permite establecer
la necesidad de declarar todas las variables junto con otras opciones de edición, como si se quieren
ver o no todos los procedimientos juntos en la misma ventana, y si se quiere ver una línea
separadora entre procedimientos; Editor Format permite seleccionar el tipo de letra y los códigos
de color con los que aparecen los distintos elementos del código. La opción Advanced hace
referencia entre otras cosas a la opción de utilizar Visual Basic 6.0 en dos formatos SDI (Single
Document Interface) y MDI (Multiple Document Interface descritos en el Apartado 4.5, en la
página 61).
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 16
Por último, la ayuda (siempre imprescindible y en el caso de Visual
Basic 6.0 particularmente bien hecha) que se encuentra en el menú Help, se
basa fundamentalmente en una clasificación temática ordenada de la
información disponible (Contents), en una clasificación alfabética de la
información (Index) y en la búsqueda de información sobre algún tema por
el nombre (Search). Como ya se ha mencionado, la tecla <F1> permite una
ayuda directa sensible al contexto, esto es dependiente de donde se haya
clicado con el ratón (o de lo que esté seleccionado).
2.2.2 Las herramientas (toolbox)
La Figura 2.3 muestra la caja de herramientas, que incluye los controles
con los que se puede diseñar la pantalla de la aplicación. Estos controles
son por ejemplo botones, etiquetas, cajas de texto, zonas gráficas, etc. Para
introducir un control en el formulario simplemente hay que clicar en el
icono adecuado de la toolbox y colocarlo en el formulario con la posición y
el tamaño deseado, clicando y arrastrando con el ratón. Clicando dos veces
sobre el icono de un control aparece éste en el centro del formulario y se
puede modificar su tamaño y/o trasladar con el ratón como se desee.
El número de controles que pueden aparecer en esta ventana varía con
la configuración del sistema. Para introducir nuevos componentes se utiliza
el comando Components en el menú Project, con lo cual se abre el cuadro
de diálogo mostrado en la Figura 2.4.
2.3 FORMULARIOS (FORMS) Y MÓDULOS
Los formularios son las zonas de la pantalla sobre
las que se diseña el programa y sobre las que se
sitúan los controles o herramientas de la toolbox.
Al ejecutar el programa, el form se convertirá en
la ventana de la aplicación, donde aparecerán los
botones, el texto, los gráficos, etc.
Para lograr una mejor presentación existe
una malla o retícula (grid) que permite alinear los
controles manualmente de una forma precisa
(evitando tener que introducir coordenadas
continuamente). Esta malla sólo será visible en el
proceso de diseño del programa; al ejecutarlo no
se verá. De cualquier forma, se puede desactivar
la malla o cambiar sus características en el menú
Tools/Options/General, cambiando la opción
Align Controls to Grid.
Exteriormente, los formularios tienen una estructura similar a la de cualquier ventana. Sin
embargo, también poseen un código de programación que estará escrito en Basic, y que controlará
algunos aspectos del formulario, sobre todo en la forma de reaccionar ante las acciones del usuario
(eventos). El formulario y los controles en él situados serán el esqueleto o la base del programa. Una
aplicación puede tener varios formularios, pero siempre habrá uno con el que arrancará la
aplicación; este formulario se determina a partir del menú Project/Properties, en Startup Objects.
Figura 2.3. Caja de
componentes (Toolbox).
Figura 2.4. Cuadro de diálogo Components.
Capítulo 2: El entorno de programación Visual Basic 6.0 página 17
Resumiendo, cuando se vaya a crear un programa en Visual Basic 6.0 habrá que dar dos
pasos:
1. Diseñar y preparar la parte gráfica (formularios, botones, menús, etc.)
2. Realizar la programación que gestione la respuesta del programa ante los distintos eventos.
2.4 LA VENTANA DE PROYECTO (PROJECT)
Esta ventana, mostrada en la Figura 2.5, permite acceder a
los distintos formularios y módulos que componen el
proyecto. Desde ella se puede ver el diseño gráfico de
dichos formularios (botón View Object ), y también
permite editar el código que contienen (botón View Code
). Estos botones están situados en la parte superior de
la ventana, debajo de la barra de títulos.
Los módulos estándar (ficheros *.bas) contienen
sólo código que, en general, puede ser utilizado por
distintos formularios y/o controles del proyecto e incluso
por varios proyectos. Por ejemplo puede prepararse un
módulo estándar de funciones matemáticas que sea de
utilidad general. Normalmente contienen siempre algunas
declaraciones de variables globales o Public, que serán
accesibles directamente desde todos los formularios.
Los módulos de clase (ficheros *.cls) contienen
clases definidas por el usuario. Las clases son como
formularios o controles complejos, sin interface gráfica de
usuario.
2.5 LA VENTANA DE PROPIEDADES (PROPERTIES)
Todos los objetos Visual Basic 6.0 tienen unas
propiedades que los definen: su nombre (Name), su
etiqueta o título (Caption), el texto que contiene (Text), su
tamaño y posición, su color, si está activo o no (Enabled),
etc. La Figura 2.6 muestra parcialmente las propiedades
de un formulario. Todas estas propiedades se almacenan
dentro de cada control o formulario en forma de
estructura (similar a las del lenguaje C). Por tanto, si por
ejemplo en algún momento se quiere modificar el nombre
de un botón basta con hacerlo en la ventana de
propiedades (al diseñar el programa) o en el código en
Basic (durante la ejecución), mediante el operador punto
(.), en la forma:
Boton1.Name = "NuevoNombre"
Para realizar una modificación de las propiedades de
un objeto durante el diseño del programa, se activará la
ventana de propiedades (con el menú, con el botón de la
Figura 2.5. Ventana de proyecto.
Figura 2.6. Ventana de propiedades.
Figura 2.7. Ventana Form Layout.
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero página 18
barra de herramientas o pulsando <F4>. Esta ventana tiene dos lengüetas, que permiten ordenar las
propiedades alfabéticamente o por categorías. Utilizando la forma que sea más cómoda se
localizará con ayuda de la barra de desplazamiento la propiedad que se quiera modificar. Al clicar
sobre ella puede activarse un menú desplegable con las distintas opciones, o bien puede modificarse
directamente el valor de la propiedad. Si esta propiedad tiene sólo unos valores fijos (por ejemplo,
los colores), puede abrirse un cuadro de diálogo para elegir un color, o el tamaño y tipo de letra que
se desee si se trata de una propiedad Font.
La Figura 2.7 muestra la ventana FormLayout, que permite determinar la posición en la que
el formulario aparecerá sobre la pantalla cuando se haga visible al ejecutar la aplicación.
2.6 CREACIÓN DE PROGRAMAS EJECUTABLES
Una vez finalizada la programación de la nueva aplicación, la siguiente tarea suele consistir en la
creación de un programa ejecutable para su distribución e instalación en cuantos ordenadores se
desee, incluso aunque en ellos no esté instalado Visual Basic 6.0.
Para crear un programa ejecutable se utiliza el comando Make nombreProyecto.exe … en el
menú File. De esta manera se generará un fichero cuya extensión será *.exe. Para que este programa
funcione en un ordenador solamente se necesita que el fichero MSVBVM60.DLL esté instalado en
el directorio c:WindowsSystem o c:WinntSystem32. En el caso de proyectos más complejos en
los que se utilicen muchos controles pueden ser necesarios más ficheros, la mayoría de ellos con
extensiones *.ocx, *.vbx o *.dll. Para saber en cada caso cuáles son los ficheros necesarios se puede
consultar el fichero *.vbp que contiene la descripción completa del proyecto. Casi todos esos
ficheros necesarios se instalan automáticamente al instalar el compilador de Visual Basic 6.0 en el
ordenador.
En el caso de el programa se vaya a utilizar en un ordenador en el que no esté instalado Visual
Basic o de que en el proyecto se hayan utilizado controles comerciales (como los Crystal Reports
para la creación de informes, los Sheridan Data Widgets o los True DBGrid de Apex para la
gestión de bases de datos, etc.), puede resultar interesante construir unos disquetes de instalación
que simplifiquen la tarea de instalar el programa en cualquier ordenador sin tener que ver en cada
caso cuáles son los ficheros que faltan. Visual Basic 6.0 dispone de un Asistente (Wizard) que,
interactivamente, simplifica enormemente la tarea de creación de disquetes de instalación. Este
Asistente está en el mismo grupo de programas que Visual Basic 6.0 y se llama Package and
Deployement Wizard.
Capítulo 2: El entorno de programación Visual Basic 6.0 página 19
2.7 CÓMO UTILIZAR EL HELP
Visual Basic 6.0 dispone de un Help
excelente, como la mayoría de las
aplicaciones de Microsoft. En esta
nueva versión la ayuda se ofrece a
través de una interface de usuario
similar a la de Internet Explorer.
Estando seleccionado un control, una
propiedad o un formulario, o estando
seleccionada una palabra clave en una
ventana de código, esta ayuda se
puede utilizar de modo sensible al
contexto pulsando la tecla <F1>.
También se puede ver toda la
información disponible de modo
general y ordenado por temas con el
comando Help/Contents.
Otra forma de acceder a la ayuda
es mediante las opciones del menú
Help. Así mediante la opción Index se
puede obtener información sobre
muchos términos relacionados con
Visual Basic 6.0.
Una vez obtenida la ayuda sobre
el término solicitado se pueden
encontrar temas relacionados con ese
término en la opción See Also. En el
caso de que se haya solicitado ayuda
sobre un determinado tipo de control
(en la Figura 2.9 se ha hecho con los
botones de comando), se podría
acceder también a la ayuda sobre
todos y cada uno de sus propiedades, eventos y métodos con las opciones Properties, Methods y
Events, respectivamente.
La solapa Contents de la ventana de ayuda sirve para acceder a una pantalla en la que la ayuda
está ordenada por temas, la de Index sirve para acceder a una pantalla en la que se podrá realizar
una búsqueda a partir de un término introducido por el usuario, entre una gran lista de términos
ordenados alfabéticamente. Al teclear las primeras letras del término, la lista de palabras se va
desplazando de modo automático en busca de la palabra buscada. El botón Back sirve para regresar
a la pantalla desde la que se ha llegado a la actual y con el botón Print se puede imprimir el
contenido de la ayuda.
CONTINUARA..............