Apuntes Visual Basic
Apuntes Visual Basic
Barra de herramientas:
Diseñador de formularios
1
Es la ventana en la que se diseñará la interfaz de la aplicación, en ella se pueden agregar controles
gráficos e imágenes. Cada formulario de una aplicación aparecerá en su propia ventana.
Cuadro de herramientas
2
En el cuadro de herramientas podemos encontrar un conjunto de herramientas que permiten
insertar los objetos o controles en el formulario durante en tiempo de diseño, los objetos
más comunes son botones(command), etiqueta (label), cuadros de imagen(Picture),
imágenes(Image), etc...
Si hacemos doble click con el ratón sobre alguno de ellos se insertará automáticamente en la
ventana del formulario.
Ventana de propiedades
3
Los objetos tiene asociados unas propiedades que describen sus atributos, valores,
comportamiento y apariencia del objeto.
Ventana de proyectos
4
Módulo Estándar: Sólo pueden contener código. Tienen una extensión .BAS
Controles ActiveX: Controles que se pueden añadir al cuadro de herramientas e incluirlos en un
formulario
En esta ventana es donde se incluye el código de la aplicación. Se creará una ventana de código
para cada formulario o módulo de la aplicación.
Para tener acceso a la ventana de edición, la forma más sencilla es hacer doble click sobre
el formulario o sobre el objeto al cual quiera incluir código.
5
comunicar al procedimiento alguna información que necesite o que sea el propio procedimiento quien
devuelva algún valor.
En un módulo de formulario el código que se sitúa se refiere tanto a dicho formulario como al resto
de objetos que estén dibujados en él. En este tipo de módulos cabe destacar los procedimientos de
evento que se encargan de dar una respuesta programada a los eventos que ocurren en la
aplicación. Si has escrito código para algún procedimiento de evento, éste aparece en negrita en la
lista de procedimiento de la ventana de código.
El código de carácter general o que puede compartir en más de un proyecto, se sitúa en un módulo
general. El código que aparece en este tipo de módulos no se relaciona con un objeto determinado,
sino que tiene carácter general. En los módulos generales no se pueden incluir procedimientos de
evento como en el caso de los módulos de formulario.
Es conveniente añadir comentarios a las líneas de código que escribas, de esta forma podrás
entender los programas aunque haga tiempo que los escribistes. Para añadir un comentario en una
línea se utiliza el carácter ' (apóstrofe).
Un objeto en Visual Basic se caracteriza por tres componentes: propiedades, métodos y eventos.
Las propiedades son aquellas características o atributos que permiten establecer el htmlecto de un
objeto como el color, tamaño, posición, etc... O el estado del mismo: activo, maximizado, ect...
Existen propiedades que sólo están disponibles en tiempo de diseño y otras que sólo están
disponibles en tiempo de ejecución.
Los métodos son pequeños programas que actúan sobre un determinado objeto y que establecen su
comportamiento. Así un objeto puede moverse, ocultarse, etc... Puedes utilizar cualquier método que
forme parte del objeto.
Los eventos son las situaciones que se producen y que nos interesan identificar para establecer
algún tipo de de respuesta por parte del objeto. Así, puedes hacer click sobre un determinado objeto,
creando de esta forma un evento reconocible por el objeto. Que suceda algo o no como respuesta a
este evento dependerá de que hayas programado alguna acción en el correspondiente
procedimiento de evento.
Establecer propiedades
Cuando insertas objetos en un formulario tienes que establecer algunas propiedades que presenta.
Las propiedades son aquellas caracteríticas propias del objeto que hacen que se distingan de otro
objeto.
En una aplicación Windows podemos distinguir diversos tipos de ventanas, aunque lo normal es
identificar una ventana inicial que se puede maximizar o minimizar y uno o más cuadros de diálogo
cuyo tamaño suele ser fijo. Sin embargo, debes darte cuenta que las barras de herramientas también
son ventanas de una aplicación.
. Normalmente la ventana inicial o de arranque será la que presente el menú principal, formado por
menús desplegables en uno o más de un nivel. El resto de ventanas no deberían contener menús
desplegables, aunque puede darse el caso.
Algunas propiedades de los formularios que se pueden establecer en tiempo de diseño son:
BorderSytle: Establece el estilo del borde del formulario.
Caption: Establece el texto que aparece en la barra de título del formulario.
ControlBox: Permite mostrar o no el menú de control de las ventanas de Windows.
6
Enabled: Establece si el formulario puede responder o no a los eventos que generes.
Font: Establece las características de los objetos de texto que se sitúen en el formulario.
Icon: Cambia el icono que representa el formulario.
Left, Top, Height, Width: Establecen la posición del formulario en la pantalla así como las
dimensiones.
MaxButton y MinButton: Establece si se podrá maximizar o minimizar el formulario.
MousePointer: Modificar el puntero del ratón.
Visible: Establece si el formulario se mostrará visible en tiempo de ejecución.
WindowState: Establece el modo en que se carga inicialmente el formulario, normal,
maximizado o minimizado.
Todas esta propiedas están disponibles en tiempo de diseñoa través de la ventana de propiedades.
En tiempo de ejecución se puede cambiar o consultar el valor de algunas propiedades que sólo
tienen sentido en el tiempo de desarrollo.
NombreObjeto.NombrePropiedad.
7
Timer Temporizador tmr
Vertical scroll bar Barra de desplazamiento vertical vsb
Utilizar Métodos
Una vez se ha establecido la parte estructural del formulario, se pasa a programar el comportamiento
que debe seguir, de forma que cumpla con el objetivo para el que desees crearlo, utilizando los
métodos.
Un método es un componente más de del objeto, que puede ser utilizado directamente. Para ello
debes llamar al método e indicarle sobre qué objeto deseas aplicarlo, que deberá admitirlo.
La síntaxis en este caso debe ser: NombreObjeto.NombreMétodo[par1,...,parn], donde la lista de
parámetros [par1...,parn] es opcional de cada método.
Un ejemplo es:
Si quieres mostrar un formulario llamado frmPrimero la síntaxis será: frmPrimero.Show 1
El valor 1 nos indica que aparecerá de forma modal y si el valor es 0 aparecerá de forma no modal.
El conjunto de eventos está predefinido en Visual Basic por lo cual no puedes crear numevo eventos
para los objetos.
El conjunto de evento reconocibles por un objeto está ligado con los procedimientos de evento. Estos
procedimientos son unidades de código que le permiten especificar la respuesta que debe dar un
objeto ante la ocurrencia de un evento que puede reconocer.
La definición del procedimiento de envento tiene la siguiente forma:
Private Sub NombreObjeto_NombreEvento([Lista de parámetros])
...intrucciones...
End Sub
Al usar menús se evita ocupar mucho espacio en las ventanas, ya que estos sólo aparecen
cuando se despliegan explícitamente. Además, se
pueden crear hasta cinco niveles de menús, por lo que el número de comandos y posibilidades
es suficientemente amplio.
En Visual Basic se trabajo con el editor de menús para crear, establecer propiedades y modificar
los menúes. Para acceder a él basta con pulsar el siguiente botón en la barra de herramientas:
Este botón sólo estará activo cuando esté abierto el formulario, ya que el menú siempre está
8
asociado con un determinado formulario.
El editor de menús presenta las siguientes propiedades que se pueden aplicar sobre los menús:
Caption: Representa es texto que aparecerá en el menú.
Name: Es el nombre del control. Se puede anteponer el prefijo mnu más el texto del título del
menú.
Checked: Establece si debe aparecer una marca de verificación a la izquierda del texto del
objeto del menú.
La marca la puedes utilizar cuando deseas informar de la opción que está activada en un
momento determinado.
Enabled: Indica si el objeto podrá recibir eventos del usuario. Si tiene el valor False el elemento
aparecerá
atenuado en el menú.
Visible: Indica si el objeto debe mostrarse o no, si se establece este valor a False, los elementos
situados
a la derecha ocupan el lugar del elemento no visible.
WindowsList: Establece el valor que determina si un objeto de menú mantiene una lista de las
ventanas
MDI secundarias del formulario actual.
Elementos del menu
Utilizando los botones de sangría se puede determinar el nivel del objeto menú que quieras
seleccionar. Así, los títulos de menú se sitúan en el nivel superior, mostrándose en la lista
inferior del editor de menús, lo más a la izquierda posible.
En muchas aplicaciones se pueden ver unas barras horizontales en los menús desplegables
que realizan la función de dividir en secciones dichos menús. Este elemento es conocido
como un separador, y sirve para separar aquellos comandos del menú que tengan un
motivo en común.
9
Para crear un separador, basta con introducir un guión (-) en la propiedad Caption. No se puede
crear un elemento en un nivel inferior inmediatamente después de un separador, es decir, no
puedes tener como título de menú un separador.
Teclas de metodo abreviado
Al introducir el carácter & el menú está creando una tecla de acceso a dicho objeto. Esta tecla se
representa subrayada en el texto de menú y respresenta la tecla del teclado que el usuario puede
pulsar para ejecutar la acción. Dicha tecla se corresponde con la letra que sigue al caracter &
en la
propiedad Caption del objeto menú.
Si se trata de un título de menú tienes que usar la tecla de acceso en combinación con la
telca [Alt.].
Una vez abierto un título de menú y desplegado sus elementos, para acceder rápidamente a
uno de ellos, puedes usar la tecla de acceso directamente.
Tienes que tener cuidado en no utilizar las mismas teclas de acceso para elementos de un mismo
nivel de menú ya que entonces no funcionarán. El editor de menú también admite la
incorporación de teclas de método abreviado. Las abreviaturas del menú son combinaciones
de teclas que se pueden utilizar en lugar de elegir el elemento del menú correspondiente.
Para crear una tecla de método abreviado tienes que utilizar la propiedad Shortcut, a la que
puedes acceder al crear el menú desde el editor de menús.
Eventos de menu
Estos menús aparecen cuando hacemos click con el botón secundario del ratón, y suele
presentar opciones que se corresponden con las acciones más usuales de la aplicación.
Este menú puede aparecer en cualquier ventana de la aplicación a diferencia de los menús
anteriores.
Un menú contextual no se asocia con un determinado objeto situado en el formulario, al ser igual
que un menú desplegable está asociado a un formulario.
Para mostrar un menú contextual tienes que usar el método PopupMenu del formulario donde lo
estés creando. La síntaxis es la siguiente:
[objeto].PopupMenu NombreMenú[,indicadores[,x[,y[,boldcommand]]]]
Donde los corchetes especifican parámetros opcionales. Si no se especifica el objeto sobre el
que se aplica el método, Visual Basic entenderá que es sobre el formulario actual.
10
Opciones de menu contextual
4. Cuadros de diálogo
Introduccion
La mayoría de las aplicaciones Windows hacen uso de los cuadros de diálogo para establecer
las opciones o introducir información que necesitan para realizar una acción indicada por el
usuario.
Otro uso posible de los cuadros de diálogo es presentar información al usuario. Los cuadros
de diálogo se caracterizan por ser modales y no permitir poder cambiar el tamaño de la ventana,
además no deberán tener una barra de menús desplegables.
En Visual Basic podemos crear tres tipos de cuadros de diálogos: personalizados, predefinidos
y diálogo común.
Cuadros predefinidos
11
vbCritical 16 Muestra el icono de mensaje crítico
vbQuestion 32 Icono de interrogación
vbExclamation 48 Icono de exclamación
vbInformation 64 Icono de mensaje de información
vbAplicationModal 0 Cuadro de diálogo modal de la aplicación
vbSystemModal 4096 Cuadro de diálogo modal del sistema
El parámetro botones es de valor numérico, y además de los botones que aparecen en el cuadro
de diálogo, también puede indicar el icono que acompañe al mensaje y el tipo de diálogo modal
que es.
Cuando un cuadro de diálogo es modal de aplicacióen tienes que cerrarlo para interactuar con
otra ventana de la misma aplicación. Cuando es un cuadro de diálogo modal del sistema, todas
las aplicaciones que estén ejecutándose se suspenden hasta que el usuario responda al cuadro
de diálogo.
El cuadro InputBox se consigue a través de la función InputBox. Se utiliza cuando se necesita
que el usuario introduzca alguna información. La síntaxis correcta es:
InputBox(mensaje [,título][, estándar][, posx][,posy][, archivoAyuda , contexto])
Control Dialogo Comun
Nos permite mostrar cinco cuadros de diálogo estándar en las aplicaciones. Estos cuadros
de diálogo son:
Abrir
Guardar Como
Imprimir
Fuente
Color
También podemos hacer uso del control diálogo para llamar al motor de Ayuda de Windows
de forma que pueda
presentar el archivo de ayuda en línea de la aplicación.
Al crear un objeto diálogo común, se sitúa en una posición y un tamaño estándar.
En el caso de quere utilizar el cuadro de diálogo común Guardar como:
DialogTitle: Es el texto que debe aparecer en la barra de título del cuadro de diálogo.
DefaultExt: Es la extensión con la que se guardará el archivo.
Filter: Indica la extensión de los archivos que deben mostrarse en el cuadro de diálogo.
En el caso de la propiedad Filter se puede indicar que muestre más de un tipo de archivos.
Para esto se utiliza la síntaxis:
Archivos de Texto|*.txt|Base de datos|*.mdb
Con el ejemplo anterior nos aparecerán todos los archivos de texto(*.txt) y los de base
de datos(*.mdb).
12
Los métodos disponibles para los cuadros de diálogo son:
ShowOpen: Abrir.
ShowSave: Guardar como.
ShowColor: Cuadro de diálogo color.
ShowFont: Tipo de fuente.
ShowPrinter: Imprimir.
ShowHelp: Llamada a la ayuda de Windows
5. Controles Básicos
Introduccion
Al diseñar una aplicación con Visual Basic lo primero que deberemos hacer es planear
la interfaz, que está constituida por el conjunto de formularios que aparecen a lo largo
de la ejecución de la aplicación.
Los controles son los elementos gráficos que aparecen en los formularios y que sirven
para obtener datos y presentar la salida que produce la aplicación.
Entre los numerosos controles que presenta Visua Basic caben destacar los básicos,
que aparecen en casitodas las aplicaciones de Visual Basic como etiquetas, cuadros
de texto, botones de comando, etc... Cada uno de estos controles son tratados como
bojetos en Visual Basic, por lo que no tienes que olvidar que tienen su propio conjunto
13
de propiedades, métodos y eventos.
Entrada de datos
Dos controles muy relacionados y que se utilizan en la función de entrada de datos son
las etiquetas y los cuadros de texto.
Las etiquetas son controles que nos permiten mostrar texto en los formularios y que
tienen la particularidad de que el usuario no puede modificar
Las etiquetas son controles que nos permiten mostrar texto en los formularios y que
tienen la particularidad de que el usuario no puede modificar
El control de etiqueta es:
Los cuadro de texto son el control estándar de entrada de datos en Visual Basic.
Permiten al usuario de la aplicación introducir información.
El control del cuadro de texto es:
Propiedad Definición
Establece la alineación del texto de la
Alignment
etiqueta
Si su valor es True, el tamaño de la
Autosize etiqueta se adapta automáticamente a
su contenido
Caption Texto que se visualiza en la etiqueta
Enabled Permite o no interactuar con la etiqueta
Establece la fuente, tamaño y htmlecto
Font
del texto
Los cuadros de texto son semejantes a las etiquetas, pero con la diferencia que el
usuario puede modificar su contenido. El texto que se introduce puede ser tanto
numérico como alfanumérico (números y letras).
A diferencia de la etiqueta, el tamaño del texto es fijo al no permitir la propiedad
autosize.
Algunas propiedades del objeto cuadro de texto son:
Propiedad Definición
Alineación de la información
Alignment
introducida.
Permite o no que se puedan realizar
Enabled
acciones sobre el cuadro de texto
Font Igual que en el caso de las
14
etiquetas
Permite introducir más de una línea
Multiline
de texto en el cuadro
Estable el caracter que se muestra
PasswordChar al realizar una entrada en el objeto.
Sólo se mostrará dicho caracter
ScrollBars Muestra barras de desplazamiento
Establece el orden de tabulación
TabIndex
fijado para el objeto
Indica si al utilizar el tabulador se
TabStop puede desplazar entre los controles
del formulario
Text Texto que se visualiza en el control
Control Marco
Botones de comando
15
aparecerá en el botón. También se pueden crear teclas de acceso al botón.
Bloquear controles
Cuando estén situados los controles en el formulario se pueden bloquear para que no
puedan moverse de forma accidental.
Para esto deberemos pulsar en la barra de herramientas:
Cuando actives este botón y mientras no desbloques los controles utilizando la misma
opción no se podrán mover ninguno de los controles del formulario activo.
Sin embargo en si abres otro formulario que no tenga los controles bloqueados si se
podrán mover. Si añades más controles a un formulario bloqueado estos quedan
bloqueados automáticamente.
6. Controles básicos II
Introduccion
Al diseñar una aplicación con Visual Basic lo primero que deberemos hacer es planear la interfaz, que est
formularios que aparecen a lo largo de la ejecución de la aplicación.
Los controles son los elementos gráficos que aparecen en los formularios y que sirven para obtener datos
aplicación.
Entre los numerosos controles que presenta Visua Basic caben destacar los básicos, que aparecen en ca
Basic como etiquetas, cuadros de texto, botones de comando, etc... Cada uno de estos controles son trata
por lo que no tienes que olvidar que tienen su propio conjunto de propiedades, métodos y eventos.
Entrada de datos
Dos controles muy relacionados y que se utilizan en la función de entrada de datos son
las etiquetas y los cuadros de texto.
Las etiquetas son controles que nos permiten mostrar texto en los formularios y que
tienen la particularidad de que el usuario no puede modificar
Las etiquetas son controles que nos permiten mostrar texto en los formularios y que
tienen la particularidad de que el usuario no puede modificar
El control de etiqueta es:
Los cuadro de texto son el control estándar de entrada de datos en Visual Basic. Permiten
al usuario de la aplicación introducir información.
16
El control del cuadro de texto es:
Propiedad Definición
Establece la alineación del texto de la
Alignment
etiqueta
Si su valor es True, el tamaño de la
Autosize etiqueta se adapta automáticamente a su
contenido
Caption Texto que se visualiza en la etiqueta
Enabled Permite o no interactuar con la etiqueta
Establece la fuente, tamaño y htmlecto
Font
del texto
Los cuadros de texto son semejantes a las etiquetas, pero con la diferencia que el usuario
puede modificar su contenido. El texto que se introduce puede ser tanto numérico como
alfanumérico (números y letras).
Propiedad Definición
Alineación de la información
Alignment
introducida.
Permite o no que se puedan realizar
Enabled
acciones sobre el cuadro de texto
Font Igual que en el caso de las etiquetas
Permite introducir más de una línea
Multiline
de texto en el cuadro
Estable el caracter que se muestra al
PasswordChar realizar una entrada en el objeto. Sólo
se mostrará dicho caracter
ScrollBars Muestra barras de desplazamiento
Establece el orden de tabulación
TabIndex
fijado para el objeto
TabStop Indica si al utilizar el tabulador se
17
puede desplazar entre los controles
del formulario
Text Texto que se visualiza en el control
Control Marco
Botones de comando
Bloquear controles
Cuando estén situados los controles en el formulario se pueden bloquear para que no
puedan moverse de forma accidental.
18
Para esto deberemos pulsar en la barra de herramientas:
Cuando actives este botón y mientras no desbloques los controles utilizando la misma
opción no se podrán mover ninguno de los controles del formulario activo.
Sin embargo en si abres otro formulario que no tenga los controles bloqueados si se
podrán mover. Si añades más controles a un formulario bloqueado estos quedan
bloqueados automáticamente.
6. Controles básicos II
Introduccion
Al diseñar una aplicación con Visual Basic lo primero que deberemos hacer es planear la interfaz,
que está constituida por el conjunto de formularios que aparecen a lo largo de la ejecución de la
aplicación.
Los controles son los elementos gráficos que aparecen en los formularios y que sirven para
obtener datos y presentar la salida que produce la aplicación.
Entre los numerosos controles que presenta Visua Basic caben destacar los básicos, que
aparecen en casitodas las aplicaciones de Visual Basic como etiquetas, cuadros de texto,
botones de comando, etc... Cada uno de estos controles son tratados como bojetos en
Visual Basic, por lo que no tienes que olvidar que tienen su propio conjunto de propiedades,
métodos y eventos.
Entrada de datos
Dos controles muy relacionados y que se utilizan en la función de entrada de datos son las
etiquetas y los cuadros de texto.
Las etiquetas son controles que nos permiten mostrar texto en los formularios y que tienen la
particularidad de que el usuario no puede modificar Las etiquetas son controles que nos
permiten mostrar texto en los formularios y que tienen la particularidad de que el usuario
no puede modificar.
El control de etiqueta es:
Los cuadro de texto son el control estándar de entrada de datos en Visual Basic. Permiten al
usuario de la aplicación introducir información.
El control del cuadro de texto es:
Propiedad Definición
Establece la alineación del texto de la
Alignment
etiqueta
Autosize Si su valor es True, el tamaño de la
etiqueta se adapta automáticamente a su
19
contenido
Caption Texto que se visualiza en la etiqueta
Enabled Permite o no interactuar con la etiqueta
Establece la fuente, tamaño y htmlecto del
Font
texto
Los cuadros de texto son semejantes a las etiquetas, pero con la diferencia que el usuario
puede modificar su contenido. El texto que se introduce puede ser tanto numérico como
alfanumérico (números y letras).
A diferencia de la etiqueta, el tamaño del texto es fijo al no permitir la propiedad autosize.
Algunas propiedades del objeto cuadro de texto son:
Propiedad Definición
Alignment Alineación de la información introducida.
Permite o no que se puedan realizar acciones
Enabled
sobre el cuadro de texto
Font Igual que en el caso de las etiquetas
Permite introducir más de una línea de texto en el
Multiline
cuadro
Estable el caracter que se muestra al realizar una
PasswordChar entrada en el objeto. Sólo se mostrará dicho
caracter
ScrollBars Muestra barras de desplazamiento
Establece el orden de tabulación fijado para el
TabIndex
objeto
Indica si al utilizar el tabulador se puede desplazar
TabStop
entre los controles del formulario
Text Texto que se visualiza en el control
En las ventanas de entrada de datos es muy común tener la combinación de etiqueta y cuadro
de texto, ya que los cuadros de texto no tienen la propiedad Caption que permite crear teclas de
acceso.
Cuando quieras permitir un acceso rápido a cierto cuado de texto, el uso de una etiqueta asociada
es la forma más sencilla de hacerlo. Utiliza el caracter & en la propiedad Caption de la etiqueta
asociada y se creará la tecla de acceso para el cuadro de texto.
Control Marco
Se utiliza para estructurar el formulario en varias secciones, agrupando en éstas los controles
para que la lectura sea más sencilla. El control que tienes que utilizar para esto el el control Marco
(Frame):
20
La única propiedad interesante de un control marco es la propiedad Caption, que se refiere al texto
que se presenta en la parte superior izquierda del control.
El control marco actúa como contenedor de otros controles, así que las propiedas Left, Right y Top
de un objeto contenido en un marco se establecen en relación al objeto contenedor.
Al mover un marco también se mueve los controles que contenga, para ello deberemos crear
primero el marco y despueés los controles que queremos que contenga.
Botones de comando
El botón de comando (CommandButton), es muy sencillo, por lo que no tienes que establecer
muchas propiedades. Con la propiedad Caption establecemos el texto que aparecerá en el botón.
También se pueden crear teclas de acceso al botón.
Bloquear controles
Cuando estén situados los controles en el formulario se pueden bloquear para que no puedan moverse d
forma accidental.
Para esto deberemos pulsar en la barra de herramientas:
Cuando actives este botón y mientras no desbloques los controles utilizando la misma opción no se pod
mover ninguno de los controles del formulario activo.
Sin embargo en si abres otro formulario que no tenga los controles bloqueados si se podrán mover. Si a
más controles a un formulario bloqueado estos quedan bloqueados automáticamente.
7. Fundamentos de la programación
Variables
Una variable es una ubiación temporal de memoria donde se almacenan datos que interesan retener
durante la ejecución de la aplicación.
Las variables pueden contener texto, valores numéricos, fechas o propiedades de cierto objeto.
Es una forma de dar nombre a una porción de datos con la que deseamos trabajar en nuestro programa
Las variables se caracterizan por un nombre que las identifica y por un tipo de datos, que
establece el conjunto de valores posibles que pueden contener y operaciones en las que puede participar. El valor de
una variable puede cambiar a lo largo de la vidad de ésta.
Es necesario declarar las variables para poder utilizarlas en el programa. En Visual Basic no es obligatorio pero si
recomendable.
Al declarar una variable se reserva memoria para ella y se indica qué valores puede contener
a través de su tipo de datos.
21
Para establecer la declaración de una variable antes de ser utilizada en el código, puedes
hacerlo en la ficha entorno del cuadro de diálogo opciones.
Al activar la casilla Declaración de las variables requerida, Visual Basic introduce la instrucción
Option Explicit en la sección de declaraciones de cada módulo nuevo que se cree, no de los ya
existentes donde tienes que introducirlos manualmente. Esta instrucción obliga a declarar
las variables antes de utilizarlas, lo que es muy recomendable.
El uso de las variables puede hacer que la aplicación sea más rápida, por ejemplo, si usas muchas
veces un determinado valor, es aconsejable guardarlo en una variable y utilizarla cuando se
necesite que tener que volver a escribir código cada vez que quieras llamarla. Es más rápido
el acceso a las variables que a una propiedad de un objeto, por lo que también es aconsejable
guardar el valor de una propiedad en una variable.
Veamos un ejemplo:
Dim Variable
Variable = txtEntrada.Text
txtSalida.Text = Variable
La forma de declara una variable es a través de la instrucción Dim. En la línea se declara
la variable de nombre Variable y al mismo tiempo Visual Basic guarda espacio en memoria
para poder utilizarla.
En la segunda línea ya se utiliza la variable. En este caso sirve para guardar el valor que existe
en un cuadro de texto llamado txtEntrada (representado por la propiedad Text).
En la tercera línea se hace justo lo contario, se utiliza la variable Variable para establecer el valor
de la propiedad Text del cuado de texto txtSalida.
Si añadimos las siguientes líneas de código:
Variable = 125
txtNúmero.Text = Variable
Hemos establecido una variable de valor numérico. Sin embargo en las anteriores líneas se había
establecido un valor de texto ya que la propiedad Text es de ese tipo de datos.
En la última línea se vuelve a utilizar la variable como origen de la propiedad Text del cuadro de texto
txtNúmero.
Tipo de datos
El tipo de datos de una variable establece el número de valores que ésta puede tener, así como el
conjunto de operaciones en las que puede tomar parte como operando.
En Visual Basic dicho tipo de datos se especifica al declarar la variable de forma que se guarda
espacio en memoria para poder alamacenar los valores de dicho tipo de datos.
Es importante indicar el tipo de datos ya que no todos tienen la misma representación en memoria,
ocupando distinto espacio físico.
Visual Basic de forma predeterminada, a no ser que se indique el tipo de datos, establece el tipo
Variant para todas las variables. Así, al utilizar una intrucción como Dim NombreVarialbe,
se especifica implícitamente el tipo Variant para dicha variable.
El tipo Variant es un tipo especial de datos que puede contener cualquier clase de datos excepto
cadenas de longitud fija y tipos definidos por el usuario. Al utilizar variables de este tipo, no hay que
preocuparse de efectuar conversiones entre tipos para utilizarlas en distintos contextos.
Las variables de tipo Variant son muy flexibles, pero ocupan mucha memoria y disminución de la
velocidad.
Vamos a ver los siguientes tipos de variables:
22
Tipo de datos Tamaño
Entero (Integer) 2 bytes
Entero Largo (Long) 4 bytes
Simple (Single) 4 bytes
Doble (Double) 8 bytes
Moneda (Currency) 8 bytes
Cadena de caracteres (String) 1 byte por caracter
Byte 1 byte
Boleano (Boolean) 2 bytes
Fecha (Date) 8 bytes
Objecto (Object) 4 bytes
Variant 16 bytes + 1 byte por cada caracter
Para declarar las variables debes de usar su nombre en inglés.
Constantes
Operadores
En Visual Basic existe un gran número de operadores que se pueden utilizar para crear fórmulas.
Los operadores más utilizados en una aplicación de Visual Basic son los siguientes:
8. Fundamentos de la programación II
Visual Basic incorpora estructuras de control que permiten controlar el flujo de la ejecución de un
programa.
Si no existen esta estructures el código se ejecutará de arriba hacia abajo y de derecha a
izquierda según lo hayas escrito.
Entre las estructuras de control cabe citar las estructuras de decisión y las estructuras de
repetición.
23
La instrucción If-Then-Else, es la estructura clásica de decisión y presenta la siguiente síntaxis:
If condición1 Then
[instrucciones]
[ElseIf condición2 Then
[instrucciones]]
...
[Else
[instruccionesN]
End If
Donde los corchetes representan partes opcionales de la intrucción. Además es posible que
existan más de una cláusula ElseIf en la misma instrucción If-Then-Else, por ello los puntos
suspensivos.
Si la condición 1 se cumple, entonces se ejecutará el bloque de instrucciones 1, en caso
contrario se ejecutará el bloque de instrucciones (2...N-1) de la primera cláusula ElseIf condición
se cumpla. Si finalmente no se cumple ninguna de las condiciones se ejecutaría el bloque de
instrucciones N correspondiente a la cláusula Else.
La condición es una expresión, es decir, un conjunto de palabras que se evalúan a verdadero o
falso sin posibilidad de poder tener otro valor. Se dice que una condición se cumple cuando se
evalúa a verdadero y que fracasa en caso contrario. Las condiciones también se conocen como
expresiones lógicas.
Vamos a ver un ejemplo:
El código sería:
Dim moneda
moneda = lstMoneda.ListIndex
If moneda = 0 Then
MsgBox "Peseta"
ElseIf moneda = 1 Then
MsgBox "Dólar"
ElseIf moneda = 2 Then
MsgBox "Franco"
24
End If
Se utiliza una variable para establecer el valor de una propiedad que indica que la opción del
cuadro de lista lstMoneda está seleccionado.
Una vez conocida la opción seleccionada, deberemos sacar el mensaje adecuado, para ello
necesitamos una estructura de decisión.
La intrucción de la cláusula Else, sólo se ejecuta cuando el resto de condiciones han fracasado.
Cualquiera de los bloques de instrucción puede contener un número arbitrario de instrucciones,
incluida la posibilidad de que existan otras instrucciones If-Then-Else.
Cuando existe un gran número de instrucciones a evaluar es aconsejable utilizar otra estructura
de decisión, como puede ser las instrucción Select Case.
Esta instrucción no dá más potencia al lenguaje, pero hace que el código sea más legible y
eficiente. La síntaxis de la instrucción Select Case es:
Además, la lista de expresiones de cada cláusula Case puede ser mucho más complicada,
refiriéndose a más de un valor o rango de valores:
Case 1 To 9 valores desde el 1 hasta 3l 9
Case 1,2,3 valores 1, 2 y 3
Case 1,2,5 To 12 valores 1, 2 y desde el 5 hasta el 12
Expresiones Logicas
Visual Basic incorpora una serie de operadores de comparación que nos son útiles a la hora de
establecer condiciones.
=......Igual a
<>....Distinto a
<.....menor que
>.....Mayor que
<=....menor o igual que
25
>=....Mayor o igual que
Además existen los llamados operadores lógicos, que nos permiten establecer condiciones que
dependadan de más de un criterio de selección.
Todos los operadores hacen que la expresión en la que se encuentren se evalúa a verdadero o
falso, sin posibilidad de cualquier otro valor.
Estas expresiones son:
And: exp1 And exp2, donde se evalúa a verdadero sólo en el caso que el exp1 como
exp2 se evalúen a verdadero. En cualquier otro caso se evalúa a falso.
Or: exp1 Or exp2, donde se evalúa a verdadero cuando alguna de las expresiones exp1 o exp2
se evalúa a verdadero.
Not: Not exp1. aquí se evalúa a verdadero si exp1 es falso y se evalúa a falso si exp1 es
verdadero.
Xor: exp1 Xor exp2, se evalúa a verdadero sólo en el caso de que una y sólo una de las
expresiones exp1 o exp2 se evalúa a verdadero.
Matriz de controles
Un array o matriz de controles es un grupo de controles que comparten el mismo nombre, tipo y
conjunto de procedimientos de evento.
El número de controles que puede contener un array es indeterminado y depende de los
recursos y memoria.
La matriz de controles se crea en tiempo de diseño aunque en tiempo de ejecución se pueden
agregar más controles a la matriz.
Para crear una matriz de controles, tienes que crear dos controles del mismo nombre, Visual
Basic reconoce está situación y preguntará si quieres crear una matriz de controles.
Cuando se crea una matriz de controles puedes seguir trabajando con cada uno de los controles
de forma individual. Para referirte a un control en particular tienes que utilizar la propiedad Index
de dicho control. La propiedad se establece con el valor 0 para el primer control y se va
incrementando a medida que se van creando los nuevos controles.
Si quieres crear nuevos controles en tiempo de ejecución tienes que utilizar la instrucción Load.
La síntaxis será la siguiente:
Load objeto(índice)
Donde el objeto se refiere al nombre del control original que dio paso al control de la matriz e
índice es el lugar que ocupará en la matriz.
De la misma forma se puede eliminar un control en tiempo de ejecución, pero esta vez usando la
instrucción Unlaod.
Estructuras de repetición
Otro tipo de estructuras que pueden modificar la ejecución de un programa son las estructuras de
repetición o bucles. Estas estructuras sirven para repetir una y otra vez un conjunto de
instrucciones.
Existirán dos tipos de estructuras de repetición: aquellas en las que se conoce el número de
repeticiones y aquellas en que dicho número se establece durante la ejecución.
26
La estructura de repetición For...Next es adecuada cuando conocemos el número de veces que
debe repetirse un conjunto de instrucciones y deseamos reducir la cantidad de código escrito.
La síntaxis es la siguiente:
Donde el contador es el nombre de una variable que sirve como contador de las veces que se
tiene que ejecutar el bucle. A dicha variable se le asigna un valor incial y un valor final en el que
una vez superado el bucle no vuelve a repetirse.
En el cuerpo del bucle estarán las instrucciones que deben ejecutarse existiendo la posibilidad de
introducir Exit For para salir del bucle.
Otra estructura de repetición es Do...Loop. Esta estructura se utiliza cuando desconocemos
cuántas veces se ha de ejecutar el bucle.
La síntaxis es:
Do [While|Until] condición
[instrucciones]
[Exit Do]
[intrucciones]
Loop
Si utilizamos While el bucle se repite mientras la condición se cumpla y si utilizamos Until el bucle
se repetirá hasta que la condición dé valor verdadero.
Con While, la condición es comprobada al principio del bucle, por lo que si no se cumple al
iniciarse, el cuerpo del bucle no se ejecutará. Con Until se comprueba a la salida del bucle, por lo
que por lo menos, una vez se ejecutará el bucle.
Tipos de procedimientos>
En Visual Basic existen tres tipos de procedimientos: Sub, Function y Property
Los procedimientos Function se distinguen de los Sub por que siempre devuelven un valor
asociado al nombre del procedimiento. Este valor puede ser usado por el código que lo ha
llamado.
Los procedimientos Property seiven para crear y manipular propiedades personalizadas de
los objetos.
Para crear un procedimiento tienes dos alternativas, una utilizar la opción Procedimiento
del menú Insertar o escribirlo completamente en la ventana de código.
En la definición de un procedimiento Sub puedes diferenciar dos partes: la cabecera u el
27
cuerpo del procedimiento.
La cabecera del procedimiento se indica el ámbito (si es público o privado) del mismo, su
tipo (mediante la palabra Sub), su nombre y la lista de parámetros (entre paréntesis).
La lista de parámetros sirve para poder comunicar el procedimiento con el resto de código
de la aplicación. Para ello se utiliza un parámetro que indique de alguna forma dicha
circunstancia. Un parámetro se comporta como una variable en el cuerpo del
procedimiento, pudiendo simplemente utilizar su valor o inlcuso modificarlo.
Cuando un procedimiento quiere comunicar algún dato a la aplicación, tiene que utilizar un
parámetro para ello, es decir, puede servir bien para comunicar un valor al procedimiento o
bien para que éste lo comunique a la aplicación.
Los argumentos deben coincidir en la llamada en número y tipo con la definición del
procedimiento. Tanto si se especifica en la llamada un número distinto de argumentos
como si alguno de éstos no pueden convertirse al tipo declarado en la definición del
procedimiento, se creará un error de compilación.
La llamada al procedimiento será como una instrucción más del lenguaje, donde se
especifica el nombre del procedimiento seguido sin paréntesis, de una línea de argumentos
que deberá coincidir en número y tipo con los parámetros de la definición y que darán valor
a los parámetros para que se ejecute el cuerpo del procedimiento.
Una vez se llega a la instrucción End Sub del procedimiento el fujo de ejecución vuelve a la
línea siguiente a la que ocasionó la llamada.
28
procedimiento tiene que tener un tipo de datos. Esto se especifica indicano la cláusula AS
Tipo al final de la cabecera del procedimientos, una vez indicada la lista de parámetros. Si
no se especifica ningún tipo de datos, se aplica la misma regla que con las variables, es
decir, tendrá el tipo Variant.
Así como la llamada al procedimiento Sub es como una instrucción más del lenguaje, la
llamada al procedimiento Function suele estar situada como parte de una expresión y no
como una línea independiente de su código.
Ya que el procedimiento Function devuelve un valor asociado a su nombre, este valor
suele asignarse a alguna variable para poder utilizarlo en el código que ha realizado la
llamada.
La síntaxis será la siguiente:
NombreVarialbe = NombreFunction(ListaParámetros)
Si quieres utilizar el valor que devuelve el procedimiento Function, tienes que encerrar la
lista de argumentos, en la llamada, con paréntesis. Esto no era así en el caso del
procedimiento Sub.
Visual Basic incorpora un gran número de funciones que puedes utilizar en tus
aplicaciones, entre ellas cabe destacar MsgBox, InputBox, Date...
Paso de parametros
Ambito de la accion
Cuando un proyecto esté constituido por distintos módulos, ya sean de formulario, clase o
módulos generales de Visual Basic, es importante delimitar dónde se pueden utilizar y
dónde no, los procedimientos, variables y constantes que tengas definidos o declaradas.
El nivel de ocultación es establecido por el programador al declarar las variables y
constantes o al definir procedimientos utilizando las palabras Pulbic y Private.
Una declaración de variables de tipo Public NombreVariable As Tipo, indica que dicha
variable puede ser utilizada tanto en el módulo donde se realiza como en el resto de
29
módulos de la aplicación.
Si la declaración fuera del tipo Private NombreVariable As Tipo, dicha variable sólo podrá
ser conocida y por tanto utilizada, en el mismo módulo donde se declara.
El uso de Public y Private también se aplica a la declaración de procedimientos.
Un caso especial es cuando se declara una variable dentro de un procedimiento, en estos
casos, dichas variables sólo pueden ser conocidas por el propio procedimiento, por lo que
no es válida la declaración Public de estas.
Además, si existe conflicto de nombre, al haber declarado dos variables con el mismo
nombre, una a nivel de módulo y otra a nivel de procedimiento, siempre tiene preferencia la
más local, es decir, la declarada a nivel de procedimiento.
Al utilizar Dim en la declaración de las variables, en lugar de Private o Public, la visibilidad
de dichas variables es la que deban tener por defecto: a nivel de módulo está visible para
todos los procedimientos y a nivel de procedimiento sólo para éste.
Control Shape
Con el control Shape (Forma), podemos dibujar distintas figuras como círculos,
rectágulos, óvalos...
Para agregar figuras a los formularios utilizaremos el control Shape:
La apariencia inicial de un objeto Shape es siempre un rectágulo. Dicha
característica se establece a través de la propiedad Shape.
Otra propiedad interesante de este control es el relleno de las figuras que
estableceremos con la propiedad FillStyle.
También, mediante la propiedad FillColor podrás establecer el color de dicho
relleno, el color de los bordes con BorderColor.
30
control puede está siendo arrastrado por encima de ellos, permitiéndoles
responder de la forma adecuada.
Si quieres permitir que el usuario de la aplicación pueda arrastrar un control en
tiempo de ejecución puedes hacerlo de dos formas: realizar un arrastre
automático o controlar cuándo debe empezar dicho arrastre. Esto se controla
mediante la propiedad DragMode del objeto que quieres arrastrar.
Esta propiedad tiene dos valores: manual y automático. En el primer caso tienes
que controlar cuándo debe permitirse arrastrar el control. Normalmente esto
depende de alguna circunstancia que será comprobada cuando se pulse en
dicho control, es decir, en el evento MouseDown.
Si DragMode se establece a automático el usuario prodrá arrastrar el control sin
necesidad de que haya que programar nada más. En este caso se pierde el
control sobre el arrastre, pero es mucho más sencillo de programar.
Otra circunstancia que hay que tener en cuenta a la hora de arrastrar un objeto
es el htmlecto que tendrá el puntero del ratón cuando lo haga. Si no se
especifica nada en la propiedad DragIcon, Visual Basic muestra un icono como
puntero del ratón, que es el contorno del objeto arrastrado. Normalmente te
interesará mostrar un icono distinto indicando la acción de arrastrar el objeto.
DragMode y DragIcon son las dos propiedades que tienes que tener en cuenta a
la hora de permitir el arrastre de objetos en la aplicación. También hay que tener
en cuenta el evento DragOver, sucede cuando el usuario arrastra un objeto por
encima de otro, en este último, es decir el destino, el que reconoce el eveto
DragOver. El procedimiento de evento DragOver trabaja con cuatro parámetros:
Source X, Y y State. El parámetro Source representa el control que está siendo
arrastrado, siendo X e Y la posición exacta en la que se encuentra.
El parámetro State indica si el movimiento del ratón, al realizar el arrastre, es
para entrar en el objeto destino o para salir del mismo. Todos esto parámetros
están situados en la cabecera del procedimiento DragOver.
Si State tiene un valor 0, entonces el movimiento del objeto que está siendo
arrastrado es para entrar en el objeto que reconoce el DragOver. En el caso de
que State sea igual a 1, el movimiento de arrastre es hacia afuera, es decir,
saliendo. Utilizando el valor de éste parámetro podrás decidir qué debe ocurrir.
31
no implica absolutamente nada, es decir, el objeto no cambiará de posición si no
lo indicas expresamente a través de la programación.
Vamos a ver un ejemplo de procedimiento evento DragDrop en el que se indica
qué debe ocurrir cuando soltamos el objeto identificado por la cadena "Disquete"
en su propiedad Tag:
32