1. Visual Basic 6.0
El entorno de Visual Basic
Cuando iniciamos Visual Basic, nos mostrará la siguiente
Ventana donde podemos seleccionar, que es lo que
vamos a desarrollar.
En este curso nos centraremos en la primera opción que
es un Estándar EXE.
Seleccionamos Standard EXE y Seleccionamos Abrir.
Luego le aparacerá el entorno inicial de Visual Basic :
Barra de menú
Barra de Herramientas
Explorador
de Proyectos
(3)
Cuadro de
herramientas
(5)
Ventana de
Propiedades
(4)
Ventana de
Posición de
formulario
Ventana del formulario
inicial
(2)
2. Visual Basic 6.0
En la ventana del programa, podemos hacer todas las funciones normales que nos permite el
compilador Visual Basic.
Cierre todas las ventanas excepto el programa Visual Basic
Pulse "Ctrl+R" (Ver -> Proyecto) y se abrirá el Explorador de Proyectos (3).
En esta ventana tenemos todos los ficheros del proyecto Visual Basic en el que vamos a trabajar.
Al principio y por defecto, el programa abre un formulario (2) con el nombre Form1 que es la
ventana Windows de nuestra aplicación.
Podemos editar, abrir y cerrar la ventana, pero todo esto lo veremos a fondo más tarde. De
momento es fundamental que se familiarice con estas ventanas que aparecen al iniciar Visual
Basic.
Pulsando la tecla "F4", aparecerá la ventana de propiedades (4). Esta ventana es fundamental, ya
que contiene todas las propiedades de cada objeto que insertaremos en nuestro formulario, asi
como las propiedades del formulario en sí.
Por último, la ventana caja de herramientas (5), no es menos importante, ya que contiene todos los
objetos que podemos incluir en nuestro formulario. Esta ventana se puede abrir en el menú
principal (Ver -> Caja de herramientas).
Esta es la visión general del compilador Visual Basic, pero hay como bien se imaginará usted,
muchas otras cuestiones que son importantes tener en cuenta.
El Proyecto
Cada vez que creamos un Sistema, crearemos un Proyecto (Proyect) al cual lo salvaremos con las
siglas del sistema que estamos desarrollando (Ej. SCI). Un proyecto es un organizador de nuestro
Sistema, en él podemos agregar Formularios, Reportes, Modulos (codigo), entre otros.
Para agregar objetos a nuesto proyecto, nos ubicamos en la
ventana del proyecto, presionamos el click derecho del mouse,
seleccionamos Agregar (Add) y luego nos sale una lista de todo lo
que podemos agregar :
- Formularios (Form)
- Formularios MDI (MDI Form)
- Modulos (Module)
- Reportes (Data Report)
- Entre otros.
3. Visual Basic 6.0
El Objeto formulario (form)
Antes de comenzar con los formularios es necesario comprender la Interfaz de Desarrollo de
Sistemas en Visual Basic:
SDI : Interfaz de un Solo Documento (Formularios Independientes)
MDI : Interfaz de varios Documentos, MDI quiere decir que todas las ventanas forman parte de una
más grande. Esta interfaz es la que utilizaremos en el curso, Donde el formulario principal será un
Formulario MDI (MDIform) y los demas formularios formaran parte de él (MDIChild)
En nuestro proyecto tendremos un solo formulario MDI y todos los demas formularios pertenecerán
a él ( la propiedad MDIChild habrá que fijarla en True)
Propiedades mas comunes:
Nombre Descripción
Name Nombre del formulario (Ej. FrmRegiones)
BackColor Color de fondo del Formulario
BorderStyle Estilo del Borde de la Ventana : Sirve para permitir el Ajuste del tamaño de la
Ventana o no.
Caption Titulo de la Ventana
ControlBox Permite habilitar/Desahabilitar el Menu de Control de la Ventana.
Icon Se espefica el nombre del archivo de Icono de la Ventana. (*.ico)
MaxButton Permite Habilitar/Deshabilitar el Boton para maximizar la ventana
MDIChild Para determinar si esta ventana pertenece a una Ventana MDI.
Minbutton Permite Habilitar/Deshabilitar el Boton para minimizar la ventana
Moveable Permite Habilitar/Deshabilitar si la ventana se puede mover por el usuario
Picture Permite Poner una imagen de fondo de la Ventana (Como un papel Tapiz)
WindowState Permite vizualizar el formulario de forma Normal, maximinzada o minimizada.
La ventana de propiedades:
Nombre del objeto
al cual le modifica
las propiedades
Descripción de la
propiedad
Propiedades del
objeto
4. Visual Basic 6.0
Para ejecutar el formulario y verlo como se comportará según las propiedades que le hemos fijado
siga las siguientes instrucciones:
1. Seleccione en el menu principal la opción de
Proyecto (Proyect).
2. Luego seleccione la última opción que es
Propiedades del Proyecto (Proyect1 Properties).
3. Seleccione el objeto que desea ejecutar y luego
presione el botón Aceptar.
4. Presione el botón de la barra de herramientas
Iniciar (Start)
5. Si quiere ejecutar un objeto diferente repita los pasos
del 1 al 4.
Al ejecutar el formulario usted podrá observar como se
comporta en modo ejecución.
Para detener la ejecución : presione el botón de parada o
o cierreel formulario como comunmente lo hace con
cualquier ventana.
Eventos mas comunes de los formularios:
Nombre Descripción
Click Sucede cuando presionamos una vez el botón izquierdo del mouse sobre el
formulario.
Load Ocurre cuando se inicia el formulario
UnLoad Ocurre cuando finaliza el formulario
Error Sucede cuando a ocurrido un error en la ejecucion del codigo dentro del formulario
5. Visual Basic 6.0
Eventos del Formulario
Para ver los eventos de un objeto (en este caso del formulario):
presione click derecho encima del objeto (formulario) y luego
seleccionamos Ver Código (View Code).
La siguiente ventana aparacerá donde se muestran
el objeto (Lista izquierda superior) y la lista de los
eventos (derecha superior).
Podremos observar que tambien en la lista de la
derecha superior se encuentra la sección General,
donde se declaran todas las variables que se
ocuparán en el formulario.
También podemos configurar el modo en que
vizualizaran los eventos, en lo particular yo
utilizó Vista de Procedimiento (Procedure View), para vizualizar cada evento independientemente.
Podemos escribir el siguiente codigo en el evento Click del Formulario:
MsgBox "Hice click en el Formulario"
Cuando ejecutemos el formulario y le demos un click encima del formulario veremos el siguiente
mensaje:
6. Visual Basic 6.0
Modificación de las propiedades en modo Ejecución
Existen propiedades que podemos modificar en modo diseño (con la ventana de propiedades) y en
modo ejecución (con código). Sin embargo hay otras propiedades que solo se puede modificar en
modo diseño.
Ejemplo:
En el formulario agregremos un boton de comando
(CommandButton) del Cuadro de Herramientas (ToolBox).
Luego fijaremos la propiedad Caption del boton a "Cambiar
Propiedades del Formulario"
En el evento click del Boton digitaremos las
siguientes instrucciones:
Form1.BackColor = vbBlue
Form1.Caption = "Cambiar Caption"
Nota: vbBlue es una Constante predefinida de
VB.
Ejecutamos el formulario:
Cuando damos click en
el botón las
propiedades son
modificadas
Esta sintaxis de Programación Orientada a Objetos es la que utilizaremos cuando programamos
con Visual Basic. Practicamente solo es conocer las propiedades de cada objeto y luego
modicarlas ya sea en modo diseño o en modo ejecución.
7. Visual Basic 6.0
Uso de los Controles estándar de Visual Basic
Cuadro de
Herramientas de
Visual Basic.
Categorías de Controles:
Controles intrínsecos: Estos controles se encuentran dentro del archivo .exe de Visual Basic.
Los controles intrinsecos siempre estan incluidos en el cuadro de herramientas, no como los
controles ActiveX y los objetos insertables, que se pueden quitar o agregar al cuadro de
herramientas.
Controles ActiveX: Existen como archivos independientes con extensión .ocx.
Objetos Insertables : Objetos OLE, uno puede insertar un objeto Worksheet (Hoja de Calculo)
de Microsoft Excel o un Documento de Word o alguna imagen incrustada.
Controles Intrínsecos
El cuadro de herramientas de Visual Basic contiene las herramientas que puede utilizar para
dibujar controles en los formularios.
ICONO NOMBRE DEL CONTROL NOMBRE DE CLASE DESCRIPCION
Presenta una opción de tipo Verdadero o
Casilla de Verificación CheckBox Falso, o Sí o No. Puede activar varias casillas
de verificación en un mismo formulario al
mismo tiempo
Cambia un cuadro de texto y un cuadro de
Cuadro Combinado ComboBox lista. Permite que el usuario escriba una
selección o seleccione un elemento de una
lista desplegable.
Ejecuta un comando o una acción cuando un
Botón de comando CommandButton usuario hace clic en él
Permite conectar con una base de datos
Datos Data existente y presentar información de ella en
los formularios
8. Visual Basic 6.0
ICONO NOMBRE DEL CONTROL NOMBRE DE CLASE DESCRIPCION
Presenta directorios y rutas de acceso, y
Cuadro de lista de directorios DirListBox permite que el usuario los seleccione.
Presenta unidades de disco validas y permite
Cuadro de lista de unidades DriveListBox que el usuario las seleccione
Presenta una lista de archivos y permite que
Cuadro de lista de archivos FileListBox el usuario los seleccione.
Proporciona un contenedor visual y funcional
Marco Frame para otros controles
Permite que un usuario agregue barras de
Barras de desplazamiento HscrollBar y VscrollBar desplazamiento a controles tienen de forma
horizontal y vertical automática. (No son las barras de
desplazamiento incorporadas que se incluyen
en muchos controles.)
Presenta mapas de bits, iconos o metarchivos
Imagen Imagen de Windows, archivos JPEG o GIF, y actúa
como un botón de comando cuando se hace
clic en él.
Presenta texto con el que el usuario no
Etiqueta Label puede interactuar ni modificar.
Agrega un segmento de línea recta a un
Línea Line formulario
Presenta una lista de elementos entre los
Cuadro de lista ListBox que el usuario puede elegir.
Incrusta datos en una aplicación de
Contenedor OLE OLE Visual Basic.
El control OptionButton, como parte de
Botón de opción OptionButton un grupo de opciones con otros botones
de opción, presenta varias opciones
entre las que el usuario solo puede elegir
una.
Presenta mapas de bits, iconos o
Cuadro de imagen PictureBox metarchivos de Windows, archivos JPEG
o Gif. También presenta texto o actúa
como contenedor visual para otros
controles.
9. Visual Basic 6.0
ICONO NOMBRE DEL CONTROL NOMBRE DE CLASE DESCRIPCION
Agrega un rectángulo, un cuadrado, una
Forma Shape elipse o un circulo a un formulario, marco
o cuadro de imagen
Proporciona una arrea para escribir o
Cuadro de Texto TexBox presentar texto
Ejecuta eventos periódicos a intervalos
Cronometro Timer de tiempo especificados
Nota: La herramienta puntero (la primera herramienta del cuadro de herramientas) proporciona una
forma de mover y cambiar el tamaño de los formularios y los controles. No es un control.
Controles Active X estándar
Visual Basic contiene varios controles ActiveX (llamados controles ActiveX estándar) que permiten
agregar características avanzadas a las aplicaciones. Los controles ActiveX tiene la extensión
nombre de archivo.ocx y puede utilizarlos en un proyecto si los agrega manualmente al cuadro de
herramientas.
Los controles ActiveX estándar agregados al cuadro de herramientas
Para agregar estos ActiveX estándar al cuadro de herramientas :
1. En el cuadro de Herramientas presione el botón derecho del mouse y
seleccione Componetes (Components...)
2. Luego le aparecerá la sig. Ventana con la una
lista de componetes que puede insertar
Selección solamente los Controles ActiveX
Estandar, como son:
- Microsoft Common Dialog Control
- Microsoft Data Bound Grid Control
- Microsoft Data Bound List Control
- Microsoft FlexGrid Control
3. Presione el boton de Acepar.
10. Visual Basic 6.0
En la tabla siguiente se enumeran los controles ActiveX estándar disponibles en Visual Basic.
ICONO NOMBRE DEL CONTROL NOMBRE DE CLASE DESCRIPCION
Proporciona un conjunto de cuadros de
Dialogo común CommonDialog dialogo estándar para operaciones como
abrir y guardar archivos, establecer
opciones de impresión y seleccionar
colores y fuentes.
Proporciona la mayoría de las funciones
Cuadro combinado enlazado DBCombo del control.
de datos ComboBox estándar, así como macro
capacidad de acceso a datos.
Control con apariencia de hoja de calculo
Cuadricula Apex enlazada a DBGrid y con enlaces de datos que presenta una
datos serie de filas y columnas que representa
una serie de filas y columnas que
representan registros y campos de un
objeto RecordSet.
Proporciona la mayoría de las
Cuadro de lista enlazado a DBList características del control ListBox
datos estándar, así como mayor capacidad de
acceso a datos.
Es similar al control DBGrid, pero tiene
FlexGrid de Microsoft MSFlexGrid características adicionales de formato,
agrupación y enlace de datos, además
de opciones de personalización.
11. Visual Basic 6.0
Convenciones de nomenclatura de los objetos
Cuando crea u objeto (un formulario o un control) por primera vez, Visual Basic establece su
propiedad Name a un valor predeterminado. Por ejemplo, todo los botones de comando tienen la
propiedad Name establecida inicialmente a Commandn, donde n es 1, 2, 3 y así sucesivamente.
Visual Basic llama al primer botón de comando de un formulario Command1, al segundo
Command2 y al tercero Command3.
Puede mantener los nombres predeterminados, sin embargo cuanto tiene varios controles del
mismo tipo, es más lógico modificar las propiedades Name para que sean algo más descriptivas.
Como puede ser difícil distinguir entre el botón Commnad1 de MiForm y el botón Command1 de
SuForm, la convención de nomenclatura es recomendable, especialmente cuando una aplicación
se compone de varios módulos de formulario, módulos estándar y módulos de clase.
Puede utilizar un prefijo para describir la clase, seguido de un nombre descriptivo del control. El
uso de eta convención de nombre hace que el código sea mas autodescriptivo y agrupa objetos
similares alfabéticamente en el cuadro de lista Objeto.
Los nombres de los formularios y los controles:
Deben empezar por una letra
Solo deben contener letras, números y carácter de subrayado (_); no se permiten signos de
puntuación ni espacios en blanco.
No pueden tener una longitud mayor de 40 caracteres.
Uso del valor de un control
Todos los controles tienen una propiedad que se puede utilizar para almacenar u obtener valores
mediante una referencia al control, sin mencionar el nombre de la propiedad. Esto se denomina
valor del control y normalmente es la propiedad más importante o la mas frecuentemente utilizada
del control. En la tabla siguientes enumeran las propiedades consideradas como valor de cada
control.
Control Propiedad
Casilla de verificación Value
Cuadro combinado Text
Botón de comando Value
Dialogo común Action
Datos Caption
Cuadro combinado enlazado a datos Text
Caudricula enlazada a datos Text
Cuadro de lista enlazado a datos Text
12. Visual Basic 6.0
Control Propiedad
Cuadro de lista de directorios Path
Cuadro de lista de unidades Drive
Cuadro de lista de archivos FileName
Marco Caption
Barra de desplazamiento horizontal Value
Imagen Picture
Etiqueta Caption
Linea Visible
Cuadro de lista Text
Botón de opción Value
Cuadro de imagen Picture
Forma Shpe
Cuadro de texto Text
Cronometro Enabled
Barra de desplazamiento vertical Value
El siguiente ejemplo muestra como se puede utilizar el valor de un control:
Me: se refiere al formulario.
13. Visual Basic 6.0
Controles Estándar de Visual Basic
Uso del Control PictureBox
El Control PictureBox presenta mapas de bits, iconos o metarchivos de Windows, archivos JPEG o
Gif.
Cuando inserta el Control PictureBox observará lo
siguiente.
La propiedad mas común para este control es Picture,
que puede ser modificada en modo diseño o en modo
ejecución.
La asignación de una imagen en modo ejecución se hace
con la función LoadPicture. Para ejemplificar ésto
insertaremos un botón en el formulario y luego le
asignaremos el siguiente código al evento click:
Me.Picture1.Picture = LoadPicture("c:mixcursoVBgraficosvbasic.jpg")
Cuando Ejecutamos el formulario y presionamos el botón Fijar Imagen, la imagen es mostrada en
el control.
14. Visual Basic 6.0
Uso del Control FileListBox
El control FileLisBox Presenta una lista de archivos y
permite que el usuario los seleccione.
Propiedades más comunes:
Nombre Descripción
Name Nombre del Control.
Pattern Indica los archivos que serán desplegados por el control (Ej: *.*, *.bmp, *.jpg, etc)
Path Ruta de acceso de donde se desplegarán los archivos
(disponible solo en modo ejecución)
FileName Nombre del archivo seleccionado
Evento más común:
Nombre Descripción
Click Cuando presionamos el botón izquierdo del Mouse sobre el control
Ejemplo:
Modificaremos la propiedad Pattern y la fijaremos con *.bmp, para que despliegue todos archivos
con extensión BMP.
En el evento Load del formulario configuraremos el objeto file1,
para que despliegue los archivos del directorio Windows:
Me.File1.Path = "c:windows"
Luego en evento Click del Control
FileListBox, Introduciremos el
código siguiente:
Me.Picture1.Picture = LoadPicture(“c:windows” & Me.File1.FileName)
Ahora cuando ejecute el formulario, mostrará las imágenes del directorio Windows y cuando usted
le dé click en algun archivo, la imagen se mostrará en el control PictureBox.
15. Visual Basic 6.0
Uso del Control DirListBox
Presenta directorios y rutas de acceso, y permite que el usuario los seleccione
El Control DirListBox en el Formulario.
Propiedades más comunes:
Nombre Descripción
Name Nombre del Control.
Path Ruta de acceso de donde se desplegarán los archivos
(disponible solo en modo ejecución)
Evento más común:
Nombre Descripción
Change Ocurre cuando el usuario selecciona un directorio diferente.
Ejemplo:
En el evento Load del formulario modificaremos el código de la
siguiente manera:
Me.File1.Path = "c:"
Me.Dir1.Path = "c:"
En el evento Change del Control de Directorios (Dir1)
pondremos el siguiente codigo:
Me.File1.Path = Me.Dir1.Path
16. Visual Basic 6.0
En el evento Click del Control de Archivos (File1) modificaremos el codigo siguiente:
Me.Picture1.Picture = LoadPicture(Me.Dir1.Path & "" & Me.File1.FileName)
Ejecutamos el formulario y ahora podemos seleccionar el directorio y cuando lo seleccionamos nos
muestra los archivos *.bmp de ese directorio.
Uso del Control DriveListBox
El control DriveListBox presenta unidades de disco
validas y permite que el usuario las seleccione.
En el evento Change podremos el siguiente codigo:
Me.Dir1.Path = Me.Drive1.Drive
Propiedades más comunes:
Nombre Descripción
Name Nombre del Control.
Drive Contiene la unidad de disco seleccionada
Evento más común:
Nombre Descripción
Change Ocurre cuando el usuario selecciona una unidad diferente.
17. Visual Basic 6.0
Uso del Control OptionButton
El control OptionButton, como parte de un grupo de opciones con otros botones de opción,
presenta varias opciones entre las que el usuario solo puede elegir una.
Propiedades más comunes:
Nombre Descripción
Name Nombre del Control.
Value True: Cuando esta seleccionado
False: Cuando esta sin selección
Caption Contiene la Etiqueta que se mostrará al usuario
Evento más común:
Nombre Descripción
Click Ocurre cuando el usuario selecciona una unidad diferente.
Ejemplo: Crearemos la siguiente lista de opciones para mostrar los tipos de archivos.
Para ello veremos que tendremos que crear una matriz de controles.
Matriz de Controles: Conjunto de controles del mismo tipo.
Para crear la matriz de controles de OptionButton realizamos lo siguiente:
1. Ponemos el Primer OpctionButton en el formulario
2. Luego lo copiamos y pegamos( y )
3. Inmediatamente le aparecerá el mensaje de que si desea crear un Arreglo de Controles (Control
Array), entoces respondemos que si.
4. Para crear la siguiente opción copie y pegue el mismo control.
Los controles tomaran los nombres que aparecen en la figura. El
número que esta entre parentesis es el Index (número indice).
Siguiendo con el ejemplo, pondremos a True la propiedad value del Option1(0).
Luego en el Evento Click del control pondremos el siguiente código:
Private Sub Option1_Click(Index As Integer)
If Index = 0 Then
Me.File1.Pattern = "*.bmp"
End If
If Index = 1 Then
Me.File1.Pattern = "*.gif"
End If
If Index = 2 Then
Me.File1.Pattern = "*.jpg"
End If
End Sub
18. Visual Basic 6.0
Algunas Funciones Utiles
Funciones de Cadena:
Función Descripción
Str (número) Convierte un número a una cadena en numeración decimal.
Val(cadena numérica) Obtiene el valor (el número) correspondiente a esa cadena.
Left (cadena, n) Extrae los n primeros caracteres de una cadena,
comenzando por la izquierda.
Si cadena = “Curso de Visual Basic” (Para todos los ejemplos)
Resultado = Left (cadena, 10) ----> Resultado = “Curso de V”
Right (cadena, n) Extrae lo n últimos caracteres de la cadena
Resultado = Right (cadena, 10) ----> Resultado = “sual Basic”
Mid (cadena, m, n) Extrae n caracteres de la cadena, siendo el primer carácter
extraído el que ocupa el lugar m.
Resultado = Mid (cadena, 3, 10) ----> Resultado = “rso de Vis”
Resultado = Mid (cadena, 3, 10) ----> Resultado = “rso de Vis”
LCase (cadena) Devuelve otra cadena igual, pero con todos los caracteres
en minúsculas. (LCase = Lower Case)
Resultado = Lcase (cadena) ----> Resultado = “curso de visual
basic”
UCase (cadena) Devuelve otra cadena igual, pero con todos los caracteres
en mayúsculas. (UCase = Upper Case)
Resultado = UCase (cadena) ----> Resultado = “CURSO DE
VISUAL BASIC”
Len (cadena) Devuelve la longitud de la cadena
Resultado = Len (cadena) ----> Resultado = 21
LenB (Cadena) Devuelve el número de Bytes empleados para almacenar la
cadena. Sorpréndase, es el doble que Len (Cadena)
String (n, carácter) Devuelve una cadena de n caracteres como el indicado
Resultado = String (8, "a") ----> Resultado = “aaaaaaaa”
Resultado = String (8, Chr(65)) ----> Resultado = “AAAAAAAA”
Resultado = String (8, 65) ----> Resultado = “AAAAAAAA”
Space (n) Devuelve una cadena formada por n espacios.
Resultado = "A" + Space (6)+ "B" ----> Resultado = “A B”
19. Visual Basic 6.0
Función Descripción
Ltrim Elimina los posibles espacios que tenga una cadena por su
izquierda.
Rtrim Elimina los posibles espacios que tenga una cadena por su
derecha.
Trim Elimina los espacios que tenga una cadena, tanto por su
izquierda como por su derecha. (No elimina los espacios
centrales de la cadena)
InStr (cadena, cadena1) Busca la cadena1 dentro de cadena y devuelve el número
de orden dentro de cadena donde se encuentra la primera
letra de cadena1
Resultado = InStr (cadena, "sua") ----> Resultado = 12
StrConv Convierte una cadena de caracteres en otra, según las
instrucciones que le sigan. Puede sustituir a UCase o
LCase si la instrucción es UpperCase o LowerCase
respectivamente, o poner la primera letra de todas las
palabras de la cadena en mayúsculas, si la instrucción es
ProperCase.
Resultado = StrConv (cadena, UpperCase) ----> Resultado = “CURSO
DE VISUAL BASIC”
Resultado = StrConv (cadena, LowerCase) ----> Resultado = “curso de
visual basic”
Resultado = StrConv (cadena, ProperCase)----> Resultado = “Curso De
Visual Basic”
20. Visual Basic 6.0
Funciones con Números:
Función Descripción
Cint Parte entera, Devuelve la parte entera de un número con
decimales
Abs Valor Absoluto, Devuelve el valor absoluto de un
número
Sgn Signo, Devuelve el signo de un número
Sqr Raíz cuadrada, Devuelve la raíz cuadrada de un número
Exp Exponenciación, Devuelve el número elevado al exponente
indicado
Log Logaritmo, Devuelve el logaritmo natural de ese número
Sin Seno, Devuelve el valor del seno de un ángulo (Expresado
en radianes)
Cos Coseno, Devuelve el coseno de un ángulo (En radianes)
Tan Tangente, Devuelve la tangente de un ángulo
Atn Arco Tang. Devuelve un arco cuya tangente sea el número
(Angulo en radianes)
Timer Tiempo acumulado, Devuelve el tiempo (en segundos) que
ha pasado desde las 12 de la noche.
Randomize (Numero) Generación de números aleatorios,
Inicia el generador aleatorio tomando como dato de partida
el Numero. Devuelve el resultado en una variable llamada
Rnd.
NOTA MUY IMPORTANTE.- Los números aleatorios generados de esta forma son
siempre iguales, eso sí, dependiendo del número que se le introduzca como
parámetro. Esta generación de números no produce números aleatorios pues como
se dijo, dependen del numero que se meta como parámetro, y si este se repite, se
repite la sucesión de números que nos crea el generador aleatorio.
La forma de obtener números realmente aleatorios es introducir como parámetro un
número que sea variable con el tiempo. Ese número no puede ser otro que el número
timer visto antes. Y siempre con la precaución de que medie mas de un segundo entre
dos instrucciones Randomize. La función toma entonces la forma:
Randomize Timer
La función Randomize devuelve una variable Rnd con un número comprendido
entre 0 y 1 (Nunca será 0 ni 1) Leyendo el valor de la variable sucesivas veces, se puede
obtener una sucesión de números aleatorios. No es necesario ejecutar la instrucción
Randomize Timer cada vez que se quiera obtener un dato de la variable Rnd.
Un ejemplo. Generador de números para la Lotería Primitiva
Supongamos que tenemos un formulario con una etiqueta de nombre Label1, un botón de
comando de nombre Command1. Cuando hagamos click sobre el botón de comando
21. Visual Basic 6.0
deberá generar un número comprendido entre el 1 y el 49. En el procedimiento click de
Command1 pondremos el siguiente código:
22. Visual Basic 6.0
Private Sub Command1.click
Randomize Timer
A = Rnd
A = Rnd * 100
A = CInt(A)
Do While A > 49
A = A - 49
Loop
Do While A < 1
A = A + 49
Loop
Label1.caption = A
End Sub
Realice este pequeño programa, con la instrucción Randomize Timer y sin ella.
23. Visual Basic 6.0
Funciones con fechas:
Las fechas son cadenas especiales. Visual Basic sabe obtener y tratar la información
relativa a la fecha y la hora. Dispone para ello de una declaración de variable: Date. Una
variable declarada como date puede contener una fecha, una fecha y una hora o una hora
solamente.
Función Descripción
Date Devuelve la fecha de hoy. Esta fecha la toma del reloj del
ordenador.
Time Devuelve la hora actual.
Now Devuelve la fecha y hora actual.
WeekDay Devuelve el día de la semana (En número, 1=Domingo,
2=Lunes,...)
Day Obtiene el día, a partir de una fecha
Month Obtiene el mes a partir de una fecha.
Year Obtiene el año a partir de una fecha.
Hour Obtiene la hora a partir de una hora
Minute Obtiene el minuto a partir de una hora.
Second Obtiene el segundo a partir de una hora.
DateAdd Añade un intervalo de tiempo a una fecha
DateDiff Obtiene el intervalo de tiempo entre dos fechas
DatePart Devuelve una parte de una fecha (semana, trimestre, etc.)
DateSerial Compone una fecha a partir de parámetros relativos
TimeSerial Compone una hora a partir de parámetros relativos.
DateValue Devuelve una fecha a partir de un dato que se le parezca y
VB pueda obtener de él una fecha válida
Mediante estas instrucciones podemos obtener el dato necesario de una fecha u hora. Por
ejemplo, para obtener el día de hoy solamente:
Día = Day (Now) Día será un número
El día de la semana lo obtendríamos
Diasemana = WeekDay (Now) Diasemana será un número
DateValue, una instrucción que le sacará mucho provecho
Fecha = DateValue (120796)
Fecha = DateValue (12 07 96) Fecha =12/07/96
24. Visual Basic 6.0
Función FORMAT
Esta función permite presentar cadenas de numéricas o fechas de una determinada
forma. Permite establecer el Formato de esa cadena.
Si recurre a la ayuda de VB acerca de esta función se va a enterar muy poco de lo que
puede dar de sí. La sintaxis que presenta es :
Format(expresión[, formato[, primerdíadesemana[, primerasemanadelaño]]])
Lo mejor que puede hacer con esta definición de la sintaxis de Format es olvidarla. No le
aclara mucho lo que se puede hacer con Format. La función Format se usa para poner
una fecha en un determinado formato. Con la expresión :
FechadeHoy = Format (Now, “yyyy-mm-dd”)
la variable FechadeHoy tendrá el valor 1998-05-21, que se refiere al día 21 de mayo de
1998, según el formato recomendado por la norma ISO-8601 para la presentación de
fechas. Si hubiésemos puesto la expresión FechadeHoy = Format (Now, “dd/mm/yy”) , la
variable FechadeHoy contendría el valor 21/05/98 referido al día citado.
Las posibilidades de Format llegan también al campo de las cadenas numéricas. Por
ejemplo la cifra 123456 se transformará en las siguientes expresiones, según como
empleemos la función Format
Variable = Format(123456, "Currency") Variable = 123.456 Pts
Variable = Format(123456, "Standard") Variable = 123.456,00
Veamos ahora con un poco mas de conocimiento la sintaxis de Format
Variable = Format (expresión[, formato[, firstdayofweek[, firstweekofyear]]])
Donde
expresión es una cadena o fecha válida
formato es uno de los formatos predefinidos (Standard, Currency, etc. Vea mas abajo)
firstdayofweek. Especifica el primer día de la semana. Puede tomar uno de estos valores
o constantes :
Constante Valor Descripción
vbUseSystem 0 El especificado en el sistema operativo.
VbSunday 1 Domingo (valor por defecto)
vbMonday 2 Lunes
vbTuesday 3 Martes
vbWednesday 4 Miércoles
vbThursday 5 Jueves
vbFriday 6 Viernes
vbSaturday 7 Sábado
firstweekofyear Especifica cual es la primera semana del año. Puede tomar uno de
los siguientes valores o constantes :
25. Visual Basic 6.0
Constante Valor Descripción
vbUseSystem 0 Usa el valor del sistema operativo
vbFirstJan1 1 La primera semana es la que contiene al día 1 de
Enero(Valor
por defecto
vbFirstFourDays 2 La primera semana es la que contiene al menos, 4 días de
ese
año (Rec. ISO - 8601)
vbFirstFullWeek 3 La primera semana es la que tiene todos sus días en ese
año
No se complique la vida con el tema del primer día de la semana ni la primera semana del
año. No lo usará con frecuencia. Centrémonos mas en el parámetro Formato. Puede
tomar muchos valores. Veamos los principales. Primero para números
Observe que usamos la expresión Variable =Format (1234567,”Formato”) para todos los
ejemplos de números.
Para poner los números separados por millares :
Variable = Format(1234567, "##,###,###") Variable = 1.234.567
(Cada carácter # indica que ahí va un número. El separador debe ser una coma, no un
punto, aunque esto depende del idioma que esté usando)
Puede poner una de estas expresiones, eso si, siempre entre comillas dobles :
General Number Muestra el número tal como lo tecleó
Currency En formato de la moneda de su sistema operativo
Fixed Sin separador de millar y dos decimales (1234567,00)
Standard Con separador de millares y dos decimales (1.234.567,00)
Percent Multiplica el número por cien y lo presenta cono
porcentaje(123456700,00%)
Scientific Usa notación científica (1,23E+06)
.
Para fechas (Observe que usamos el ejemplo Format(Now, “Formato”) y Now =
21/07/98
a las 22:16:00 y pico)
General Date 21/07/98 22:16:00
Long Date martes 21 de julio de 1998
Medium Date 21-jul-98
Short Date 21/07/98
yyyy-mm-dd 1998-05-21
yy-mm-dd 98-07-21
Long Time 22:19:53
Medium Time 10:20 PM
Short Time 22:20
hh :mm :ss 22 :21 :29
hh :mm 22 :21
26. Visual Basic 6.0
Carácterísticas del Lenguaje Visual Basic
Comentarios
Cuando una frese va precedida de una comilla simple ( ' ), Visual Basic interpreta que esa frase es
un comentario y no ejecuta acción alguna sobre ella. Por ejemplo:
'Calculo de la velocidad media
suma = 0 ' Se inicializa la variable suma al valor 0
Constantes Numéricas y de Caracteres
Una constante es un valor que no cambia durante la ejecución de un programa. Visual Basic
admite números y caracteres.
Variables
Una variable contiene un valor que puede modificarse a lo largo de la ejecución de la aplicación.
Cada variable tiene atributos propios como:
Nombre : Es el nombre que utilizamos para referirnos a la variable en la aplicación.
Tipo : El tipo determina qué clase de valores puede almacenar ( numérico, carácter, fecha, etc)
Ambito : El ámbito de una variable especifica en qué parte de la aplicación la variable es
conocida y por lo tanto puede utilizarse.
Nombres de Variables
El nombre de una variable tiene que comenzar por una letra, puede tener hasta 255 caracteres de
longitud y debe ser único dentro de su ámbito.
Los caracteres pueden ser letras, dígitos y el carácter de su subrayado.
No se puede utilizar el punto ni otros caracteres que tienen un significado especial para Visual
Basic; por ejemplo, los paréntesis.
Una palabra reservada tiene un significado especial para Visual Basic. Son palabras reservadas
las sentencias predefinidas (For), los nombres de las funciones(Val), métodos o eventos (Click),
propiedades (Caption), tipos (Integer) y operadores and). El nombre de una variable no puede ser
una palabra reservada.
27. Visual Basic 6.0
Tipos de datos
Una variable puede ser de alguno de los tipos de datos siguientes:
Tipo Descripción Rango
Integer Entero -32768 a
( 2 bytes ) 32767
Long Entero largo -2147483648 a
(4 bytes) 2147483648
Single Real simple -3.40E+38 a
precisión (4bytes) -3.40E+38
Double Real Doble -1.79D+308 a
precisión (4bytes) 1.79D+308
Currency Númerico con punto -922337203685477.58 a
Decimal fijo (8bytes) 922337203685477.58
String Cadena de caracteres 64K cars. en 16-bits
31
( 1 byte por carácter ) 2 cars. en 32-bits
Byte Carácter (1 byte) 0 a 255
Boolean Boolean (2 bytes) True o False
Date Fecha/hora (8 bytes) 1/Enero/100 a 31/Dic/9999
Object Referencia a un objeto Cualquier referencia a un objeto
Variant Con números Cualquier valor numérico
16 bytes hasta el intervalo de
Un tipo Double
Antes de utilizar una variable, es un buen hábito declarar su tipo. Una forma de hacer esto es
utilizando la sentencia Dim ( o una de la palabras Public, Private o Static). Cualquier declaración
de éstas inicializa las variables numéricas con el valor cero y las variables alfanuméricas con el
carácter nulo. Por ejemplo:
Dim I As Integer
Dim R As Double
Dim Nombre As String
Dim Etiqueta As String * 10
Dim F As Currency
Dim L As Long, X AS Currency
Las sentencias anteriores declaran I como una variable entera, R como una variable real de
precisión doble, Nombre como una variable para contener una cadena de caracteres de longitud
variable, Etiqueta como una cadena de caracteres de longitud fija (10 caracteres), F como una
variable entera larga y X como una variable fraccionaria. Observe que en una sentencia Dim puede
realizar más de una declaración.
Cuando se declara una variable y no se especifica su tipo, se asume que es de tipo Variant. Por
ejemplo:
28. Visual Basic 6.0
Dim A, B As Integer
La sentencia anterior le puede inducir a pensar que A y B son de tipo entero, lo cual no es cierto; A
es de tipo Variant (por defecto) y B es de tipo Interger.
Si una variable se utiliza y se declara, se asume que es de tipo Variant. Por ejemplo:
L = "Dato:"
L = 3.2567
Suponiendo que L no ha sido declarada explícitamente, las sentencias anteriores declaran L como
una variable Variant que ha cambiado su tipo para comportarse como una cadena de caracteres, y
continuación vuelve a cambiar su tipo para comportarse como una variable real de doble precisión.
Declaración explícita
En Visual Basic no es necesario declarar una variable antes de utilizarla. Sin embargo, esta forma
de trabajar puede ser una fuente de errores. Por ejemplo:
Dim M As Integer, N As Integer
VarTEmp = M
' ...
N = VaTemp
En este ejemplo, VarTEmp no se ha declarado explícitamente. Esto no supone un Error, ya que
Visual Basic se encarga de crear dicha variable. Ahora observe que, por error, el nombre de esa
variable se ha escrito mal en la última sentencia. Cando Visual Basic encuentra un nuevo nombre
no puede determinar si es debido a un error o a la definición de una nueva variable.
Para evitar este tipo de errores, podemos indicar a Visual Basic que genere un mensaje de error
siempre que encuentre una variable no declarada explícitamente. Para ello, escribiremos la
sentencia siguiente en la sección de Declaraciones del formulario, del módulo o de la clase:
Option Explicit
Esta sentencia opera sólo en el formulario o en el módulo donde se haya puesto. Para tener esa
opción activa para todo el código de una aplicación, ejecute la orden Opciones del menú
Herramientas, elija elija el dialogo Entorno (Edition v6.0) y Seleccione la opción Declaración de
Variables Requerida. Seleccionada esta opcion agrega la sentencia Option Explicit en
cualquier nuevo modulo que creemos.
29. Visual Basic 6.0
Ambito de las Variables
Se entiende por ámbito de una variable el espacio de la aplicación donde la variable es visible y
por lo tanto se puede utilizar. La figura siguiente indica los lugares donde se puede declarar una
variable.
Variables utilizadas por todos los módulos
(declaración Public en cualquier módulo)
Modulo (formulario, mod. Estandar o clase)
Variables Utilizadas dentro del módulo
(declaración Dim o Private en el módulo)
Procedimientos
Variables Locales Variables Locales
(Dim o Static) (Dim o Static)
Aplicación
La tabla siguiente resume cómo debe declararse una variable en función del espacio donde
deseamos
Ambito Declaración
Local Dim, Static, o ReDim (Dentro de un procedimiento)
Módulo Dim o Private (sección de declaraciones del módulo)
Global Public (sección de delclaraciones de un módulo)
A nivel del módulo, no hay diferencias entre Dim y private, pero se aconseja utilizar private en
contraste con Public
Recuerde que un formulario (.frm) incluye controles mas código y que en módulo (.bas) o una clase
(.cls) incluye solo código.
30. Visual Basic 6.0
Variables locales
Una Variable Local se reconoce solamente en el procedimiento en el que está definida. Fuera de
ese procedimiento, la variable o es conocida. Su utilización más común es intervenir en cálculos
intermedios.
Para declarar una variable local a un procedimiento, coloque la sentencia Dim correspondiente
dentro del mismo. Por ejemplo:
Private Sub Grados_C_KeyPress(KeyAscii As Integer)
Dim GradosFahr As Double
If (KeyAscii = 13) Then
GradosFahr = Val(Grados_C.Text) * 9 / 5 + 32
Grados_F.Text = Format$(GradosFahr)
End If
End Sub
Una variable local es reinicializada cada vez que se entra en el procedimiento. En otras palabras,
una variable local no conserva su valor entre una llamada al procedimiento y la siguiente. Para
hacer que esto suceda, hay que declarar la variable estática. Visual Basic reinicializa una variable
estática solamente la primera vez que se llama al procedimiento. Para declarar una variable
estática, utilice la palabra Static, en lugar de Dim. Por Ejemplo:
Static var_ent As Integer
Para hacer que todas las variables de un procedimiento sean estáticas, declare el procedimiento
estático. Por ejemplo:
Public Static Sub Test()
'...
End Sub
Si una variable aparace en un procedimiento y no está explícitamente declarada, es por defecto
local. En cualquier caso, se aconseja declarar todas las variables explicitamente.
Variables Globales
Una variable global es una variable declarada a nivel del módulo pero que puede ser accesida
desde cualquier otro modulo. Para hacer que una variable sea global o pública, hay que declararla
Public en la sección de declaraciones del modulo. Por Ejemplo:
Public var1_global As Double, var2_global As String
Cuando una variable Public, por Ejemplo Conta, se declara en un formulario, por ejemplo Form1,
para acceder a ella desde otro módulo es necesario especificar su pertenencia; esto es, de qué
objeto es dato miembro dicha variable:
MsgBox Form1.Conta 'Visualiza el Valor de conta
No se pueden declarar varaibles globales en un procedimiento
31. Visual Basic 6.0
Variables con el mismo nombre
Una variable local y otra a nivel del módulo pueden tener el mismo nombre, pero no son la misma
varaible. La regla para estos casis es que el procedimiento siempre pre utiliza la variable de nivel
más cercano ( local, módulo y global ). En otro caso, debe de calificar la variable. Por ejemplo:
Public Tem As Integer 'declaración en Form1
Public Sub Test() 'procedimiento en Modulo1
Dim Temp As Integer
Temp = 10 'referencia a la variable local
MsgBox Form1.Temp 'referencia a la variable global
End Sub
Si varias variables públicas comparten el mismo nombre en diferentes módulos, para diferenciarlas
en el momento de referenciarlas es necesario especificar su pertenencia. Por ejemplo, si hay una
variable entera X declarada en los módulos Form1 y Modulo1, nos podemos referir a ellas así:
MsgBox Form1.X 'vizualiza el valor de la X en Form1
MsgBox Modulo1.X 'visualiza el valor de la X de Modulo1
Es una buena práctica en programación que los nombres de las variables sean diferentes entre sí,
de los nombres de las propiedades y de los módulos.
Constantes Simbólicas
A menudo utilizamos valores contantes una y otra vez en el código, o bien el código depende de
ciertos números dificiles de recordar. En estos casos, la mejor solución es definir estos valores
como constantes simbólicas y utilizar en lo suvesivo los nombres que identifican estas constantes.
Para definir una constante simbólica, utilice la sigueinte sintanxis:
[Public | Private] Const constante [ As Tipo ] = expresion
Para nombrar una constante, se utilizan las mismas reglas que se aplican para crear variables. La
expresión puede ser numérica, alfanumérica o de tipo fehca y hora. Por ejemplo:
Public Const MAX_ELEMS = 99
Public Const VERSION = "ver. 4.05"
Const PI = 3.1415926, DOS_PI = 2 * PI
Const FECHA_POR_DEFECTO = #14/09/99#
Es una buena práctica definir todas las constantes globales en un único módulo.
El ámbito de una constante se define por las mismas reglas que las variables.
32. Visual Basic 6.0
Utilizando el examinador de objetos (object browser) incluido en Visual Basic puede ver y utilizar,
sin necesidad de declarar, muchas de las constantes que usted pueda necesitar. Para ello pulse la
tecla F2 o ejecute la orden Examinador de Objetos del menú Ver. La ventana que se visuliza se
muestra a continuación:
Operadores
La tabla que se muestra a continuación presenta el conjunto de operadores que soporta Visual
Basic colocados de mayor a menor prioridad ( entre ellos y entre categorías ). Los operadores que
aparecen sobre una misma línea tienen igual prioridad. Las operaciones entre paréntesis se
evalúan primero, ejecutandose primero los paréntesis más internos.
Tipo Operación Operador
Aritmético Exponenciación ^
Cambio de Signo -
Multiplicación y división *,/
División Entera
Residuo de una División Entera Mod
Suma y Resta +,-
Concatenación Concatenar o enlazar &
Relacional Igual, distinto, menor, mayor, ... =,<>,<,>,<=,>=
Otros Comparar dos expresiones de cars. Like
Comparar dos referencias a objetos Is
Lógico Negación Not
And And
Or inclusiva Or
Or exclusiva Xor
Equivalencia (Opuesto a Xor) Eqv
Implicación Imp
(falso si primer operando verdadero
y segundo operando falso)
33. Visual Basic 6.0
Utilización del Tipo Variant
El tipo de dato Variant permite almacenar todos los tipos de datos definidos, como por ejemplo,
datos enteros, reales, cadenas de caracteres, o datos relativos a la fecha y a la hora, lo que lo
define como un tipo genérico. Cuando Visual Basic opera con datos de tipo Variant, ejecuta
automáticamente las conversiones necesarias. No obstante, hay que tener en cuenta las siguientes
consideraciones:
Cuando se ejecutan operaciones aritméticas con variables de tipo Variant, su contenido tiene
que poder ser convertido a un valor numérico.
Cuando se ejecutan operaciones aritméticas sobre una variable Variant que contiene un Byte,
un Integer, un Long o un Single y el resultado exede del rango del tipo original, el tipo de la
variable pasa a ser el necesario para contener el resultado.
Como el operador + puede ser utilizado para sumar valores y concatenar cadenas de
caracteres, dependiendo del contenido de las variables, los resultados pueden ser
inesperados. Por ello, para concatenar variables de tipo Variant, y en general para evitar
ambigüedades, utilizaremos el operador &, en lugar del operador +. El operador & ejecuta la
concatenación sin tener en consideración qué contiene las variables.
Si intenta ejecutar una operación o función matemática sobre una variable Variant que no contenga
un valor que pueda ser interpretado como un número, ocurrirá un error. Para evitar eso, utilice la
función IsNumeric para interrogar si dicha variable contiene un valor que pueda ser utilizado como
un número. Por ejemplo:
Dim Dato 'Variant por defecto
Dato = "123A" 'cadena de caracteres "123A"
If IsNumeric(Dato) Then
Dato = Dato + 1111
Else
Dato = Dato & "5" 'cadena de caracteres "123A5"
End If
Cuando usted quiera conocer el tipo de dato que almacena una variable Variant, utilice la función
VarType. Por Ejemplo:
Sub TipoDato (Dato As Variant)
Dim tipo As Integer
Tipo = VarType(Dato)
Select Case Tipo
Case 0
MsgBox "Vacío"
Case 1
MsgBox "Null"
Case 2
MsgBox "Integer: " & dato
Case 3
MsgBox "Long: " & dato
Case 4
MsgBox "Single: " & dato
Case 5
MsgBox "Double: " & dato
Case 6
MsgBox "Currency: " & dato
34. Visual Basic 6.0
Case 7
MsgBox "Fecha/Hora: " & dato
Case 8
MsgBox "String: " & dato
Case 11
MsgBox "Boolean: " & dato
Case 17
MsgBox "Byte: " & dato
End Select
End Sub
Conversiones de Tipos de Datos
Visual Basic proporciona las funciones de conversión siguientes:
CBol(expresión) conversión a un valor tipo Boolean
CByte(expresión) conversión a un valor tipo Byte
CCur(expresión) conversión a un valor tipo Currency
CDate(expresión) conversión a un valor tipo Date
CDbl(expresión) conversión a un valor tipo Double
CInt(expresión) conversión a un valor tipo Integer
CLng(expresión) conversión a un valor tipo Long
CSng(expresión) conversión a un valor tipo Single
CStr(expresión) conversión a un valor tipo String
CVar(expresión) conversión a un valor tipo Variant
CErr(expresión) conversión a un valor tipo Error
Las variables Variant también pueden contener calores de tipo Date y con ellas, puede ejecutar
operaciones aritmeticas y comparaciones. Por ejemplo:
Dim Dato 'Variant por defecto
Dato = Now 'Now Devuelve la Fecha y Hora Actual (dd/mm/aa hh:mm:ss)
Dato = Dato - 1 'menos 1 dia
If Dato > #24/10/95 3:00:00# Then
Dato = Dato - 1/24 'menos 1 hora
End If
Dato = Dato - (10/24/60) 'menos 10 minutos
Para verificar si un determinado valor puede sonsiderase comouno del tipo Date (fecha/hora),
utilice la función IsDate.
Para saber si una variable Variant ho ha sido incializada, es decir que contiene "" Vacío (Carácter)
o Cero (para los numericos), utilice la Función Empty(). Para saber si contiene un valor Null utilice
IsNull()
35. Visual Basic 6.0
El tipo String
Una variable de tipo String permite almacenar una cadena de caracteres y manipularla utilizando
las funciones proporcionadas por Visual Basic. Por Ejemplo:
Private Sub Command1_Click()
Dim Nombre As String
Nombre = “Marvin Cardoza”
Nombre = Left(Nombre,4)
End Sub
Despues de ejecutarse este procedimiento, el contenido de Nombre es “Marv”. La varaible Nombre
está definida como una cadena de caracteres de longitud variable. Para declarar Nombre como
una cadena de caracteres de longitud fija, por ejemplo, de 60 caraceres, proceda como se indica a
continuación:
Dim Nombre As String * 60
Nombre = “Marvin Cardoza”
En el ejemplo anterior, si asignamos a Nombre menos de 60 caracteres, se completa con espacios
en blanco hasta 60 caracteres. Em estos casos pueden ser útiles las funciones Ltrim, Rtrim, Trim,
que devuelven la cadena de caracteres sin espacios a la izquierda, sin espacios a la derecha o sin
espacios a la izquierda y a la derecha, respectivamente.
Sentencias de Control
Las sentencias de control, denominadas también estructuras de control, permiten tomar decisiones
y realizar un procesos repetidas veces. Visual Basic dispone de las siguientes estructuras:
If ... Then ... Else
Select Case
Do ... Loop
For ... Next
For Each ... Next
If ... Then ... Else
If condición Then sentencia(s) [Else sentencia(s)]
If condición Then
sentencias(s)
[Else
sentencia(s) ]
End If
If KeyAscii = 13 then
GradosFahr = Val(Grados_C.Text) * 9 / 5 + 32
Grados_F.Text = Format$(GradosFahr)
End If
36. Visual Basic 6.0
Para indicar que se quiere ejecutar uno de varios bloques de sentencias dependientes cada uno de
ellos de una condición, la estructura adecuada es la siguiente:
If condición Then
Sentencia-1
[ElseIf condición Then
sentencias-2]...
[Else
sentencia-n ]
End If
Ejemplo:
If C > 100 Then
Resu = C * P * 0.6
ElseIf C >= 25 Then
Resu = C * P * 0.8
ElseIf C >= 10 Then
Resu = C * P * 0.9
Else
Resu = C * P
End If
Select Case
Esta sentencia permite ejecutar una de varias acciones en función del valor de una expresión. Es
una alternativa a If ... Then ... ElseIf cuando se compara la misma expresión con diferentes
valores.
Select Case expr-test
Case lista-1
[sentencias-1]
[ Case lista-2 ]] ...
[sentencias-2]
[ Case lista-n ]]
[sentencias-n]]
End Select
Select Case X
Case 1
Text.Text = “1”
Case 2,3
Text.Text = “2 o 3”
Case 4 To 9
Text.Text = “4 a 9”
Case Else
Text.Text = “X<1 o X>9 ”
End Select
37. Visual Basic 6.0
Do ... Loop
Un Loop (bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea
cierta, o hasta que una condición dada sea cierta. La condición puede ser verificada antes o
después de ejecutarse el conjunto de sentencias.
Formato 1:
Do [ { While | Until } condición ]
[sentencias]
[Exit Do]
[sentencias]
Loop
Formato 2:
Do
[sentencias]
[Exit Do]
[sentencias]
Loop [ { While | Until } condición ]
Donde condición es cualquier expresión que se evalúe a True o a False.
Esta sentencia nos permite realizar varias estructuras diferentes. Permite, como se aprecia en los
formatos, crear bucles con la condición de terminación al final o al principio del bloque de
sentencias. Por ejemplo;
Sub Form_Click()
Dim I As Integer, Suma As Integer
I = 1
Do While I <= 99 „Hacer mientras I <= 99
Suma = Suma + I
I = I + 2
Loop
End Suma
En este ejemplo indica que cuando hagamos clic sobre el formulario se visualizará sobre el mismo
la suma de los números impares entre 1 y 99. El mismo resultado se obtiene con el ejemplo que se
presenta a continuación:
Sub Form_Click()
Dim I As Integer, Suma As Integer
I = 1
Do „Hacer hasta que I < 1
Suma = Suma + I
I = I - 2
Loop Until i < 1
End Suma
La sentencia Exit Do permite salir de un bucle Do ... Loop antes de que finalice éste.
38. Visual Basic 6.0
For ... Next
La sentencia For da lugara un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto
número de veces.
For variable = expresión 1 To expresión 2 [Step expresión 3]
[sentencias]
[Exit For]
[sentencias]
Next [variable[,variable]...]
La sentencia Exit For permite salir de un bucle For ... Next antes de que éste finalice.
Ejemplo:
Sub Form_Click()
Dim I As Integer, Suma As Integer
For I = 1 To 99 Step 2 „Para I=1,3,5.... hasta 99
Suma = Suma + 1
Next I
End Sub
Este ejemplo indica que cuando hagamos clic sobre el formulario se visualizará sobre el mismo la
suma de los números impares entre 1 y 99.
Si el valor de la expresión 3 es negativo, se comprueba si la variable es menor que la expresión 2,
encuyo caso se pasa a ejecutar la siguiente sentencia Next. En otro caso, se ejecuta el bucle y se
decrementa la variable. Este proceso se repite hasta que la variable sea menor que la expresión 2.
Por ejemplo:
Sub Form_Click()
Dim I As Integer, Suma As Integer
For I = 99 To 1 Step -2 „Para I=99,97.... hasta 1
Suma = Suma + 1
Next I
End Sub
39. Visual Basic 6.0
For Each ... Next
La sentencia For Each ... Next es similar a la sentencia For, con la diferencia de que ahora se
repite un grupo de sentencias por cada elemento de una colección de objetos o de un array. Esto
es especialmente util cuando no conocemos cuántos elementos hay en la colección o en el array.
Su sintaxis es la siguiente:
For Each elemento In grupo
[sentencias]
[Exit For]
[sentencias]
Next elemento
Donde elemento es una variable de tipo Variant que representa a cada uno de los elementos de la
colección o del array representado por grupo. Por ejemplo, el procedimiento que se muestra suma
los elementos de un array pasado como argumento:
Sub Form_Click()
Dim X, Suma
For Each X In Array
Suma = Suma + X
Next I
MsgBox Suma
End Sub
La sentencia For de este ejemplo indica que por cada valor X en el array ArrayX se ejecute la
sentencia:
Suma = Suma + X
Arrays
Un array permite referirse a una serie de elementos del mismo tipo por un mismo nombre y
referenciar un único elemento de la serie utilizando un índice.
Visual Basic, permite definir arrays de variables de una o más dimensiones y de cualquier tipo de
datos (tipos fundamentales y tipos definidos por el usuario), e introduce una nueva clase de arrays,
arrays de controles, necesarios para escribir menús, para crear nuevos controles en tiempo de
ejecución o para hacer que una serie de controles tengan asociado un mismo procedimiento para
cada tipo de suceso.
Arrays de variables
Los arrays discutidos en este apartado permiten referirse a una serie de variables por un mismo
nombre y acceder individualmente a cada una de ellas utilizando un índice (variables
subindicadas). Este tipo de arrays tiene que declarse en el código y pueden tener una o más
dimensiones.
40. Visual Basic 6.0
Arrays estáticos
Para declarar un array estático (array con un número fijo de elementos), Visual Basic hace tres
consideraciones importantes:
Para declarar un array global, hágalo en la sección de declaraciones de un módulo utilizando la
sentencia Public.
Para declarar un array a nivel de un módulo, hágalo en la sección de declaraciones del modulo
utilizando la sentencia Private o Dim.
Para declarar un array local a un procedimiento, utilice la sentencia Dim o Static dentro del
propio procedimiento.
Un array tiene que ser declarado explícitamente, y los índices del mismo deben estar en el rango
31 31
-2 a 2 . A continuación se muestran algunos ejemplos:
Dim Array_A(19) As String 'Arreglo de 19 posiciones tipo carácter
Dim ArrayB(5,7) As Integer 'Declara un arreglo de 5 columnas y 7 filas
Arrays Dinámicos
Cuando las dimensiones de un array no son siempre las mismas, la mejor forma de especificarlas
es mediante variables. Un array declarado de esta forma es un array dinámico. El espacio
necesario para un array estático se asigna al iniciarse el programa y permanecerá fijo. El espacio
para un array dinámico será asignado durante la ejecución del programa. Un array dinámico,
puede ser redimensionado en cualquier momento durante la ejecución.
Para crear un array dinámico:
Declare el array en la sección de declaraciones de un modulo con una sentencia Public si lo
quiere global o con Private o Dim si lo quiere a nivel del modulo, o en un procedimiento con
Static o Dim si lo quiere local. Para especificar que el array va a ser dinamico deje la lista de
dimensiones vacía. Por ejemplo:
Dim Array_A()
Asine el número actual de elementos con la sentencia ReDim:
ReDim Array_A( N + 1 )
Procedimientos y Funciones
En Visual Basic, el código es almacenado en módulos, que pueden estar en un formulario,
módulos estándar y clases. Cada módulo puede contener:
Declaraciones (variables, constantes...)
Procedimientos conducidos por eventos
Procemientos y funciones estándar
Procedimientos Property
Un procedimiento conducido por eventos es el código que es invocado cuando un objeto reconoce
que ha ocurrido un determinado suceso o evento ( Por ejemplo el click ).
41. Visual Basic 6.0
Cuando varios procedimientos conducidos por eventos necesitan ejecutar un mismo proceso, la
mejor forma de proceder es colocar el código común en un Procedimiento Estándar, perteneciente
a un módulo estandar, que será invocado desde cada procedimiento conducido por un suceso que
necesite ejecutar dicho código. De esta forma se elimina la necesidad de duplicar código. Un
procedimiento estándar es invocado cuando se hace una llamada explícita al mismo.
Un procedimiento estándar puede escribirse como procedimiento Sub o como función Function.
Un procedimiento Property permite crear propiedades para una clase y manipularlas. Los módulos
de clase son la base de la programación orientada a objetos en Visual Basic. Los objetos de estas
clases pueden incluir sus propias propiedades y métodos, pero no sus propios eventos. Tanto las
clases como los procedimientos Property serán estudiados en otro capitulo dedicado a objetos de
clases.
Funciones (Function)
Una función está diseñada para retornar un valor determindado.
Sintaxis:
Function nombre [ ( parametros) ] [ As tipo ]
[sentencias]
[nombre = expresión]
[ Exit Function ]
End Function
nombre : es el nombre de la función; su tipo determiona el tipo de datos que devuelve la
función. Para especificar el tipo, la clausula As tipo ( Integer, Long, Single,
Double, Currency, String, Variant, etc.)
parametros son una lista de variables, que se corresponden con los argumentos que son
pasados cuando es invocada la función.
expresión define el valor devuelto por la función. Este valor es almacenado en el propio
nombre de la función, que actua como variable dentro del cuerpo de la misma.
Si no se efectua esta asignación, el resultado devuelto será ) si ésta es númerica,
nulo ("") si la función es de caracteres, o vacío si la función es Variant.
Exit Function permite salir de una función. Exit Function no es necesaria a no ser que se
necesite retornar a la sentencia inmediamente a contiuación de la que efectuó
la llamada antes de que la función finalice.
End Function Fin de la función
La llamada a una función es de la forma:
variable = nombre [(argumentos)]
42. Visual Basic 6.0
El siguiente ejemplo muestra una función que realiza una suma de dos numeros Enteros y
devuelve el resultado de la suma:
Function f_Suma ( p_valor1 As Integer, p_valor2 As Integer) As Long
Dim v_resultado As Long
v_resultado = p_valor1 + p_valor2
f_Suma = v_resultado
End Function
La llamada a esta función se hará de la forma siguiente:
v_valor = f_Suma(10, 20)
Procedimientos (Sub)
Un procedimiento funciona casi igual que una función la direfencia radica en que los
procedimientos no retornan ningun valor.
La sintaxis que define un procedimiento es la siguiente:
Sub nombre [(parametros)]
[sentencias]
[Exit Sub]
[sentencias]
End Sub
Llamada a un procedimiento:
nombre [(argumentos)]
43. Visual Basic 6.0
Convenciones de Codificación de Visual Basic
Prefijos Sugeridos para controles:
Tipo de Control Prefijo Ejemplo
Formulario frm frmRegiones
Etiqueda lbl lblMsjAyuda
Cuadro de Texto txt txtApellidos
Marco (frame) fra fraLenguaje
Botón de Comando cmd cmdSalir
Casilla de Verificación chk chkSoloLectura
Grupo de Opciones opt optSexo
Cuadro Combinado cbo cboRegiones
Cuadro de Lista lst lstDeptos
Control Numerico (timer) tmr tmrAlarma
Control de Datos dat datEmpleados