visual basic

44
Lenguaje BASIC FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN TEMA: Manejo de Formularios, Tipos De Datos, Constantes y Variables en Visual Basic 6.0 INTEGRANTES: Liliana Calapiña Verónica Oña Mayra Saquinga SEMESTRE QUINTO “U” AMBATO - ECUADOR 2011

description

manejo de formularios,variables,operadores

Transcript of visual basic

Page 1: visual basic

Lenguaje BASIC

1

FACULTAD DE CIENCIAS HUMANAS

Y DE LA EDUCACIÓN

TEMA:

Manejo de Formularios, Tipos De Datos,

Constantes y Variables en Visual Basic 6.0

INTEGRANTES: Liliana Calapiña

Verónica Oña

Mayra Saquinga

SEMESTRE

QUINTO “U”

AMBATO - ECUADOR

2011

Page 2: visual basic

Lenguaje BASIC

2

Manejo de Formularios, Tipos De Datos, Constantes y

Variables

CONTENIDO

1.1. Creación de formularios

1.2. Generación Cuadros de Mensaje

1.3. Generación Cuadros de entrada de datos

1.4. Declaración de variables locales y globales

1.5. Utilización de operadores aritméticos de comparación y lógicos.

Page 3: visual basic

Lenguaje BASIC

3

Manejo de Formularios, Tipos De Datos, Constantes y

Variables

1.1. Creación de formularios

FORMULARIO

El primer objeto Visual Basic con que nos encontramos es el FORMULARIO. De hecho,

cada vez que iniciamos Visual Basic (VB) nos presenta en pantalla un nuevo

formulario, que tiene por defecto el nombre de Form1

El Formulario es un objeto, que sirve de soporte de otros objetos. El nombre de

FORMULARIO lo toma precisamente porque, al igual que un formulario de papel

contiene textos escritos, lugares donde podemos escribir, figuras, cajas donde

podemos elegir una u otra opción, etc., en este cuadro gráfico que llamamos

formulario, podemos introducir textos escritos, lugares donde podemos escribir,

figuras, cajas donde podemos elegir una u otra opción .

En realidad un formulario es lo que normalmente conocemos por VENTANA. El

nombre de formulario le viene muy bien cuando ese formulario es una ventana

donde vamos a introducir datos alfanuméricos. Cuando en vez de introducir datos, lo

que tenemos es, por ejemplo, una ventana donde se reproducen exactamente los

controles de operación de una máquina, parece en principio que sería más correcto

el nombre de "ventana". De alguna forma lo hay que llamar, y esa forma es

FORMULARIO. Posiblemente a lo largo de estos apuntes nos referiremos al formulario

con el nombre de ventana, o incluso, pantalla. Procuraremos usar el nombre

apropiado: FORMULARIO.

Forma inicial del formulario.

Page 4: visual basic

Lenguaje BASIC

4

PROPIEDADES

Name Nombre

Define al objeto durante la ejecución del programa. Se introduce en tiempo de

diseño y no se puede variar durante la ejecución. Nombre por defecto: Form1

(Form2 y sucesivos) Este nombre por defecto debe cambiarse, (debería cambiarse

por norma en el momento de introducir el formulario), ya que de no hacerlo

corremos el riesgo de borrar el código existente de otro formulario del mismo nombre

en el momento de guardar la aplicación.

Caption Título

Es el texto que aparecerá en la barra de Título cada vez que aparezca en pantalla

este formulario. No tiene otra función dentro del programa. El programa no accede

a este formulario por el título, sino por el nombre. Puede cambiarse en tiempo de

ejecución.

NOTA.- No confundir Nombre (Name) con Título (Caption)

Control Box Control “menos” del Formulario Valor por defecto: True

Propiedad booleana que admite los valores de true (verdadero) o False (Falso). Si

esta propiedad es True, aparecerá en la esquina superior izquierda el "menos" para

desplegar el menú de control de este formulario. Si esta propiedad se pone como

False, no existirá dicho "menos" y por tanto no se puede desplegar dicho menú.

MaxButton Valor por defecto: True

Page 5: visual basic

Lenguaje BASIC

5

Botones (flechas) de minimizar y maximizar este formulario. Son igualmente

propiedades booleanas, que admiten el valor True o False. Si están en true,

aparecerá la flecha correspondiente. Si están en False, no aparecerá dicha flecha.

Deben configurarse de una u otra forma, dependiendo si se quiere minimizar /

maximizar este formulario durante la ejecución.

BorderStyle Tipo de borde

Define el tipo de borde que tendrá el formulario durante la ejecución. No se puede

cambiar en tiempo de ejecución,

Admite los siguientes valores:

0 - None El formulario no tiene borde alrededor

1 - Fixed Single

El formulario tendrá un borde fino, y no podrá cambiarse su tamaño durante el

tiempo de ejecución. Con este valor, el formulario puede tener un menú de control,

barra de título y botones de maximizar y minimizar. Solo podrá cambiarse de tamaño

utilizando estos botones.

2-Sizable

El formulario tendrá borde grueso, y se podrá cambiar su tamaño en tiempo de

ejecución mediante los botones de maximizar y minimizar, y mediante el arrastre de

uno de los bordes con el ratón.

3 - Fixed Dialog

El formulario tendrá borde grueso, y no se podrá redimensionar durante la ejecución.

No puede tener los botones de maximizar ni minimizar.

4 - Fixed ToolWindow

En las versiones de 16 bits de Windows y Windows NT 3.51 y anteriores se comporta

como Fixed Single. No puede cambiar de tamaño. En Windows 95 muestra el botón

Cerrar, y el texto de la barra de titulo aparece con un tamaño de fuente reducido. El

formulario no aparece en la barra de tareas de W95.

5 - Sizable ToolWindow

En las versiones de 16 bits se comporta como Sizable. En W95 muestra el botón Cerrar

y el texto de la barra de titulo aparece con un tamaño de fuente reducido. El

formulario no aparece en la barra de tareas de W95.

Valor por defecto: 2. Sizable

Page 6: visual basic

Lenguaje BASIC

6

Nota: Al cambiar a determinados valores, las propiedades MaxButton y MinButton se

ponen a False. Pueden cambiarse a True posteriormente.

Appearance Apariencia Valor por defecto: 3D

Admite los valores 0 (=Flat, plano) y 1 (=3D) Si tiene el valor 1 (3D), el formulario

aparecerá con cierto efecto tridimensional, y los controles que le introduzcamos a

este formulario aparecerán como esculpidos dentro de él. Con valor 0 (Flat) en esta

propiedad, el formulario aparecerá durante la ejecución como una superficie plana.

El color de fondo se ve afectado al cambiar esta propiedad. Si se cambia a 3D, el

fondo (Backcolor) toma el color definido en Windows en el Panel de Control. Si se

cambia a Flat, toma el color blanco

Autoredraw Valor por defecto: False

Propiedad booleana. Esta propiedad, estando en True, permite actualizar el

contenido del formulario y de sus controles incluso cuando no están visibles.

Imaginemos que en este formulario existe un texto, una etiqueta (Label) o caja de

texto (Text Box) cuyo texto se haya cambiado, bien por programa, bien por una

entrada, mientras este formulario no estaba visible. Lo mismo podemos decir de las

propiedades de cualquier otro control. Si esta propiedad Autoredraw está en False, al

hacer visible este formulario, aparecerá igual que cuando se ocultó. Si esta

propiedad está en True, aparecerá actualizado.

Backcolor Color del fondo

Establece el color del fondo del formulario. Puede cambiarse en tiempo de

ejecución.

ClipControls Valor por defecto: False

Propiedad Booleana. Establece si un evento Paint vuelve a dibujar el objeto entero

(True) o si solamente dibujan las partes que han sufrido cambios (False)

DrawMode

Establece un valor que determina el aspecto de la salida de un método gráfico o el

aspecto de un control Shape o Line. Verá más adelante los efectos de esta

propiedad.

DrawStile Valor por defecto: 0

Establece el estilo de línea de la salida de métodos gráficos:

Valores: 0 - Línea continua

1 - Rayas

2 - Puntos

Page 7: visual basic

Lenguaje BASIC

7

3 - Raya-Punto

4 - Raya - Punto - Punto

5 - Transparente

6 - Continuo interior.

DrawWidth Valor por defecto: 1

Establece el ancho de una línea dibujada. El valor debe expresarse en pixeles.

Enabled Activado Valor por defecto: True

Propiedad booleana. Si está en True, el formulario está activado y se puede

interactuar con él. Si está en False, se desactiva el formulario, impidiendo de esta

forma, que se pueda trabajar con él.

ForeColor Valor por defecto: Negro

Establece el color del primer plano del formulario. Es el color que tendrán las letras si

escribimos en él, o los dibujos, si lo que hacemos es dibujar. En tiempo de diseño,

determina el color de la rejilla,.

FillStyle Tipo de relleno Valor por defecto: 2

Establece el modo de rellenar controles Shape, o figuras (círculos o cuadrados)

creados con los métodos gráficos Circle y Line.

Valores: 0 - Continuo

1 - Transparente

2 - Línea Horizontal

3 - Línea Vertical

4 - Diagonal hacia arriba

5 - Diagonal hacia abajo

6 - Cruzado

7 - Diagonal cruzada

FillColor Color de relleno

Especifica el color del relleno contemplado en FillStyle.

Page 8: visual basic

Lenguaje BASIC

8

Font Tipo de letra Valor por defecto: El determinado en la personalización.

Especifica el tipo y tamaño de la letra que se usará en el formulario. Al seleccionar

esta propiedad en la ventana de propiedades, aparece un cuadro de dialogo

donde se eligen ambos parámetros.

Cuando introduzca nuevos controles en el Formulario, la propiedad Font de estos

controles tomará el valor que tenga esta propiedad en el Formulario. Puede servirle

este pequeño truco para utilizar en todos los controles una determinada fuente sin

tener que teclearla para cada control.

FontTranparent Texto Transparente Valor por defecto: True

Establece si el texto o gráfico de fondo del formulario se muestra (True) o no se

muestra entre los caracteres de texto escritos en el propio formulario.

FontSize Tamaño de letra

Establece el tamaño de la letra. Esta propiedad, que puede variarse en tiempo de

ejecución, varía solamente el tamaño, y no el tipo de letra. El tamaño debe

expresarse en puntos. Máximo, 2160 puntos.

FontBold, FontItalic, FontStrikethru, FontUnderline

Permiten, en tiempo de ejecución, cambiar un texto a negrita, cursiva, tachado y

subrayado. Son propiedades booleanas True / False

Height Altura Valor por defecto: No existe

Define la altura del formulario. El valor de esta propiedad no se introduce

normalmente como un dato numérico, sino que toma el valor automáticamente,

dependiendo de las dimensiones del formulario durante el tiempo de diseño. Puede

cambiarse durante el tiempo de ejecución.

HelpContextID Valor por defecto: 0

Establece un número de contexto asociado para este formulario. Este número se

aplica para determinar la ayuda interactiva asociada a este formulario. Vea más

adelante, el tema Ayuda de Windows.

Puede tomar los siguientes valores : 0 - No se especifica número de contexto

>0 Un entero que especifique un contexto válido.

Icon Icono

Page 9: visual basic

Lenguaje BASIC

9

Esta propiedad define el icono que va a representar a este formulario cuando esté

minimizado. Si el formulario es el formulario padre o formulario de inicio de una

aplicación, este icono es el que toma el Asistente de Instalación para colocarlo

como icono de apertura del programa en el grupo de programas Windows

correspondiente. Como valor de esta propiedad se le puede asignar directamente el

icono o el nombre de un archivo (con su path correspondiente) que lo contiene,

haciéndolo directamente sobre la caja de propiedades.

KeyPreview Valor por defecto: False

Propiedad Booleana. Cuando un formulario tiene dentro de sí varios controles, uno

de ellos es el que está activo. En estas condiciones, si se pulsa una tecla, esa

pulsación la recibe en primer lugar el control que esté activo, y si éste no la procesa,

pasa esa pulsación al formulario. Para hacer que esa pulsación pase directamente al

formulario, debe ponerse esta propiedad en True.

Left Borde Izquierdo Valor por defecto: No existe

Indica la posición del borde izquierdo del formulario. Normalmente no se introduce

como valor numérico, sino que lo toma automáticamente de la posición que tenga

el formulario en el tiempo de diseño. Puede cambiarse en tiempo de ejecución,

para mover el formulario.

LinkMode Valor por defecto: 0

Permite que una aplicación destino inicie una conversación DDE con el formulario

(origen de datos). Puede tomar los siguientes valores:

0 - No hay interacción DDE

1 - Source. Indica que este Formulario es origen de una comunicación DDE. El dato

que se va a traspasar en esa comunicación DDE estará en un TextBox, en un Label o

en un PictureBox de este Formulario.

LinkTopic

Establece el tema al que este formulario va a responder a una conversación DDE,

cuando funciona como origen. Es por este tema por el que se debe llamar a este

formulario cuando actúa de origen en una conversación DDE

MDIChild Valor por defecto: False

Establece que este formulario es un formulario Hijo dentro de un formulario MDI. No se

puede cambiar en tiempo de ejecución. Es una propiedad booleana

True = es formulario hijo False =No lo es

Page 10: visual basic

Lenguaje BASIC

10

MouseIcon Valor por defecto: ninguno

Establece un icono personalizado para el puntero del ratón cuando esté encima de

este Formulario. Este icono puede ser un bit-map de los existentes en el directorio

Icons de Visual Basic o cualquiera que tengamos. Si se pone 99 como valor de la

propiedad MousePointer (siguiente), cada vez que el puntero del ratón pase por este

Formulario, cambiará su forma y adoptará la del icono elegido.

MousePointer Valor por defecto: flecha

Determina la forma del puntero del ratón cuando se coloca encima del formulario.

Puede elegirse uno de los punteros preestablecidos (15 en total) o el personalizado

visto en la propiedad anterior. Para elegir ese icono personalizado, debemos poner

en esta propiedad el valor 99.

Picture Gráfico Valor por defecto: No existe

Mediante esta propiedad podemos poner un gráfico como fondo del formulario. El

gráfico puede ser un bit-map o un fichero .ICO

ScaleHeight, ScaleWidth, ScaleMode,

Indican la unidad de medida de dimensión de altura y anchura del Formulario.

ScaleMode indica en qué unidades de medida se van a medir esas dimensiones.

Acepta Twips (1), Point(2), Pixel (3), Character (4), Pulgadas (Inch) (5), Milímetros (6),

Centímetros (7). Si colocamos la propiedad ScaleMode en cualquiera de estos

valores, las propiedades ScaleHeight y ScaleWidth nos vendrán dadas

automáticamente dependiendo del ancho del Formulario, y no se extrañe si

encuentra para estas propiedades valores tan peregrinos como 4815 y 7423. Al

haber elegido la unidad de medida, los valores de ancho (ScaleWidth) y alto

(ScaleHeight) serán los que tengan que ser, medidos en la unidad que hemos

elegido. Podemos elegir una cifra para el ancho y el alto del Formulario de forma

que podamos controlar mejor las distintas posiciones que van a ocupar en él los

controles, los textos o los dibujos. Podemos poner, por ejemplo, que el Formulario

mida 400 de ancho (ScaleWidth = 400) y 300 de alto (ScaleHeight = 300) forzándole

estas propiedades, bien en tiempo de diseño en la caja de propiedades, o en

tiempo de ejecución mediante código. Entonces sabemos que el formulario,

independientemente de las dimensiones físicas que tenga sobre la pantalla, medirá

400 de ancho y 300 de alto, y si en estas condiciones queremos colocar un control o

un dibujo justo en el medio del Formulario, sabemos que tenemos que colocarle en

las coordenadas 200, 150. ¿Qué unidad de medida estaremos utilizando entonces en

el Formulario ? Unas definidas por el usuario (distintas para el ancho y el alto) que

serán las necesarias para que el Formulario mida de ancho lo que le hayamos puesto

en la propiedad ScaleWidth y de alto lo que le hayamos puesto en la propiedad

ScaleHeight. Observe que la propiedad ScaleMode se ha cambiado

automáticamente a User (0) al introducir las dimensiones de ancho y alto que

nosotros queremos.

Page 11: visual basic

Lenguaje BASIC

11

Estas unidades de medida afectarán a los controles que metamos en este

Formulario. Se medirán en su ancho y alto con la unidad de medida definida para el

ancho y alto del Formulario. Lógicamente también afectará a las propiedades Left y

Top de los controles, pero estas propiedades se verán afectadas además por las

propiedades ScaleLeft y ScaleTop del Formulario que se verán a continuación.

ScaleLeft, ScaleTop

Estas propiedades, medidas en la unidad de medida elegida para el ancho y alto

mediante las propiedades ScaleMode, ScaleWidth y ScaleHeight anteriores, expresan

las coordenadas iniciales de la parte izquierda y de la parte superior

respectivamente del Formulario. Estas propiedades no afectan a la posición del

Formulario en la pantalla (Si está maximizado seguirá ocupando toda la pantalla, si

está en “Normal” ocupará el mismo sitio que se dio en tiempo de diseño).

Supongamos que se le asigna a un Formulario, las propiedades ScaleWidth = 400, y

ScaleHeight = 300. Si colocamos un control justamente en el centro del Formulario

tendrá sus propiedades Top =150 y Left=200. Si ponemos ahora las propiedades del

Formulario ScaleLeft a 30 y ScaleTop a 10, ese control, para seguir en el centro del

Formulario deberá tener sus propiedades Top a 160 (150 + 10) y Left a 230 (200 + 30).

Tag Valor por defecto: No existe

Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar al formulario

información adicional para fines externos a la programación. Pero también le puede

servir para almacenar en ella una variable para que la use un código ajeno al

formulario. El autor de estos apuntes tiene por costumbre utilizar la propiedad Tag del

formulario inicial para guardar el parámetro que se le pasa a algunos programas

para acceder a ellos con unos determinados privilegios. Resumiendo, está ahí para

lo que el programador quiere.

Top Posición del borde superior Valor por defecto: No existe

Esta propiedad establece la posición del borde superior del formulario. Normalmente

no se introduce como valor numérico sino que lo toma automáticamente de la

posición que tenga el Formulario durante el tiempo de diseño Este valor puede

cambiarse durante la ejecución para, conjuntamente con Left, variar la posición del

Formulario. Los valores de Top y Left definen la esquina superior izquierda del

Formulario.

Visible Valor por defecto: True

Propiedad Booleana. Asignándole el valor True la pantalla es visible, y asignándole el

valor False, no se ve. Este valor puede cambiarse durante el tiempo de ejecución

para ocultar y hacer visible el formulario.

Width Ancho Valor por defecto: No existe

Page 12: visual basic

Lenguaje BASIC

12

Define la anchura del formulario. Normalmente no se introduce como valor numérico

sino que lo toma automáticamente del tamaño que tenga el formulario durante el

tiempo de diseño. Juntamente con Height define el tamaño del formulario. Puede

cambiarse durante el tiempo de ejecución.

WindowState

Establece el estado en el que aparecerá el formulario cuando se activa y presenta

en pantalla. Admite tres opciones:

0 - Normal El formulario recupera la posición y tamaño que tenía en el tiempo de

diseño.

1 - Minimizado El formulario aparece minimizado, representado por su icono.

2 - Maximizado El formulario aparece maximizado, ocupando toda la pantalla.

PROCEDIMIENTOS

Activate Activación Click Click

DblClick Doble click Deactivate Desactivación

DragDrop Arrastrar y soltar DragOver Arrastrar por encima

GotFocus Obtener el foco KeyDown Mantener pulsada una tecla

KeyPress Pulsar una tecla KeyUp Soltar una tecla

LinkError Error de enlace LinkExecute Ejecución de un enlace de datos

LinkOpen Romper el enlace Load Cargar el formulario

LostFocus Perder el foco MouseDown Pulsar una tecla del ratón

MouseMove Mover el ratón (Detecta la posición del ratón sobre el formulario)

MouseUp Soltar una tecla del ratón Paint Pintar

QueryUnload Confirmación de descarga Resize Cambio de tamaño

Unload Descargar el formulario

PARA QUE SIRVE UN FORMULARIO

Page 13: visual basic

Lenguaje BASIC

13

Un Formulario sirve, fundamentalmente, de contenedor de controles. Es la ventana

de Windows de nuestra aplicación. Una aplicación puede tener varios Formularios y

dentro de cada uno de ellos, los controles necesarios para cada paso o estado de la

aplicación.

Un Formulario puede servir también como soporte de textos o dibujos.

Para cambiar el tamaño del

formulario arrastra el ratón tirando

de las esquinas. Para poder

introducir código debes insertar un

botón haciendo click en la barra

de controles y arrastrando sobre el

formulario. Para entrar en ventana

de código haz doble click sobre el

botón y escribe Print "hola" entre

las lineas Private Sub

Command1_Click() y End Sub.

Para poner en funcionamiento el

programa pulsa sobre el botón

Iniciar y verás aparecer la ventana

de Windows con el programa.

Pulsa el botón del formulario y

verás ejecutarse el código,

apareciendo en el formulario la

palabra "hola"

Page 14: visual basic

Lenguaje BASIC

14

Añade nuevas instrucciones Print

al código del programa

Se ejecutarán al ponerlo en

marcha y pulsar sobre el botón

Command1.

Para cerrar el programa pulsa sobre el

botón Cerrar.

Añade varias órdenes print que

muestren números en formato

exponencial como Print 3E12 o

Print 4E-9 y verás como Visual Basic

los convierte automáticamente.

Tambien puedes usar variables de

texto (terminadas en $) o

numéricas, asi como pedir un valor

mediante la instrucción Inputbox()

que muestra una ventana de

entrada de datos.

Page 15: visual basic

Lenguaje BASIC

15

Observa que al escribir el

paréntesis de la instrucción

InputBox, Visual Basic muestra el

formato de la instrucción el cual

puede llevar un mensaje, un título

para la ventana, un valor por

defecto, la posición en pantalla,

etc.

En el ejemplo escribe

simplemente:

Apellido$ = INPUTBOX("DIME TU

APELLIDO")

para guardar la respuesta en una

variable tipo String.

Añade al programa las lineas:

Print "Hola.." + Nombre$+"

"+Apellido$

El espacio entre las dos variables

evita que queden pegados los

textos correspondientes.

Tambien puedes definir el tipo de

las variables con la instrucción DIM

en lugar de utilizar el carácter $

Page 16: visual basic

Lenguaje BASIC

16

Dim Nombre, Apellido As Stirling

La orden PRINT envía al formulario

los mensajes o los cálculos

realizados línea a línea. Pero una

forma más práctica es enviarlos a

posiciones fijas del formulario,

insertando objetos tipo Rabel

(etiquetas de texto).

Haz clic sobre el objeto

correspondiente e insértalo en el

formulario. Su nombre será: Label1

y la forma de enviarle un texto es :

Label1.Caption="hola.."+Nombre$

+" "+Apellido$

Este es ahora el contenido del código

correspondiente al botón insertado en el

formulario:

Private Sub Command1_Click()

Print "HOLA"

Print "EL CUBO DE 5 ES.."; 5 * 5 * 5

Print 3000000000000#

Print 0.000000004

Nombre$ = "ANA"

Print "MI NOMBRE ES.."; Nombre$

Apellido$ = InputBox("DIME TU APELLIDO ")

Print "HOLA.."; Nombre$ + " " + Apellido$

Label1.Caption = "hola.." + Nombre$ + " " +

Apellido$

End Sub

Inserta un nuevo botón y haz

doble clic sobre él para introducir

el código siguiente:

Private Sub Adivina_Click()

Dim X, n As Integer

X = CInt(Rnd * 10)

Print "DAME UN NUMERO DEL 0 AL

10 "

n = InputBox("Número:")

If X = n Then Print "ACERTASTE" Else

Print "FALLASTE"

End Sub

En esta subrutina se definen dos

variables numéricas enteras X y N.

Se calcula un valor al azar para X

y se pide otro mediante una

ventana (InputBox). A

continuación se comprueba si son

iguales enviando al formulario el

mensaje correspondiente.

Page 17: visual basic

Lenguaje BASIC

17

Crea un nuevo proyecto e inserta una

etiqueta (Label1) y un botón en él. Haz

doble click sobre el botón para introducir

el siguiente código que te permitirá ver

cómo se usa la función Format()

Private Sub Command1_Click()

Dim micadena As String

Label1.Caption = "Muestras de

formatos"

micadena = Format(5459.4,

"##,##0.00")

Print micadena

micadena = Format(334.9,

"###0.0")

Print micadena

micadena = Format(334.9,

"###0.00") ' Devuelve "334,90".

Print micadena

micadena = Format(5, "0.00%") '

Devuelve "500,00%".

Print micadena

micadena = Format("HOLA", "<") '

Devuelve "hola".

Print micadena

micadena = Format("Esto está en

mayúsculas ", ">")

Print micadena

End Sub

Crea un proyecto nuevo y añade dos

cuadros de texto y una etiqueta. Inserta 3

botones de acción y modifica su nombre y

texto. Haz doble clic sobre cada uno de

ellos e inserta estas operaciones:

Private Sub Dividir_Click()

Label1 = Text1 / Text2

End Sub

Private Sub Multiplicar_Click()

Label1 = Text1 * Text2

End Sub

Private Sub Potencias_Click()

Label1 = Text1 ^ Text2

End Sub

Añade un nuevo botón que

calcule el logaritmo en base 10

del número introducido en el

primer cuadro de texto:

Private Sub Logaritmo_Click()

Label1 = Log(Text1) / Log(10#)

End Sub

Page 18: visual basic

Lenguaje BASIC

18

Crea una nueva función que

calcule el logaritmo en cualquier

base. Selecciona Agregar

procedimiento y escribe esta

función:

Public Function LogaritmoX(ByVal

x, y As Integer) As Single

LogaritmoX = Log(x) / Log(y)

End Function

Para llamarla hay que pasarle 2

parámetros: X que será el número

cuyo logaritmo queremos calcular

y Y que representa la base.

Introduce un nuevo botón de

acción llamado LogBaseX y llama

desde él a la función:

Label1 = LogaritmoX(Text1, Text2)

Utilización de las funciones

generadoras de números

aleatorios: RND y RANDOMIZE

Sintaxis:

Randomize [número]

El argumento con nombre número

puede ser cualquier expresión

numérica válida.

Rnd devuelve un valor entre 0 y 1.

Por ejemplo, la instrucción :

MiValor = Int((6 * Rnd) + 1)

Genera un valor aleatorio entre 1 y

6 y lo guarda en la variable

MiValor

(Rnd*6 da un número de 0 a 5 y le

sumamos 1)

Abre un proyecto nuevo,

introduce un botón de acción y

una etiqueta de texto con un

tamaño grande de letra y haz

doble click sobre el botón para

introducir el código siguiente:

Page 19: visual basic

Lenguaje BASIC

19

Ahora ejecuta el programa y

observa que con cada pulsación

del botón aparece un número

distinto (del 1 al 6) en la etiqueta

de texto. Modifica el programa

para que aparezcan 6 números al

azar (del 1 al 49) en cada

pulsación, para simular el juego de

la primitiva.

En determinados casos necesitaremos usar

números enteros con valores altos.

Entonces necesitamos trabajar con el tipo

Long (entero largo):

Integer 2 bytes -32.768 a 32.767.

Long (entero largo) 4 bytes -

2.147.483.648 a 2.147.483.647.

La función que convierte el dato

de un TextBox a entero largo es

Clng() y es equivalente a CInt()

para enteros.

En este programa podrás

introducir números grandes y el

código del botón comprobará si

es par (si la división entera es igual

a la división con decimales) o

impar (si no lo es)

Page 20: visual basic

Lenguaje BASIC

20

En el siguiente proyecto vas a

utilizar la función TIMER

Este ejemplo usa también

DoEvents para dar preferencia a

otros procesos durante la pausa

de cuenta (bucle Do While.. Loop)

Introduce los controles que ves a

la izquierda: una etiqueta de texto

(Label1) un TextBox, y un botón de

acción con el código que ves a

continuación:

- se definen tres variables enteras

(comienzo, final y total)

- se guarda elnúmero actual del

segundero en la variable

comienzo

- se crea un bucle que se realiza

hasta que la variable total supere

el valor establecido en el TextBox.

Durante el bucle se va guardando

el valor de segundos del Timer en

la variable final y se calculan los

segundos transcurridos restando a

este valor el número de segundos

que guardamos, al empezar, en la

variable comienzo.

El bucle termina cuando el

número de segundos es igual al

valor establecido en el TextBox,

apareciendo entonces el aviso.

Page 21: visual basic

Lenguaje BASIC

21

1.2. Generación Cuadros de Mensaje

ENTRADA Y SALIDA DE DATOS:

En Visual Basic, una forma común de introducir datos es utilizando la caja de dialogo

provista

InputBox

Su sintaxis es:

Variable = InputBox(“Mensaje”,”Titulo”, Por_omisión, posX, posY)

Donde:

� Mensaje: contiene el mensaje que indica al usuario que tipo de datos debe

ingresar

� Titulo: será visualizada en la barra de titulo de la caja de dialogo

� Por_omisión: indica la cadena de caracteres que aparecen de manera

predeterminada

La función InputBox muestra un mensaje en un cuadro de diálogo, espera que el

usuario escriba un texto o haga clic en un botón y devuelve un tipo String con el contenido del cuadro de texto.

Formato

InputBox( prompt [, title] [, default] [, xpos] [,ypos] [, helpfile, context] )

El formato de la función InpuBox consta de los siguientes argumentos con nombre:

Parte Descripción

Page 22: visual basic

Lenguaje BASIC

22

Prompt Requerido. Expresión de cadena que se muestra como mensaje en el cuadro

de diálogo. La longitud máxima de prompt es de aproximadamente de 1024

caracteres, según el ancho de los caracteres utilizados. Si prompt consta de más de

una línea, puede separarlos utilizando un carácter de retorno de carro (Chr(13)), un

carácter de avancede línea (Chr(10)) o una combinación de los caracteres de

retorno de carro – avance de línea (Chr(13) y (Chr(10)) entre cada línea y la siguiente.

Title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si omite title, en la barra de título se coloca el nombre de la aplicación.

Default Opcional. Expresión de cadena que se muestra en el cuadro de texto como respuesta predeterminada. Si omite default, se muestra el cuadro de texto vacío.

Xpos Opcional. Expresión numérica que especifica, la distancia en sentido horizontal

entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite xpos, el cuadro de diálogo se centra horizontalmente.

Ypos Opcional. Expresión numérica que especifica, la distancia en sentido horizontal

entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si

se omite ypos, el cuadro de diálogo se coloca aproximadamente un tercio de la

altura de la pantalla, desde el borde superior de la misma.

Helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se

utilizará para proporcionar ayuda interactiva para el cuadro de diálogo. Si se especifica helpfile, también deberá especificar context.

Context Opcional. Expresión numérica que es el número de contexto de Ayuda

asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también deberá especificarse helpfile.

.

Función MsgBox()

Los cuadros de mensaje ofrecen un modo simple y rápido de consultar a los usuarios

por información simple o para permitirles tomar decisiones sobre el camino que su

programa debe tomar. Puede usar esta función para mostrar diferentes tipos de mensaje y botones con los cuales el usuario da una respuesta.

Page 23: visual basic

Lenguaje BASIC

23

Formato

MsgBox( prompt [, buttons] [, title ] [, helpfile, context] )

EL formato de la función MsgBox consta de los siguientes argumentos:

Parte Descripción

Prompt Requerido. Expresión de cadena que representa el mensaje en el cuadro de

diálogo. La longitud máxima de prompt es de aproximadamente 1024 de caracteres,

según el ancho de los caracteres utilizados. Si prompt consta de más de una línea,

puede separarlos utilizando un carácter de retorno de carro (Chr(13) ) o un carácter

de avance de línea (Chr(10) ), o una combinación de caracteres de retorno de

carro - avance de línea (Chr(13 y Chr(10) ) entre cada línea y la siguiente.

Buttons Opcional. Expresión numérica que corresponde a la suma de los valores que

especifican el número y el tipo de los botones que se pretenden mostrar, el estilo de

icono que se va a utilizar, la identidad del botón predeterminado y la modalidad del

cuadro de mensajes. Si se omite este argumento, el valor predeterminado para buttons es 0.

Title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro

de diálogo. Si se omite title, en la barra de título se coloca el nombre de la

aplicación.

Helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se

utiliza para proporcionar ayuda interactiva en el cuadro de diálogo. Si se especifica helpfile, también se debe especificar context.

Context Opcional. Expresión numérica que es igual al número de contexto de Ayuda

asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también se debe especificar helpfile.

Valores

El argumento buttons puede asumir los siguientes valores:

Page 24: visual basic

Lenguaje BASIC

24

El primer grupo de valores (0 a 5) describe el número y el tipo de los botones

mostrados en el cuadro de diálogo; el segundo grupo (16, 32, 48, 64) describe el

estilo del icono, el tercer grupo (0, 256, 512, 768) determina el botón predeterminado

y el cuarto grupo (0, 4096) determina la modalidad del cuadro de mensajes. Cuando

se suman números para obtener el valor final del argumento buttons, se utiliza

solamente un número de cada grupo.

Nota: Estas constantes las especifica Visual Basic. Por tanto, el nombre de las mismas

puede utilizarse en cualquier lugar del código en vez de sus valores reales.

Valores devueltos

Nota: Si desea omitir algún argumento, debe incluir el delimitador de coma

correspondiente o utilizar argumentos con nombre.

Ejemplos

Page 25: visual basic

Lenguaje BASIC

25

1.3. Generación Cuadros de entrada de datos

Controles TextBox ofrece una forma natural para los usuarios para introducir un valor

en su programa. Por esta razón, tienden a ser los controles de uso más frecuente en

la mayoría de las aplicaciones de Windows. Controles TextBox, que tienen una gran

cantidad de propiedades y eventos, también se encuentran entre los controles

intrínsecos más complejos. En esta sección te guiará a través de las propiedades más

útiles de los controles TextBox y mostrar la forma de resolver algunos de los problemas

que es probable encontrar.

Configuración de las propiedades de un cuadro de texto

• Se puede introducir texto en el cuadro de texto mediante la asignación de la

cadena necesaria para la propiedad de texto del control

• Si el usuario tiene que mostrar varias líneas de texto en un TextBox, establezca

la propiedad Multiline en True

• Para personalizar la combinación de barra de desplazamiento en un cuadro

de texto, establezca la propiedad ScrollBars.

• Las barras de desplazamiento siempre aparecen en el cuadro de texto

cuando la propiedad Multiline se establece en True y la propiedad ScrollBars está

establecido en nada más que ninguno (0)

• Si se establece la propiedad Multiline en true, se puede establecer la

alineación con la propiedad Alignment. La prueba está justificada a la izquierda por

defecto. Si la propiedad Multiline está a False et, a continuación, establecer la

propiedad de alineación no tiene ningún efecto.

Tiempo de ejecución de propiedades de un control TextBox

La propiedad Text es el que usted referencia más a menudo en el código, y

convenientemente es la propiedad predeterminada del control TextBox. Otras tres

propiedades utilizadas son las siguientes:

• La propiedad SelStart establece o devuelve la posición del cursor

parpadeando (el punto de inserción en el texto que escriba aparecerá). Tenga en

cuenta que el cursor parpadeante dentro de los controles TextBox y otro se llama

símbolo de intercalación, para distinguirla de la del cursor (que es implícitamente el

cursor del ratón). Cuando el cursor está al principio del contenido del control TextBox,

SelStart devuelve 0, cuando está en la final de la cadena tecleada por el usuario,

Page 26: visual basic

Lenguaje BASIC

26

SelStart devuelve el valor de Len (Texto). Usted puede modificar la propiedad SelStart

para mover el cursor mediante programación.

• La propiedad SelLength devuelve el número de caracteres en la parte del

texto que ha sido destacada por el usuario, o devuelve 0 si no hay texto resaltado. Se

puede asignar un valor distinto de cero a esta propiedad para seleccionar mediante

programación el texto del código. Curiosamente, se puede asignar a esta propiedad

un valor mayor que la longitud del texto actual sin levantar un error en tiempo de

ejecución.

• La propiedad SelText establece o devuelve la parte del texto que está

seleccionado, o bien devuelve una cadena vacía si no hay texto resaltado. Lo

utilizan para recuperar directamente el texto en negrita, sin tener que texto de la

consulta, SelStart y propiedades SelLength. Lo que es aún más interesante es que se

puede asignar un nuevo valor a esta propiedad, por lo que sustituye la selección

actual con el suyo propio. Si no hay texto seleccionado en ese momento, la cadena

se introduce fácilmente en la posición del cursor actual.

Cuando se desea añadir texto a un control TextBox, debe utilizar el siguiente código

(en lugar de utilizar el operador de concatenación) para reducir el parpadeo y

mejorar el rendimiento:

Text1.SelStart = Len (Text1.Text)

Text1.SelText = StringToBeAdded

Una de las operaciones habituales que podría encontrarse realizando con estas

propiedades es la selección de todo el contenido de un control TextBox. A menudo

lo hacen cuando el cursor entra en el campo para que el usuario pueda cambiar el

valor existente por uno nuevo, o comenzar a editarlo pulsando cualquier tecla de la

flecha:

Privado Text1_GotFocus Sub ()

Text1.SelStart = 0

"Un valor muy alto siempre hace el truco.

Text1.SelLength = 9999

End Sub

Siempre se establece la propiedad SelStart primero y luego el SelLength o SelText.

Cuando se asigna un nuevo valor a la propiedad SelStart, los otros dos se restablece

automáticamente a 0 y una cadena vacía, respectivamente, reemplazando así a su

configuración anterior.

El texto seleccionado puede ser copiado en el portapapeles utilizando SelText:

Clipboard.SelText texto, [formato]

Page 27: visual basic

Lenguaje BASIC

27

En la sintaxis anterior, el texto es el texto que tiene que ser colocado en el

portapapeles, y el formato tiene tres valores posibles.

1. VbCFLink - Información conversación

2. VbCFRTF - formato de texto enriquecido

3. VbCFText - Texto

Podemos obtener el texto del portapapeles utilizando el GetText () de la siguiente

manera:

Clipboard.GetText ([formato])

La figura a continuación se resumen las propiedades del control TextBox comunes y

los métodos.

Propiedad /

Método

Descripción

Propiedades

Activado especifica si el usuario puede interactuar con este

control o no

Índice Especifica el índice de la matriz de control

Cerrado Si este control se establece en True el usuario puede

utilizar más si este control se establece en false el control

no puede ser utilizado

MaxLength Especifica el número máximo de caracteres a la

entrada. El valor por defecto es 0 que significa que el

usuario puede introducir cualquier número de

caracteres

MousePointer El uso de este podemos establecer la forma del puntero

del ratón cuando más de un TextBox

Multilínea Al establecer esta propiedad en verdadero usuario

puede tener más de una línea en el cuadro de texto

PasswordChar Consiste en especificar carácter de máscara que se

muestra en el cuadro de texto

ScrollBars Esto para establecer cualquiera de las barras de

desplazamiento vertical u horizontal para hacer barras

de desplazamiento aparecen en el cuadro de texto. El

usuario también puede establecer que tanto vertical

Page 28: visual basic

Lenguaje BASIC

28

como horizontal. Esta propiedad se utiliza con la

propiedad Multiline.

Texto Especifica el texto que se mostrará en el cuadro de

texto en tiempo de ejecución

ToolTipIndex Esto se utiliza para mostrar lo que se muestra el texto o

en el control

Visible Mediante el establecimiento de este usuario puede

hacer que el control de cuadro de texto visible o

invisible en tiempo de ejecución

Método

SetFocus Las transferencias se centran en el cuadro de texto

Los

procedimientos

de evento

Cambio Acción se produce cuando el cuadro de texto los

cambios

Clic Acción se produce cuando se hace clic en el cuadro

de texto

GotFocus Acción se produce cuando el cuadro de texto recibe el

foco activo

LostFocus Acción se produce cuando el cuadro de texto pierde el

foco

KeyDown Se le llama cuando se presiona una tecla mientras el

cuadro de texto tiene el foco

KeyUp Se le llama cuando se suelta una tecla mientras el

cuadro de texto tiene el foco

Page 29: visual basic

Lenguaje BASIC

29

1.4. Declaración de variables locales y globales

Un tipo de dato determina la naturaleza del dominio de valores que puede

tomar una variable, las operaciones en que puede participar y el

espacio de memoria que necesita. La tabla

Siguiente muestra los tipos de datos, incluyendo el tamaño de almacenamiento y el intervalo

Tipo

Descripción

Carácter de

declaración

Rango

Boolean Binario True o False

Byte Entero corto 0 a 255

Integer Entero (2 bytes) % -32768 a 32767

Long Entero largo (4 bytes) & -2147483648 a

2147483647 Single Real simple precisión (4

bytes )

! -3.40E+38 a 3.40E+38

Double Real doble precisión ( 8

bytes)

# -1.79D+308 a

1.79D+308

Currency Número con punto decimal

fijo (8 bytes)

@ -9.22E+14 a 9.22E+14

String Cadena de

caracteres (4 bytes +

1 byte/car hasta 64 K)

$ 0 a 65500 caracteres.

Date Fecha (8 bytes) 1 de enero de 100 a 31

de diciembre de

9999. Indica también

la hora, desde 0:00:00

a 23:59:59.

Variant Fha/h

ora;

números enteros, reales,

o caracteres (16 bytes +

1 byte/car. en cadenas

de caracteres)

ninguno F/h: como Date

números: mismo

rango que el tipo de

valor almacenado

Page 30: visual basic

Lenguaje BASIC

30

Nota: Las matrices de cualquier tipo de datos requieren 20 bytes de memoria más

cuatro bytes para cada dimensión de matriz, más el número de bytes que ocupan

los propios datos. Por ejemplo, los datos de una matriz unidimensional que constan

de cuatro elementos de datos tipo Integer de dos bytes cada uno, ocupan ocho

bytes. Los ocho bytes que requieren los datos más los 24 bytes necesarios para la

matriz suman un requisito total de memoria de 32 bytes para dicha matriz. Un tipo

Variant que contiene una matriz requiere 12 bytes más que la matriz por sí sola.

Convertir tipos de datos

Visual Basic proporciona varias funciones de conversión que puede utilizar para

convertir valores de tipos de datos específicos. Por ejemplo, para convertir un valor a

Currency, utilice la función Ccur:

User-

defined

Cualquier tipo de dato o

estructura de datos. Se

crean utilizando la

sentencia Type (Ver

Apartado 3.10)

ninguno

Page 31: visual basic

Lenguaje BASIC

31

Nota: Los valores que se pasan a una función de conversión deben ser válidos para

el tipo de dato de destino o se producirá un error. Por ejemplo, si intenta convertir un

tipo Long en un Integer, el tipo de Long debe de estar en el intervalo válido del tipo

de dato Integer.

Variables

Las variables se utilizan para almacenar valores temporalmente durante la ejecución

de una aplicación. Las variables tienen un nombre (la palabra que utiliza para

referirse al valor que contiene la variable) y un tipo de dato (que determina la clase

de dato que la variable puede almacenar).

Almacenamiento y recuperación de datos en variables

Utilice una sentencia de asignación para realizar cálculos y asignar el resultado a una

variable:

ManzanaVendidas = 10 „ Se pasa el valor 10 a la variable

ManzanasVendidas = ManzanasVendidas + 1

Observe que el signo igual del ejemplo es un operador de asignación, no un

operador de igualdad; el valor 10 se asigna a la variable ManzanasVendidas.

Declaración de Variables

Declarar una variable es decirle al programa algo de antemano. Se declara una

variable mediante la instrucción Dim, proporcionando un nombre a la variable,

según la siguiente sintaxis:

Dim nombre-variable [As tipo]

Las variables que se declaran en un procedimiento mediante la sentencia Dim sólo

existen mientras se ejecuta el procedimiento. Cuando termina el procedimiento,

desaparece el valor de la variable. Además, el valor de una variable de un

procedimiento es local a dicho procedimiento; es decir, no puede tener acceso a

una variable de un procedimiento desde otro procedimiento. Estas características le

permiten utilizar los mismos nombres de variables en distintos procedimientos sin

preocuparse por posibles conflictos o modificaciones accidentales.

El nombre de una variable debe cumplir con los siguientes requisitos:

Debe comenzar con una letra.

No puede incluir un punto o un carácter de declaración de tipo

($,&,!,%,#,@).

No debe exceder de 255 caracteres.

Page 32: visual basic

Lenguaje BASIC

32

Debe ser única en el mismo alcance, que es el intervalo desde el que se

puede hacer referencia a la variable: un procedimiento, formulario, etc.

La cláusula opcional As tipo de la sentencia Dim le permite definir el tipo de dato o

de objeto de la variable que va a declarar. Los tipos de datos definen el tipo de

información que almacena la variable. Algunos ejemplos de tipos de datos son

String, Integer y Currency. Las variables también pueden contener objetos de

Visual Basic u otras aplicaciones. Algunos ejemplos de tipos de objeto de Visual

Basic, o clases, son Object, Form1 y TextBox.

Hay otras formas de declarar variables:

Declarar una variable en la sección Declaraciones de un módulo de

formulario, estándar o de clase, en vez de un procedimiento, hace que la

variable esté disponible para todos los procedimientos del módulo.

Declarar una variable mediante la palabra clave Public hace que esté

accesible para toda la aplicación.

Declarar una variable local mediante la palabra clave Static conserva su valor

aunque termine el procedimiento.

Declaración Implícita

No tiene por qué declarar una variable antes de utilizarla. Por ejemplo, podría escribir

una función donde no hiciera falta declarar TempVal antes de utilizarla:

Function Raíz (num)

TempVal = Abs (num) Raíz = Sqr(TempVal)

End Function

Visual Basic crea automáticamente una variable con ese nombre, que puede utilizar

como si la hubiera declarado explícitamente. Aunque es cómodo, puede provocar

errores sutiles en el código si se equivoca de nombre de variable. Por ejemplo,

suponga que ha escrito esta función:

Function Raíz (num)

TempVal = Abs (num) Raíz = Sqr (TemVal)

Page 33: visual basic

Lenguaje BASIC

33

End Function

A primera vista, parece igual. Pero como se ha escrito erróneamente la variable

TempVal en la tercera línea, la función devolverá siempre cero. Cuando Visual Basic

encuentra un nombre nuevo, no puede averiguar si realmente desea declarar una

variable nueva o simplemente ha escrito de forma errónea una variable existente,

por lo que crea una variable nueva con ese nombre.

Declaración Explícita

Para evitar problemas al equivocarse de nombre en las variables, puede configurar

Visual Basic para que le avise siempre que encuentre un nombre que no se haya

declarado explícitamente como una variable.

Para declarar variables de forma explícita:

Incluya esta sentencia en la sección Declaraciones Generales del

módulo de clase, de formulario o estándar:

Option Explicit

- o bien -

En el menú Herramientas, elija Opciones, haga clic en la ficha Editor y active la

opción Declaración de variables requerida. Esto inserta automáticamente la

sentencia Option Explicit en los módulos nuevos, pero no en los ya creados, por lo

que tendrá que agregar manualmente Option Explicit a los módulos existentes en el

proyecto.

Si hubiera tenido efecto dicha instrucción en el módulo de formulario o módulo

estándar que contiene la función Raíz, Visual Basic habría reconocido TempVal y

TemVal como variables no declaradas y habría generado errores para ambas.

Debería, por tanto, declara explícitamente TempVal:

Function Raíz (num) Dim TempVal

TempVal = Abs (num)

Raíz = Sqr (TemVal) End Fuction

Alcance de las Variables

El alcance de una variable define en qué partes del código son reconocidas.

Cuando declara una variable en un procedimiento, sólo el código de dicho

procedimiento puede tener acceso o modificar el valor de la variable; tiene un

alcance local al procedimiento. A veces, sin embargo, se necesita utilizar una

variable con un alcance más general, como aquella cuyo valor está disponible para

todos los procedimientos del mismo módulo o incluso para todos los procedimientos

Page 34: visual basic

Lenguaje BASIC

34

de toda la aplicación. Visual Basic le permite especificar el alcance de una variable

cuando la declara.

Establecido el alcance de las variables

Dependiendo de cómo se declara, una variable tiene como alcance un

procedimiento (local) o un módulo.

Variables utilizadas en un módulo

De forma predeterminada, una variable al nivel de módulo está disponible para

todos los procedimientos del módulo, pero no para el código de otros módulos. Cree

variables al nivel de módulo declarándolas con la palabra clave Private en la

sección Declaraciones Generales al principio del módulo. Por ejemplo

Private intTemp As Integer

Al nivel de módulo, no hay diferencia entre Private y Dim, pero es preferible usar

Private porque contrasta con Public y hace que el código sea más fácil de

comprender.

Variables utilizadas por todos los módulos

Para hacer que una variable al nivel de módulo esté disponible para otros módulos,

utilice la palabra clave Public para declararlas. Los valores de las variables públicas

están disponibles para todos los procedimientos de la aplicación. Al igual que todas

las variables al nivel del módulo, las variables públicas se declaran en la sección

Declaraciones Generales al principio del módulo. Por ejemplo:

Public intTemp As Integer

Nota: No puede declarar variables públicas en un procedimiento, sólo en la

sección

Declaraciones Generales de un módulo.

Constantes

A menudo verá que el código contiene valores constantes que reaparecen una y

otra vez. O puede que el código dependa de ciertos números que resulten difíciles

de recordar (números que, por sí mismos, no tienen un significado obvio).

En estos casos, puede mejorar mucho la legibilidad del código y facilitar su

mantenimiento si utiliza constantes. Una constante es un nombre significativo que

sustituye a un número o una cadena que no varía. Aunque una constante recuerda

ligeramente a una variable, no puede modificar una constante o asignarle un valor

nuevo como ocurre con una variable. Hay dos orígenes para las constantes:

Page 35: visual basic

Lenguaje BASIC

35

Constantes intrínsecas o definidas por el sistema proporcionadas por Visual

Basic.

Las constantes simbólicas o definidas por el usuario se declaran mediante

la instrucción Const.

Creación de sus propias constantes

La sintaxis para declarar una constante es la siguiente:

[Public|Private] Const nombre_constante [As tipo] = expresión

El argumento nombre_constante es un nombre simbólico válido (las reglas son las

mismas que para crear nombres de variable) y expresión está compuesta por

constantes y operadores de cadena o numéricos; sin embargo, no puede utilizar

llamadas a funciones en expresión. Una instrucción Const puede representar una

cantidad matemática o de fecha y hora:

Const conPi = 3.14159265358979

Public Const conMaxPlanetas As Integer = 9

Const conFechaSalida = #1/1/95#

Se puede utilizar también la instrucción Const para definir constantes de cadena

Public Const conVersion = “ 07.10.A” Const conNombreClave =

“Enigma”

Puede colocar más de una declaración de constante en una única línea si las

separa con comas:

Public Const conPi=3.14, conMaxPlanetas=9, conPobMundial=6E+09

A menudo, la expresión del lado derecho del signo igual ( = ) es un número o cadena

literal, pero también puede ser una expresión que dé como resultado un número o

una cadena (aunque la expresión no puede contener llamadas a funciones).

Puede incluso definir constantes en términos de constantes previamente definidas:

Const conPi2 = conPi * 2

Una vez que defina las constantes, puede colocarlas en el código para hacerlo más

legible. Por ejemplo:

Static SistemaSolar (1 To conMaxPlanetas)

If numPersonas > conPopMundial Then Exit Sub

Page 36: visual basic

Lenguaje BASIC

36

Alcance de las constantes definidas por el usuario

Una instrucción Const tiene igual alcance que una declaración de variable y se le

aplican las mismas reglas:

Para crear una constante que sólo exista en un procedimiento,

declárela dentro del procedimiento.

Para crear una constante disponible para todos los procedimientos de

un módulo, pero no para el código que está fuera del módulo,

declárela en la sección Declaraciones Generales del módulo.

Para crear una constante disponible en toda la aplicación, declare la

constante en la sección Declaraciones Generales de un módulo

estándar y coloque delante de Const la palabra clave Public. No se

pueden declarar las constantes públicas en un módulo de clase o de

formulario.

Evitar referencias circulares

Como es posible definir constantes en términos de otras constantes, deberá tener

cuidado para no establecer un ciclo o referencia circular entre dos o más

constantes. Se produce un ciclo cuando se tienen dos o más constantes públicas,

cada una de las cuales está definida en función de la otra. Por ejemplo:

'En el Módulo 1:

Public Const conA = conB * 2 ' Disponible en toda la aplicación

'En el Módulo 2:

Public Const conB = conA / 2 ' Disponible en toda la aplicación

Si se produce un ciclo, Visual Basic generará un error cuando intente ejecutar la

aplicación. No puede ejecutar el código hasta que resuelva la referencia circular.

Para evitar la creación de un ciclo, restrinja todas las constantes públicas a un único

módulo o, al menos, al menor número posible de módulos.

Convenciones para Nombres de Constantes y Variables

Las variables se deben definir siempre con el menor alcance posible. Las variables

globales (públicas) pueden hacer lógica de una aplicación muy difícil de entender.

Las variables globales también hacen más difícil mantener y volver a usar el código.

Page 37: visual basic

Lenguaje BASIC

37

En Visual Basic las variables pueden tener el alcance siguiente:

Alcance Declaración Visible en

Nivel de procedimiento Dim o Static en el El procedimiento en el

Procedimiento, que está declarada

Subprocedimiento o

Función

Alcance Declaración Visible en

Nivel de módulo Private en la sección

Declaraciones Generales Todos los procedimientos

del módulo de formulario

de un módulo de o de código

formulario o de código

(.frm, .bas)

Global Public en la sección

Declaraciones Generales En toda de aplicación

de un módulo de código

(.bas)

En una aplicación de Visual Basic, las variables globales se deben usar sólo cuando

no exista ninguna otra forma cómoda de compartir datos entre formularios. Cuando

haya que usar variables globales, es conveniente declararlas todas en un único

módulo agrupadas por funciones y dar al módulo un nombre significativo que

indique su finalidad, como Públicas.

Una práctica de codificación correcta es escribir código modular siempre que sea

posible. Por ejemplo, si la aplicación muestra un cuadro de diálogo, coloque todos

los controles y el código necesario para ejecutar la tarea del diálogo en un único

formulario. Esto ayuda a tener código de la aplicación organizado en componentes

útiles y minimiza la sobrecarga en tiempo de ejecución.

Page 38: visual basic

Lenguaje BASIC

38

A excepción de las variables globales ( que no se deberían pasar), los

procedimientos y funciones deben operar sólo sobre los objetos que se les pasan.

Prefijos de alcance de variables

A medida que aumenta el tamaño del proyecto, también aumenta la utilidad de

reconocer rápidamente el alcance de las variables. Esto se consigue escribiendo un

prefijo de alcance de una letra delante del prefijo de tipo, sin aumentar demasiado

la longitud del nombre de las variables.

Alcance Prefijo Ejemplo

Global g gstrNombreUsuario

Nivel de módulo m mblnProgresoDelCálculo

Local del Procedimiento Ninguno dblVelocidad

Una variable tiene alcance global si se declara como Public en un módulo estándar

o en un módulo de formulario. Una variable tiene alcance de nivel de módulo si se

declara como Private en un módulo estándar o en un módulo de formulario,

respectivamente.

Nota: La coherencia es crucial para usar esta técnica de forma productiva; el

corrector de sintaxis de Visual Basic no interceptará las variables de nivel de módulo

que comience con “p”.

Constantes

El nombre de las constantes se debe escribir en mayúsculas y minúsculas, con la letra

inicial de cada palabra en mayúsculas. Aunque las constantes estándar de Visual

Basic no incluyen información de tipo de datos y el alcance de una constante. Para

los nombres de constantes, se deben seguir las mismas normas que para las variables.

Por ejemplo:

mintMáxListaUsuario „ Límite de entradas máximas para la

„ lista de usuarios

„ (valor entero, local del módulo)

gstrNuevaLínea „ Carácter de nueva línea

„ (cadena, global de la aplicación)

Page 39: visual basic

Lenguaje BASIC

39

Variables

Declarar todas las variables ahorra tiempo de programación porque reduce el

número de errores debidos a nombres de variables errados (por ejemplo,

aNombreUsuarioTmp frente a sNombreUsuarioTmp frente a

sNombreUsuarioTemp). En la ficha Editor del cuadro de diálogo Opciones,

active la opción Declaración de variables requerida. La instrucción Option Explicit

requiere que declare todas las variables del programa de Visual Basic.

Las variables deben llevar un prefijo para indicar su tipo de datos. Opcionalmente, y

en especial para programas largos, el prefijo se puede ampliar para indicar el

alcance de la variable.

Page 40: visual basic

Lenguaje BASIC

40

1.5. Utilización de operadores aritméticos de

comparación y lógicos.

OPERADORES

Tipo

Operación Operador en

BASIC

Aritmético Exponenciación ^

Cambio de signo (operador unario) -

Multiplicación, división *, /

División entera \

Resto de una división entera Modo

Suma y resta +, -

Concatenación Concatenar o enlazar & +

Relacional Igual a =

Distinto <>

Menor que / menor o igual que < <=

Mayor que / mayor o igual que > >=

Otros Comparar dos expresiones de

caracteres

Like

Comparar dos referencias a objetos Is

Lógico Negación Not

And And

Or inclusivo Or

Or exclusivo Xor

Equivalencia (opuesto a Xor) Eqv

Implicación (False si el primer

operando es True

y el segundo operando es False)

Imp

Page 41: visual basic

Lenguaje BASIC

41

Cuando en una expresión aritmética intervienen operandos de diferentes

tipos, el resultado se expresa, generalmente, en la misma precisión que la del

operando que la tiene más alta. El orden, de menor a mayor, según la

precisión es Integer, Long, Single, Double y Currency. Los operadores relacionales, también conocidos como operadores de

comparación, comparan dos expresiones dando un resultado True

(verdadero), False (falso) o Null (no válido). El operador & realiza la concatenación de dos operandos. Para el caso

particular de que ambos operandos sean cadenas de caracteres, puede

utilizarse también el operador +. No obstante, para evitar ambigüedades

(sobre todo con variables de tipo Variant) es mejor utilizar &. El operador Like sirve para comparar dos cadenas de caracteres. La sintaxis

para este operador es la siguiente: Respuesta = Cadena1 Like Cadena2 donde la variable Respuesta será True si la Cadena1 coincide con la

Cadena2, False si no coinciden y Null si Cadena1 y/o Cadena2 son Null. Para obtener más información se puede consultar el Help de Visual Basic.En

Visual Basic existen 6 operadores para realizar comparaciones entre valores:

Operador Descripción

< Menor que

<= Menor o igual a

> Mayor que

>= Mayor o igual a

= Igual

<> No Igual o Diferente

Operadores Lógicos

Cuando Visual Basic compara 2 expresiones, regresa uno de dos valores

posibles: True o False, pero Visual Basic no entiende True o False por lo que

utiliza valores numéricos para representarlos, True o False son valores booleanos

donde 0 es False y 1 es True.

En Visual Basic existen 6 operadores lógicos:

Operador Descripción

And Cuando ambas expresiones son verdaderas

Or Evalua una de dos expresiones

Not Niega una expresión

Xor La expresión completa se considera verdadera, si las 2

expresiones evaluadas no son verdaderas o ambas son

falsas

Page 42: visual basic

Lenguaje BASIC

42

Eqv Ambas expresiones debe ser verdaderas o falsas para

evaluar la expresión completa como verdadera

Imp La expresión completa es verdadera excepto cuando la

primer expresión es verdadera y la segunda expresión es

falsa

Operadores aritméticos

Estos operadores nos permiten trabajar con cálculos matemáticos como la

suma (+), resta (-), división (/) y multiplicación (*).

Ejemplos:

a = 5

b = 15

c = a + b ' en este caso la variable c contendría el valor 20

Ganancia = 500

perdida = 200

total = ganancia - perdida 'la variable total pasaría a valer 300

x = 100

y = 20

z = x / y ' La Variable z vale 5

x = 100

y = 20

z = x * y ' La Variable z vale 2000

Operadores lógicos

Se utilizan en expresiones para devolver resultados del tipo True o False, es

decir Verdadero o falso. Los más comunes son el operador And y el operador

Or

Ejemplos:

If (x = 10) And (nombre = "maría") Then

'solo se ejecutará el código dentro de este bloque IF si la variable

'x vale 10 y la variable nombre es igual a maría

End If

Page 43: visual basic

Lenguaje BASIC

43

If (m = 10) Or (nombre = "pedro") Then

'el código se ejecutará si por lo menos una variable es correcta

'es decir si por lo menos se cumple una condición

End If

Operadores de comparación

Los operadores de comparación se utilizan para comparar expresiones de

cualquier tipo. Los más importantes son: El operador de igualdad (=), menor

que (<), mayor que (>), distinto a(<>)

Ejemplos:

If label1.Caption = "06/08/1978" Then

'si el control label1 en su caption contiene esa fecha

'se ejecutará el código que este aquí

End If

if x > 6 then

'si la variable x es mayor que 6 se ejecutará el código que este aquí

end if

If país <> "Estados unidos" Then

'si la variable país es distinta a "Estados unidos" se ejecutará el código

End If

While c <= 87

'mientras la variable c sea menor o igual a 87 se ejecutará

'el bucle While

Wend

Por último quedaría por ver el operador de concatenación (&) que se utiliza

para unir cadenas de caracteres.

Por ejemplo:

nombre = "José"

apellido = "Peralta"

nombrecompleto = nombre & apellido

'La variable nombrecompleto pasaría a contener la unión de las otras dos

Page 44: visual basic

Lenguaje BASIC

44

variables

'es decir José Peralta