Documente Academic
Documente Profesional
Documente Cultură
Explorador
de Proyectos
(3)
Cuadro de
herramientas
(5)
Ventana de
Propiedades
(4)
Ventana de
Posicin de
formulario
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 aplicacin.
Podemos editar, abrir y cerrar la ventana, pero todo esto lo veremos a fondo ms 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 visin 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.
Formularios (Form)
Formularios MDI (MDI Form)
Modulos (Module)
Reportes (Data Report)
Entre otros.
Descripcin
Nombre del formulario (Ej. FrmRegiones)
Color de fondo del Formulario
Estilo del Borde de la Ventana : Sirve para permitir el Ajuste del tamao de la
Ventana o no.
Titulo de la Ventana
Permite habilitar/Desahabilitar el Menu de Control de la Ventana.
Icon
MaxButton
MDIChild
Minbutton
Moveable
Picture
WindowState
La ventana de propiedades:
Nombre del objeto
al cual le modifica
las propiedades
Descripcin de la
propiedad
Propiedades del
objeto
Para ejecutar el formulario y verlo como se comportar segn las propiedades que le hemos fijado
siga las siguientes instrucciones:
1. Seleccione en el menu principal la opcin de
Proyecto (Proyect).
2. Luego seleccione la ltima opcin que es
Propiedades del Proyecto (Proyect1 Properties).
3. Seleccione el objeto que desea ejecutar y luego
presione el botn Aceptar.
4. Presione el botn de la barra de herramientas
Iniciar (Start)
5. Si quiere ejecutar un objeto diferente repita los pasos
del 1 al 4.
Descripcin
Sucede cuando presionamos una vez el botn izquierdo del mouse sobre el
formulario.
Ocurre cuando se inicia el formulario
Ocurre cuando finaliza el formulario
Sucede cuando a ocurrido un error en la ejecucion del codigo dentro 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 Cdigo (View Code).
Existen propiedades que podemos modificar en modo diseo (con la ventana de propiedades) y en
modo ejecucin (con cdigo). Sin embargo hay otras propiedades que solo se puede modificar en
modo diseo.
Ejemplo:
Cuadro de
Herramientas de
Visual Basic.
Categoras de Controles:
Controles intrnsecos: 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 extensin .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 Intrnsecos
El cuadro de herramientas de Visual Basic contiene las herramientas que puede utilizar para
dibujar controles en los formularios.
ICONO
NOMBRE DE CLASE
Casilla de Verificacin
CheckBox
Cuadro Combinado
ComboBox
Botn de comando
CommandButton
Datos
Data
DESCRIPCION
Presenta una opcin de tipo Verdadero o
Falso, o S o No. Puede activar varias casillas
de verificacin en un mismo formulario al
mismo tiempo
Cambia un cuadro de texto y un cuadro de
lista. Permite que el usuario escriba una
seleccin o seleccione un elemento de una
lista desplegable.
Ejecuta un comando o una accin cuando un
usuario hace clic en l
ICONO
NOMBRE DE CLASE
DESCRIPCION
DirListBox
DriveListBox
FileListBox
Marco
Frame
Barras de desplazamiento
horizontal y vertical
HscrollBar y VscrollBar
Imagen
Imagen
Etiqueta
Label
Lnea
Line
Cuadro de lista
ListBox
Contenedor OLE
OLE
Botn de opcin
OptionButton
Cuadro de imagen
PictureBox
ICONO
NOMBRE DE CLASE
DESCRIPCION
Agrega un rectngulo, un cuadrado, una
elipse o un circulo a un formulario, marco
o cuadro de imagen
Forma
Shape
Cuadro de Texto
TexBox
Cronometro
Timer
Nota: La herramienta puntero (la primera herramienta del cuadro de herramientas) proporciona una
forma de mover y cambiar el tamao de los formularios y los controles. No es un control.
En la tabla siguiente se enumeran los controles ActiveX estndar disponibles en Visual Basic.
ICONO
NOMBRE DE CLASE
Dialogo comn
CommonDialog
FlexGrid de Microsoft
MSFlexGrid
DESCRIPCION
Proporciona un conjunto de cuadros de
dialogo estndar para operaciones como
abrir y guardar archivos, establecer
opciones de impresin y seleccionar
colores y fuentes.
Proporciona la mayora de las funciones
del control.
ComboBox estndar, as como macro
capacidad de acceso a datos.
Control con apariencia de hoja de calculo
y con enlaces de datos que presenta una
serie de filas y columnas que representa
una serie de filas y columnas que
representan registros y campos de un
objeto RecordSet.
Proporciona
la
mayora
de
las
caractersticas del control ListBox
estndar, as como mayor capacidad de
acceso a datos.
Es similar al control DBGrid, pero tiene
caractersticas adicionales de formato,
agrupacin y enlace de datos, adems
de opciones de personalizacin.
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 botn 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 ms lgico modificar las propiedades Name para que sean algo ms descriptivas.
Como puede ser difcil distinguir entre el botn Commnad1 de MiForm y el botn Command1 de
SuForm, la convencin de nomenclatura es recomendable, especialmente cuando una aplicacin
se compone de varios mdulos de formulario, mdulos estndar y mdulos de clase.
Puede utilizar un prefijo para describir la clase, seguido de un nombre descriptivo del control. El
uso de eta convencin de nombre hace que el cdigo sea mas autodescriptivo y agrupa objetos
similares alfabticamente en el cuadro de lista Objeto.
Los nombres de los formularios y los controles:
Deben empezar por una letra
Solo deben contener letras, nmeros y carcter de subrayado (_); no se permiten signos de
puntuacin ni espacios en blanco.
No pueden tener una longitud mayor de 40 caracteres.
Control
Propiedad
Casilla de verificacin
Value
Cuadro combinado
Text
Botn de comando
Value
Dialogo comn
Action
Datos
Caption
Text
Text
Text
Control
Propiedad
Path
Drive
FileName
Marco
Caption
Value
Imagen
Picture
Etiqueta
Caption
Linea
Visible
Cuadro de lista
Text
Botn de opcin
Value
Cuadro de imagen
Picture
Forma
Shpe
Cuadro de texto
Text
Cronometro
Enabled
Value
Propiedades ms comunes:
Nombre
Name
Pattern
Path
FileName
Descripcin
Nombre del Control.
Indica los archivos que sern desplegados por el control (Ej: *.*, *.bmp, *.jpg, etc)
Ruta de acceso de donde se desplegarn los archivos
(disponible solo en modo ejecucin)
Nombre del archivo seleccionado
Evento ms comn:
Nombre
Click
Descripcin
Cuando presionamos el botn izquierdo del Mouse sobre el control
Ejemplo:
Modificaremos la propiedad Pattern y la fijaremos con *.bmp, para que despliegue todos archivos
con extensin BMP.
Ahora cuando ejecute el formulario, mostrar las imgenes del directorio Windows y cuando usted
le d click en algun archivo, la imagen se mostrar en el control PictureBox.
Propiedades ms comunes:
Nombre
Name
Path
Descripcin
Nombre del Control.
Ruta de acceso de donde se desplegarn los archivos
(disponible solo en modo ejecucin)
Evento ms comn:
Nombre
Change
Descripcin
Ocurre cuando el usuario selecciona un directorio diferente.
Ejemplo:
Propiedades ms comunes:
Nombre
Name
Drive
Descripcin
Nombre del Control.
Contiene la unidad de disco seleccionada
Evento ms comn:
Nombre
Change
Descripcin
Ocurre cuando el usuario selecciona una unidad diferente.
El control OptionButton, como parte de un grupo de opciones con otros botones de opcin,
presenta varias opciones entre las que el usuario solo puede elegir una.
Propiedades ms comunes:
Nombre
Name
Value
Caption
Descripcin
Nombre del Control.
True: Cuando esta seleccionado
False: Cuando esta sin seleccin
Contiene la Etiqueta que se mostrar al usuario
Evento ms comn:
Nombre
Click
Descripcin
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.
Funcin
Str (nmero)
Val(cadena numrica)
Left (cadena, n)
Right (cadena, n)
Descripcin
Convierte un nmero a una cadena en numeracin decimal.
Obtiene el valor (el nmero) correspondiente a esa cadena.
Extrae los n primeros caracteres de una cadena,
comenzando por la izquierda.
Si cadena = Curso de Visual Basic
Resultado = Curso de V
Mid (cadena, m, n)
Space (n)
---->
---->
Resultado = CURSO DE
LenB (Cadena)
---->
---->
Len (cadena)
UCase (cadena)
---->
LCase (cadena)
---->
Resultado = 21
---->
Resultado = aaaaaaaa
---->
Resultado = AAAAAAAA
---->
Resultado = AAAAAAAA
Resultado = A
Funcin
Ltrim
Rtrim
Trim
Descripcin
Elimina los posibles espacios que tenga una cadena por su
izquierda.
Elimina los posibles espacios que tenga una cadena por su
derecha.
Elimina los espacios que tenga una cadena, tanto por su
izquierda como por su derecha. (No elimina los espacios
centrales de la cadena)
Busca la cadena1 dentro de cadena y devuelve el nmero
de orden dentro de cadena donde se encuentra la primera
letra de cadena1
Resultado = InStr (cadena, "sua") ---->
StrConv
Resultado = 12
Funcin
Cint
Abs
Sgn
Sqr
Exp
Descripcin
Parte entera, Devuelve la parte entera de un nmero con
decimales
Valor Absoluto,
Devuelve el valor absoluto de un
nmero
Signo, Devuelve el signo de un nmero
Raz cuadrada, Devuelve la raz cuadrada de un nmero
Exponenciacin, Devuelve el nmero elevado al exponente
indicado
Logaritmo, Devuelve el logaritmo natural de ese nmero
Log
Sin
Cos
Tan
Atn
Timer
Randomize (Numero)
NOTA MUY IMPORTANTE.- Los nmeros aleatorios generados de esta forma son
siempre iguales, eso s, dependiendo del nmero que se le introduzca como
parmetro. Esta generacin de nmeros no produce nmeros aleatorios pues como
se dijo, dependen del numero que se meta como parmetro, y si este se repite, se
repite la sucesin de nmeros que nos crea el generador aleatorio.
La forma de obtener nmeros realmente aleatorios es introducir como parmetro un
nmero que sea variable con el tiempo. Ese nmero no puede ser otro que el nmero
timer visto antes. Y siempre con la precaucin de que medie mas de un segundo entre
dos instrucciones Randomize. La funcin toma entonces la forma:
Randomize Timer
La funcin Randomize devuelve una variable Rnd con un nmero comprendido
entre 0 y 1 (Nunca ser 0 ni 1) Leyendo el valor de la variable sucesivas veces, se puede
obtener una sucesin de nmeros aleatorios. No es necesario ejecutar la instruccin
Randomize Timer cada vez que se quiera obtener un dato de la variable Rnd.
Un ejemplo. Generador de nmeros para la Lotera Primitiva
Supongamos que tenemos un formulario con una etiqueta de nombre Label1, un botn de
comando de nombre Command1. Cuando hagamos click sobre el botn de comando
Las fechas son cadenas especiales. Visual Basic sabe obtener y tratar la informacin
relativa a la fecha y la hora. Dispone para ello de una declaracin de variable: Date. Una
variable declarada como date puede contener una fecha, una fecha y una hora o una hora
solamente.
Funcin
Date
Time
Now
WeekDay
Day
Month
Year
Hour
Minute
Second
DateAdd
DateDiff
DatePart
DateSerial
TimeSerial
DateValue
Descripcin
Devuelve la fecha de hoy. Esta fecha la toma del reloj del
ordenador.
Devuelve la hora actual.
Devuelve la fecha y hora actual.
Devuelve el da de la semana (En nmero, 1=Domingo,
2=Lunes,...)
Obtiene el da, a partir de una fecha
Obtiene el mes a partir de una fecha.
Obtiene el ao a partir de una fecha.
Obtiene la hora a partir de una hora
Obtiene el minuto a partir de una hora.
Obtiene el segundo a partir de una hora.
Aade un intervalo de tiempo a una fecha
Obtiene el intervalo de tiempo entre dos fechas
Devuelve una parte de una fecha (semana, trimestre, etc.)
Compone una fecha a partir de parmetros relativos
Compone una hora a partir de parmetros relativos.
Devuelve una fecha a partir de un dato que se le parezca y
VB pueda obtener de l una fecha vlida
Mediante estas instrucciones podemos obtener el dato necesario de una fecha u hora. Por
ejemplo, para obtener el da de hoy solamente:
Da = Day (Now)
Da ser un nmero
El da de la semana lo obtendramos
Diasemana = WeekDay (Now)
Fecha =12/07/96
Funcin FORMAT
Esta funcin permite presentar cadenas de numricas o fechas de una determinada
forma. Permite establecer el Formato de esa cadena.
Si recurre a la ayuda de VB acerca de esta funcin se va a enterar muy poco de lo que
puede dar de s. La sintaxis que presenta es :
Format(expresin[, formato[, primerdadesemana[, primerasemanadelao]]])
Lo mejor que puede hacer con esta definicin de la sintaxis de Format es olvidarla. No le
aclara mucho lo que se puede hacer con Format. La funcin Format se usa para poner
una fecha en un determinado formato. Con la expresin :
FechadeHoy = Format (Now, yyyy-mm-dd)
la variable FechadeHoy tendr el valor 1998-05-21, que se refiere al da 21 de mayo de
1998, segn el formato recomendado por la norma ISO-8601 para la presentacin de
fechas. Si hubisemos puesto la expresin FechadeHoy = Format (Now, dd/mm/yy) , la
variable FechadeHoy contendra el valor 21/05/98 referido al da citado.
Las posibilidades de Format llegan tambin al campo de las cadenas numricas. Por
ejemplo la cifra 123456 se transformar en las siguientes expresiones, segn como
empleemos la funcin Format
Variable = Format(123456, "Currency")
Variable = Format(123456, "Standard")
Valor
vbUseSystem 0
VbSunday
1
vbMonday
2
vbTuesday
3
vbWednesday 4
vbThursday 5
vbFriday
6
vbSaturday 7
Descripcin
firstweekofyear
Especifica cual es la primera semana del ao. Puede tomar uno de
los siguientes valores o constantes :
Constante
Valor
Descripcin
vbUseSystem
vbFirstJan1
Enero(Valor
0
1
vbFirstFourDays
ese
por defecto
La primera semana es la que contiene al menos, 4 das de
vbFirstFullWeek
ao
No se complique la vida con el tema del primer da de la semana ni la primera semana del
ao. No lo usar con frecuencia. Centrmonos mas en el parmetro Formato. Puede
tomar muchos valores. Veamos los principales. Primero para nmeros
Observe que usamos la expresin Variable =Format (1234567,Formato) para todos los
ejemplos de nmeros.
Para poner los nmeros separados por millares :
Variable = Format(1234567, "##,###,###") Variable = 1.234.567
(Cada carcter # indica que ah va un nmero. 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
Currency
Fixed
Standard
Percent
Scientific
.
Para fechas
21/07/98
21/07/98 22:16:00
martes 21 de julio de 1998
21-jul-98
21/07/98
1998-05-21
98-07-21
22:19:53
10:20 PM
22:20
22 :21 :29
22 :21
Variables
Una variable contiene un valor que puede modificarse a lo largo de la ejecucin de la aplicacin.
Cada variable tiene atributos propios como:
Nombre : Es el nombre que utilizamos para referirnos a la variable en la aplicacin.
Tipo : El tipo determina qu clase de valores puede almacenar ( numrico, carcter, fecha, etc)
Ambito : El mbito de una variable especifica en qu parte de la aplicacin 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, dgitos y el carcter de su subrayado.
No se puede utilizar el punto ni otros caracteres que tienen un significado especial para Visual
Basic; por ejemplo, los parntesis.
Una palabra reservada tiene un significado especial para Visual Basic. Son palabras reservadas
las sentencias predefinidas (For), los nombres de las funciones(Val), mtodos o eventos (Click),
propiedades (Caption), tipos (Integer) y operadores and). El nombre de una variable no puede ser
una palabra reservada.
Tipos de datos
Una variable puede ser de alguno de los tipos de datos siguientes:
Tipo
Descripcin
Rango
Integer
Entero
( 2 bytes )
-32768 a
32767
Long
Entero largo
(4 bytes)
-2147483648 a
2147483648
Single
Real simple
precisin (4bytes)
-3.40E+38 a
-3.40E+38
Double
Real Doble
precisin (4bytes)
-1.79D+308 a
1.79D+308
Currency
-922337203685477.58 a
922337203685477.58
String
Cadena de caracteres
( 1 byte por carcter )
Byte
Carcter (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
Variant
Con nmeros
16 bytes
Antes de utilizar una variable, es un buen hbito declarar su tipo. Una forma de hacer esto es
utilizando la sentencia Dim ( o una de la palabras Public, Private o Static). Cualquier declaracin
de stas inicializa las variables numricas con el valor cero y las variables alfanumricas con el
carcter nulo. Por ejemplo:
Dim
Dim
Dim
Dim
Dim
Dim
I As Integer
R As Double
Nombre As String
Etiqueta As String * 10
F As Currency
L As Long, X AS Currency
Las sentencias anteriores declaran I como una variable entera, R como una variable real de
precisin 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 ms de una declaracin.
Cuando se declara una variable y no se especifica su tipo, se asume que es de tipo Variant. Por
ejemplo:
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 explcitamente, las sentencias anteriores declaran L como
una variable Variant que ha cambiado su tipo para comportarse como una cadena de caracteres, y
continuacin vuelve a cambiar su tipo para comportarse como una variable real de doble precisin.
Declaracin explcita
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 explcitamente. 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 definicin 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 explcitamente. Para ello, escribiremos la
sentencia siguiente en la seccin de Declaraciones del formulario, del mdulo o de la clase:
Option Explicit
Esta sentencia opera slo en el formulario o en el mdulo donde se haya puesto. Para tener esa
opcin activa para todo el cdigo de una aplicacin, ejecute la orden Opciones del men
Herramientas, elija elija el dialogo Entorno (Edition v6.0) y Seleccione la opcin Declaracin de
Variables Requerida. Seleccionada esta opcion agrega la sentencia Option Explicit en
cualquier nuevo modulo que creemos.
Se entiende por mbito de una variable el espacio de la aplicacin donde la variable es visible y
por lo tanto se puede utilizar. La figura siguiente indica los lugares donde se puede declarar una
variable.
Procedimientos
Variables Locales
(Dim o Static)
Variables Locales
(Dim o Static)
Aplicacin
La tabla siguiente resume cmo debe declararse una variable en funcin del espacio donde
deseamos
Ambito
Declaracin
Local
Mdulo
Global
A nivel del mdulo, no hay diferencias entre Dim y private, pero se aconseja utilizar private en
contraste con Public
Recuerde que un formulario (.frm) incluye controles mas cdigo y que en mdulo (.bas) o una clase
(.cls) incluye solo cdigo.
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 utilizacin ms comn es intervenir en clculos
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 esttica. Visual Basic reinicializa una variable
esttica solamente la primera vez que se llama al procedimiento. Para declarar una variable
esttica, 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 estticas, declare el procedimiento
esttico. Por ejemplo:
Public Static Sub Test()
'...
End Sub
Si una variable aparace en un procedimiento y no est explcitamente 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 mdulo pero que puede ser accesida
desde cualquier otro modulo. Para hacer que una variable sea global o pblica, hay que declararla
Public en la seccin 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 mdulo es necesario especificar su pertenencia; esto es, de qu
objeto es dato miembro dicha variable:
MsgBox Form1.Conta
'declaracin en Form1
'procedimiento en Modulo1
'referencia a la variable local
'referencia a la variable global
Si varias variables pblicas comparten el mismo nombre en diferentes mdulos, para diferenciarlas
en el momento de referenciarlas es necesario especificar su pertenencia. Por ejemplo, si hay una
variable entera X declarada en los mdulos Form1 y Modulo1, nos podemos referir a ellas as:
MsgBox Form1.X
MsgBox Modulo1.X
Es una buena prctica en programacin que los nombres de las variables sean diferentes entre s,
de los nombres de las propiedades y de los mdulos.
Constantes Simblicas
A menudo utilizamos valores contantes una y otra vez en el cdigo, o bien el cdigo depende de
ciertos nmeros dificiles de recordar. En estos casos, la mejor solucin es definir estos valores
como constantes simblicas y utilizar en lo suvesivo los nombres que identifican estas constantes.
Para definir una constante simblica, 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
expresin puede ser numrica, alfanumrica 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 prctica definir todas las constantes globales en un nico mdulo.
El mbito de una constante se define por las mismas reglas que las variables.
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 continuacin:
Operadores
La tabla que se muestra a continuacin presenta el conjunto de operadores que soporta Visual
Basic colocados de mayor a menor prioridad ( entre ellos y entre categoras ). Los operadores que
aparecen sobre una misma lnea tienen igual prioridad. Las operaciones entre parntesis se
evalan primero, ejecutandose primero los parntesis ms internos.
Tipo
Operacin
Operador
Aritmtico
Exponenciacin
Cambio de Signo
Multiplicacin y divisin
Divisin Entera
Residuo de una Divisin Entera
Suma y Resta
^
*,/
\
Mod
+,-
Concatenacin
Concatenar o enlazar
&
Relacional
=,<>,<,>,<=,>=
Otros
Like
Is
Lgico
Negacin
And
Or inclusiva
Or exclusiva
Equivalencia (Opuesto a Xor)
Implicacin
(falso si primer operando verdadero
y segundo operando falso)
Not
And
Or
Xor
Eqv
Imp
Case 7
MsgBox
Case 8
MsgBox
Case 11
MsgBox
Case 17
MsgBox
End Select
End Sub
Las variables Variant tambin pueden contener calores de tipo Date y con ellas, puede ejecutar
operaciones aritmeticas y comparaciones. Por ejemplo:
Dim Dato
Para verificar si un determinado valor puede sonsiderase comouno del tipo Date (fecha/hora),
utilice la funcin IsDate.
Para saber si una variable Variant ho ha sido incializada, es decir que contiene "" Vaco (Carcter)
o Cero (para los numericos), utilice la Funcin Empty(). Para saber si contiene un valor Null utilice
IsNull()
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
continuacin:
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 tambin 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
Para indicar que se quiere ejecutar uno de varios bloques de sentencias dependientes cada uno de
ellos de una condicin, la estructura adecuada es la siguiente:
If condicin Then
Sentencia-1
[ElseIf condicin Then
sentencias-2]...
[Else
sentencia-n ]
End If
Ejemplo:
If C >
Resu
ElseIf
Resu
ElseIf
Resu
Else
Resu
End If
100 Then
= C * P * 0.6
C >= 25 Then
= C * P * 0.8
C >= 10 Then
= C * P * 0.9
= C * P
Select Case
Esta sentencia permite ejecutar una de varias acciones en funcin del valor de una expresin. Es
una alternativa a If ... Then ... ElseIf cuando se compara la misma expresin 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
Do ... Loop
Un Loop (bucle) repite la ejecucin de un conjunto de sentencias mientras una condicin dada sea
cierta, o hasta que una condicin dada sea cierta. La condicin puede ser verificada antes o
despus de ejecutarse el conjunto de sentencias.
Formato 1:
Do [ { While | Until } condicin ]
[sentencias]
[Exit Do]
[sentencias]
Loop
Formato 2:
Do
[sentencias]
[Exit Do]
[sentencias]
Loop [ { While | Until } condicin ]
Donde condicin es cualquier expresin que se evale a True o a False.
Esta sentencia nos permite realizar varias estructuras diferentes. Permite, como se aprecia en los
formatos, crear bucles con la condicin de terminacin 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 nmeros impares entre 1 y 99. El mismo resultado se obtiene con el ejemplo que se
presenta a continuacin:
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.
Este ejemplo indica que cuando hagamos clic sobre el formulario se visualizar sobre el mismo la
suma de los nmeros impares entre 1 y 99.
Si el valor de la expresin 3 es negativo, se comprueba si la variable es menor que la expresin 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 expresin 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
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 ms 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 mens, para crear nuevos controles en tiempo de
ejecucin 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 cdigo y pueden tener una o ms
dimensiones.
Arrays estticos
Para declarar un array esttico (array con un nmero fijo de elementos), Visual Basic hace tres
consideraciones importantes:
Para declarar un array global, hgalo en la seccin de declaraciones de un mdulo utilizando la
sentencia Public.
Para declarar un array a nivel de un mdulo, hgalo en la seccin 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 explcitamente, y los ndices del mismo deben estar en el rango
31
31
-2 a 2 . A continuacin se muestran algunos ejemplos:
Dim Array_A(19) As String
Dim ArrayB(5,7) As Integer
Arrays Dinmicos
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 dinmico. El espacio
necesario para un array esttico se asigna al iniciarse el programa y permanecer fijo. El espacio
para un array dinmico ser asignado durante la ejecucin del programa. Un array dinmico,
puede ser redimensionado en cualquier momento durante la ejecucin.
Para crear un array dinmico:
Declare el array en la seccin 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 vaca. Por ejemplo:
Dim Array_A()
Asine el nmero actual de elementos con la sentencia ReDim:
ReDim Array_A( N + 1 )
Procedimientos y Funciones
En Visual Basic, el cdigo es almacenado en mdulos, que pueden estar en un formulario,
mdulos estndar y clases. Cada mdulo puede contener:
Declaraciones (variables, constantes...)
Procedimientos conducidos por eventos
Procemientos y funciones estndar
Procedimientos Property
Un procedimiento conducido por eventos es el cdigo que es invocado cuando un objeto reconoce
que ha ocurrido un determinado suceso o evento ( Por ejemplo el click ).
Cuando varios procedimientos conducidos por eventos necesitan ejecutar un mismo proceso, la
mejor forma de proceder es colocar el cdigo comn en un Procedimiento Estndar, perteneciente
a un mdulo estandar, que ser invocado desde cada procedimiento conducido por un suceso que
necesite ejecutar dicho cdigo. De esta forma se elimina la necesidad de duplicar cdigo. Un
procedimiento estndar es invocado cuando se hace una llamada explcita al mismo.
Un procedimiento estndar puede escribirse como procedimiento Sub o como funcin Function.
Un procedimiento Property permite crear propiedades para una clase y manipularlas. Los mdulos
de clase son la base de la programacin orientada a objetos en Visual Basic. Los objetos de estas
clases pueden incluir sus propias propiedades y mtodos, pero no sus propios eventos. Tanto las
clases como los procedimientos Property sern estudiados en otro capitulo dedicado a objetos de
clases.
Funciones (Function)
Una funcin est diseada para retornar un valor determindado.
Sintaxis:
Function nombre [ ( parametros) ] [ As tipo ]
[sentencias]
[nombre = expresin]
[ Exit Function ]
End Function
nombre :
parametros
son una lista de variables, que se corresponden con los argumentos que son
pasados cuando es invocada la funcin.
expresin
Exit Function permite salir de una funcin. Exit Function no es necesaria a no ser que se
necesite retornar a la sentencia inmediamente a contiuacin de la que efectu
la llamada antes de que la funcin finalice.
End Function
Fin de la funcin
El siguiente ejemplo muestra una funcin 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 funcin se har de la forma siguiente:
v_valor = f_Suma(10, 20)
Procedimientos (Sub)
Un procedimiento funciona casi igual que una funcin 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)]
Prefijo
Ejemplo
Formulario
Etiqueda
Cuadro de Texto
Marco (frame)
Botn de Comando
Casilla de Verificacin
Grupo de Opciones
Cuadro Combinado
Cuadro de Lista
Control Numerico (timer)
Control de Datos
frm
lbl
txt
fra
cmd
chk
opt
cbo
lst
tmr
dat
frmRegiones
lblMsjAyuda
txtApellidos
fraLenguaje
cmdSalir
chkSoloLectura
optSexo
cboRegiones
lstDeptos
tmrAlarma
datEmpleados