Introducción a Visual Basic

Usted vive en un mundo de eventos. Por las mañanas, apaga la alarma del despertador, abre el refrigerador, bebe un vaso de agua. Mas tarde, abre la puerta de su automóvil, acciona el interruptor de encendido y presiona el acelerador. Raras veces nos detenemos a pensar como trabaja el reloj, como la heladera enfría las cosas o como la gasolina se convierte en energía. Nada es mas claro y transparente que la relación existente entre los objetos y los eventos que se generan cuando sé interactúa con ellos. Un programa escrito para una Interfaz Gráfica de Usuario (GUI Graphical User Interface), como el Windows de Microsoft, debe será para usted natural y fácil de usar.
En este capitulo se le presentaran los conceptos que se encuentran detrás de la programación Orientada a Objetos Manejada por Eventos (OOED). Usted aprenderá lo importante de esta filosofía en el desarrollo de aplicaciones amigables para el usurario.

Objetos y eventos de programación
Una aplicación de Windows presenta una o más pantallas llenas de objetos, con los cuales el usuario puede interactuar para determinar el curso del programa. Por ejemplo – si estamos escribiendo una carta y queremos imprimirla, tendremos que accionar el botón “imprimir” o bien ir al Menú ArchivoImprimir. Vale decir que tanto una opción como otra siempre están en la pantalla, pero solo se activan, cuando el usuario efectúa un clic sobre ellos. En esta situación el objeto sería el botón o la opción del menú, el evento seria el clic del Mouse y la programación sería todo el código necesario para llevar a cabo la impresión del documento en pantalla. Los objetos y eventos de la programación están íntimamente relacionados, como sucesos en la vida real. Los eventos tienen lugar como resultado de la acción del usuario o del código del programa, o pueden ser activados por el sistema. La mayoría de los objetos responden a un numero de objetos generados por el usuario, como un clic del Mouse o doble clic, la opresión de una tecla o al arrastrar y soltar, etc.
Recuerde que la mayoría de las aplicaciones de Windows, así como otros programas emplean una Interfaz gráfica del usuario, conformados por una o más pantallas llenas de objetos, menús, botones, botones, listas desplegables, cuadros de edición, todos inactivos hasta que el usuario provoca un evento sobre ellos. Una ve que el evento ocurre, el usuario espera que cada objeto se comporte de manera confiable, por Ej. Una selección de menú abre un cuadro de dialogo, una serie de teclazos son capturados y desplegados en un control de texto.
Estos requerimientos de predecibilidad y confiabilidad son los que hacen que la programación orientada a objetos y manejada por eventos sea perfecta para el desarrollo de aplicaciones Windows. Visual Basic proporciona un ambiente de desarrollo donde el trabajo con tales objetos y eventos llega a ser un proceso directo.

Pantalla de Visual Basic
El entorno de Visual Basic














Para poder observar la pantalla de Visual Basic, tal como lo muestra la figura 1, abra el programa desde el menú InicioProgramasMicrosoft Visual Basic 6.0Microsoft Visual Basic 6.0.
En ella encontramos sobre el margen izquierdo el Cuadro de herramientas (1), en el cual aparecen todos los controles gráficos que podemos utilizar en nuestro programa. En el centro de la pantalla, la ventana de Formulario (2), es la que contendrá todos los objetos que queremos que aparezcan en nuestra aplicación. En la parte superior derecha aparece la ventana de Explorador de Proyecto (3), la cual muestra todos los formularios que existen en el proyecto actual. Aclaremos que cuando diseñemos un programa con Visual estamos creando un Proyecto (observe la barra de titulo de la ventana) el cual puede contener uno o varios formularios. Si comparamos Visual con Microsoft Excel cada libro de Excel equivaldría a un proyecto y cada hoja del libro sería un formulario. La diferencia consiste en que en Visual el proyecto se guarda con un nombre cuya extensión VBP y cada formulario se guarda como un archivo independiente con la extensión FRM. Entonces cuando abrimos un archivo de proyecto este se encarga de abrir todos los formularios que tiene asociados.

Un programa sencillo
Ahora está listo para crear su primera aplicación, la cual consistirá en un formulario con un botón, que al activarlo desplegará el mensaje “Bienvenido”.

1. En el cuadro de herramientas de Visual Basic, haga clic en el control CommandButton (botón de Comando). Note las indicaciones de las herramientas al pasar el puntero del Mouse sobre ellas.
2. Sobre el formulario (Form1) trace el botón de comando moviendo el Mouse con el botón izquierdo oprimido. Una vez que este toma el tamaño deseado, suelte el Mouse. Momentáneamente, acepte el título por omisión que tiene el botón, Command1.
3. Como la idea del programa es, que al realizar un clic sobre el botón se muestre un mensaje, el código se incluye dentro del mismo. Para ello, haga doble clic sobre el botón. Se le abrirá una nueva ventana de Código, en la cual escribirá Print “Bienvenido”
Finalmente la programación coincidirá con lo siguiente:
Private Sub Command_Clic()
Print “Bienvenido”
End Sub

Command1 es el objeto y click es el evento asociado con dicho objeto.
Print, es el comando que imprime cualquier leyenda sobre el formulario, lo importante es que la misma se encuentre encerrada entre comillas dobles.

4. Cierre la ventana de código.

Ahora puede probar su nuevo programa, presionando el botón iniciar de la barra de herramientas o pulsando la tecla F5.

Fíjese en la barra de título de la ventana del proyecto, antes decía diseño, ahora ejecutar, esto significa que el proyecto presenta 2 (dos) situaciones, cuando estamos trazando los objetos sobre el formulario y programando su codificación estamos en tiempo de diseño, para probar lo que programamos debes pasar al tiempo de ejecución siguiendo las indicaciones previas.
Al estar en tiempo de ejecución presione el botón de comando Command1, se escribirá sobre el formulario la frase “Bienvenido”.
Vuelva al tiempo de diseño cerrando la venta del formulario o presionado el botón de la barra de herramientas Terminar.
Ahora mejorará su aplicación agregando otro botón de comando, para borrar el texto del formulario repitiendo los pasos 1) y 2).
Luego, haga un doble clic sobre el mismo, se abre la ventana de Código y escriba Cls. (se utiliza para borrar la pantalla.)

El resultado será el siguiente:
Private Sub Command_Clic()
Cls
End Sub

Cierre la ventana de Código, y vuelva a probar su proyecto (Botón Iniciar o F5)

Accione primero el Botón Command1, este imprime la frase sobre el formulario y con el Command2 borra la pantalla.
Finalizada la prueba detiene la ejecución del formulario (Botón Terminar o cierra la ventana)







Guardar un proyecto

Ir al menú ArchivoGuardar Proyecto
Para cada archivo a guardar (formularios, proyectos, etc.) aparecerá el cuadro de diálogo Guardar Archivo Como, en el cual deberá seleccionar la unidad y la carpeta de destino.

Ahora guarde el proyecto, optando por cualquiera de las opciones descriptas anteriormente, cree una carpeta desde el botón “ Crear nueva carpeta” del cuadro de dialogo de Guardar y colóquele el nombre EJERCICIO N° 1. Abra la carpeta y guarde los dos archivos (formulario y proyecto) son necesidad de cambiar sus nombres. Adopte esta metodología para todos los proyectos.

Métodos y Propiedades
Propiedades
Los objetos de la vida real están cargados de propiedades. Su remera es de un color, de una determinada tela, de un talle en particular, etc. Entonces llegamos a la conclusión que la remera (objeto) no es más que una suma de sus propiedades. Por lo tanto, no nos debe llamar la atención que en programación, los objetos se comporten de igual manera.
Hablando técnicamente, una propiedad es un tributo nominal de un objeto de programación. Las propiedades definen las características del objeto, como el tamaño, la localización en la pantalla, el color, etc.

Métodos
Su videograbadora es un objeto. Lo que hace a sus propiedades, sería la marca, el modelo, el tamaño, el formato, etc. Una definición completa de su videograbadora debe comprender algo más que sus características técnicas. Debe incluir una descripción de lo que hace.
Por lo tanto, los métodos de su videograbadora pueden ser, grabar, reproducir, programar canales, etc.
De manera similar en la programación orientada a objetos un método es un procedimiento que puede llamarse para impartir alguna acción a un objeto. Los métodos siempre requieren de un objeto que les dé un contexto. Por ejemplo, existe un método de Move asociado con la mayoría de los objetos. En Visual Basic la palabra Move por si misma, no tienen significado alguno pero si la asociamos con un objeto, nos permitirá moverlo dentro de las coordenadas de la pantalla.
En pocas palabras mientras las propiedades, nos describen el objeto, los métodos permiten que el objeto haga algo. En la gramática de la programación los objetos son sustantivos, las propiedades son adjetivos y los métodos los verbos.

Asignar Propiedades
Las propiedades de los objetos pueden definirse en tiempo de diseño o en tiempo de ejecución.
Concentremos nuestra atención en la primera. En la pantalla de Visual Basic y dentro de todos sus componentes nos encontramos en la parte inferior derecha con la ventana de Propiedades.
Con esta ventana podemos cambiar fácilmente el valor de una propiedad sin entrar en la programación del objeto. Por Ej. : si queremos que el formulario anterior cuando inicie su ejecución el texto que se observa en la barra de titulo no sea Form1 sino otro, y que este se mantenga durante la ejecución de todo el proyecto, entonces, deberíamos hacer lo siguiente.
En la lista desplegable que aparece en la parte superior de la ventana de propiedades, debemos elegir el objeto llamado Form 1. Al seleccionar un objeto en la lista inferior solo aparecerán las propiedades referentes a dicho objeto. Elija la propiedad titulada Caption y verá que al lado de la a misma aparecen el valor actual que es Form1, borre dicho texto y escriba Primer Formulario, verá como cambia él titulo de la a barra del Formulario.
Note que las propiedades se ordenan alfabéticamente para facilitar su ubicación, y si bien varios objetos presentan la misma propiedad, esto no significa que esta se comporte de la misma manera. Por Ej. : la propiedad Caption en el formulario modifica el texto de la barra de titulo, mientras que en el botón de comando modifica el texto que lo rotula.
Además debe tener en cuenta que no todos los objetos presentan la misma cantidad de propiedades. Por eso, es muy importante que al momento de cambiar el valor de una propiedad se asegure que lo esté realizando con el objeto deseado.
Probemos ahora, con los botones de comando. En su primera aplicación habíamos creado un proyecto compuesto por un formulario con 2 botones. Ambos llevan la descripción Command y el número que les corresponde (Ej. Command1)
Si pretendemos cambiar dicha descripción debemos realizar los mismo pasos que efectuamos para cambiar el título del formulario, la única diferencia se encuentra en el objeto a elegir ya no será Form1, sino Command1, este objeto (CommandButton) también tiene la propiedad Caption, y a esta le asignaremos Mostrar Mensaje. Ídem con el otro botón pero escribiremos en la propiedad Caption, Borrar Mensaje.
Guardamos el Proyecto, recuerde que el mismo ya había sido guardado, por lo tanto solo debemos ir al Menú ArchivoGuardar.

Ahora pasemos a ver como se definen las propiedades en tiempo de ejecución, es decir desde el código.

Si quisiéramos que al presionar un botón de comando, este cambiará el título del formulario, ya no podríamos hacerlo desde la ventana de propiedades, sino que deberíamos programarlo en el evento clic del botón.

Los pasos serian:
1. Hacer doble clic sobre el botón a programar
2. Escribir la siguiente línea de código
Form1.caption =”Cambio el Nombre”
Interpretemos esta línea de programación, Form1 es el nombre del objeto al cual le queremos cambiar el valor de la propiedad, caption es la propiedad que intentamos modificar y lo escrito entre comillas, es el nuevo valor que le queremos dar a la misma.
En síntesis la sintaxis para asignar una propiedad de un objeto es:

Objeto.Propiedad=Valor

Programar un Método
El llamar o ejecutar los métodos de un objeto es similar al caso de las propiedades, en ambos casos se hacen uso del operador punto.
A diferencia de las propiedades los métodos no pueden aplicarse en tiempo de diseño solo se pueden programar.
A continuación se presenta la sintaxis general para llamar a los métodos de un objeto:
Objeto.Método Arg1, Arg2.....ArgN
Por ejemplo, supongamos que usted dibuja un botón de comando sobre el formulario y desea que al pulsar sobre él, el formulario se ubique en la esquina superior izquierda de la pantalla. Para hacerlo, llamaría al método Move del formulario, el cual requiere que se especifique las coordenadas horizontal y vertical de la nuevas ubicación. Ya que usted esta enviándolo a la esquina superior izquierda, esas coordenadas serían 0,0.
Las líneas de programación:

Form1.Move 0,0

Nombre de los objetos
Es conveniente es establecer la propiedad Nombre de los objetos significativos de su aplicación, aquellos cuyas propiedades y métodos espera usted usar en el código.
Cámbielos de la nomenclatura genérica, Form1, Command1, Command2, proporcionada por Visual Basic, por algo más significativo. Es convencional usar un prefijo de tres letras minúsculas cuando se nombra a los objetos . Si lo remontamos a nuestro primer ejemplo seria mas facial si el Command1 se llamara cmdMostrar y el command 2 cmdBorrar, pues al aparecer la ventana de código sabríamos con certeza lo que estamos programando y no tendríamos que estar adivinando.


Objeto de Visual Basic Prefijo Ejemplo
Casilla de Verificación CHECK BOX chk ChkSonido
Cuadro Combinado COMBO BOX Cbo CboEmpleados
Botón de Comando COMAND BUTTON Cmd CmdSalir
Control de Datos DAT Dat DatClientes
Cuadro de Directorio DIRECTORY LIST BOX Dir DirCarpetas
Cuadro de Unidades DRIVE LIST BOX Drv DrvUnidades
Cuadro de Archivos FILE LIST BOX Fil FilArchivos
Formularios FORM Frm FrmInicio
Marco FRAME Fra FraOpciones
Barra de desplazamiento Horizontal HORIZONTAL SCROLL BAR Hsb HsbAlto
Imagen IMAGE Img ImgMuestra
Etiqueta LABE Lbl LblResultado
Cuadro de Lista LIST BOX Lst LstUsuario
Botón de Opción OPTION BUTTON Opt OptRojo
Cuadro de dibujo PICTURE BOX Pic PicDibujo
Figura SHAPE Shp ShpOvalo
Cuadro de texto TEXT BOX Txt TxtApellido
Temporizador TIMER tmr TmrAnimación
Barra de desplazamiento horizontal VERTICAL SCROLL BAR vsb vsbAncho


Comentarios – (´) y Rem
Es posible agregar código que no será procesado en el momento de la ejecución del programa. La utilidad de hacerlo, será la de poder dejar formalizando lo que creamos que en un futuro, pueda no ser entendido fácilmente.

Existen dos formas de indicar que estamos escribiendo un comentario. Sí utilizamos el símbolo (‘), todo lo que exista a la derecha de esta, en esa misma línea de código, no será tenido en cuenta por Visual Basic. La sentencia REM debe encontrarse al inicio de una línea de código. Este requisito no necesita ser cumplido en el caso del apóstrofe.

Private Sub Command1_ click()
‘ Este procedimiento imprime un mensaje en el formulario
Print “hola mundo”
End Sub

Private Sub Command1_ click()
Print “hola mundo” imprime el mensaje “hola mundo” en el formulario
End Sub

Private Sub Command2_click()
REM CLS se utiliza para borrar la pantalla
Cls
End Sub


Para facilitar le lectura del código del programa, mas puntualmente en líneas que se extienden mas allá del tamaño de la ventana, se recomienda partir la línea en varias (depende de la longitud de la misma), utilizando el símbolo (_)
Citando una de las líneas programadas en el tema anterior:

Private Sub Command_ click()
Print _
“hola mundo, acá estoy yo”
End Sub

Nueva aplicación
Arrancaremos con Visual Basic. Si Visual Basic está abierto y todavía tiene en la pantalla el proyecto anterior, y comenzara con un proyecto nuevo.

Desarrollé los siguientes pasos para implementar esta aplicación:

1. Trace 7 botones sobre el formulario, tenga en cuenta que puede ir dibujando manualmente de a uno por vez, o haciendo doble clic sobre el botón de la barra de herramientas. Si utiliza este método. Los botones se irán apilando en el centro del formulario (observe los nombres Command1, Command2, Command 7). Luego tomándoles con el botón izquierdo presionado, los puede ir separando.
Aplicará las siguientes propiedades a los objetos de su proyecto, como lo indica la Figura

















Tenga en cuenta, al cambiar las propiedades debe cerciorarse, que lo está realizando con el objeto deseado, recuerde mirar en la lista desplegable que aparece en la parte superior de la ventana de propiedades.

El título no es lo mismo que el nombre. Un título se utiliza para identificar un objeto ante el usuario. Los nombres se usan para identificar el objeto en el código.

Habiendo terminado con el trazado de objeto y el diseño de sus propiedades, pasaremos a la programación.
La idea del programa, consiste en que al efectuar un clic sobre cada botón, esto modifique el color de fondo del formulario de acuerdo al color elegido.
Entonces, debemos programar el evento Click de cada botón.
Veremos como hacerlo. Comencemos por él botón que lleva el título “Fucsia”. Haga doble clic sobre él. Verá la ventana de código con el siguiente texto.

Private Sub cmdFucsia_click()
End Sub
Dentro de la cual escribirá la siguiente sentencia.

FrmColores.Backcolor=vbmagenta

La propiedad que quiero cambiar, el fondo, acá nos encontramos con una propiedad nueva, backcolor (propiedad que aplica el color indicando al fondo del objeto) y por ultimo con el signo = indicamos el valor que queremos darle, en nuestro dado fucsia.
En Visual Basic existen una serie de constante ya definidas por el sistema, que identifican los colores. Estas son las siguientes:

constante Color
yg Fucsia
VbBlue Azul
VbYellow Amarillo
VbRed Rojo
VbWhite Blanco
VbGreen Verde
VbCyan Celeste
VbBlack Negro


Del mismo modo, siga con el resto de los botones.

Private Sub cmdBlanco_Clic()
FrmColores.BackColor=vbWhite
End Sub

Private Sub cmdVerde_Clic()
FrmColores.BackColor=vbGreen
End Sub

Private Sub cmdAmarillo_Clic()
FrmColores.BackColor=vbYelow
End Sub

Private Sub cmdAzul_Clic()
FrmColores.BackColor=vbBlue
End Sub

Private Sub cmdRojo_Clic()
FrmColores.BackColor=vbRojo
End Sub

Ahora programará el botón cmdMover, lo que se pretende, es que a efectuar un clic sobre el mismo, éste mueva el formulario a la esquina superior izquierda.
Otra vez queremos realizar una operación con el formulario, pero en este caso como mover es una acción, nada tiene que ver con sus propiedades, aunque la programación clic sobre el mismo, para llamar a la ventana de código.

Private Sub cmdMover_Clic()
FrmColores.Move 0,0
End Sub

El objeto a mover está en primer lugar, la acción a realizar con dicho objeto en segundo lugar, y 2 argumentos, que expresan las coordenadas de la nueva ubicación del formulario dentro de la pantalla, la esquina izquierda (0 para x, 0 para y).
Cierre la ventana de código, y pruebe el proyecto
Guarde su segundo proyecto. Recuerde crear una segunda carpeta, en la unidad que usted desee, y a la misma llamarla EJERCICIO N°2. No se olvide que por mas que el proyecto contenga un solo formulario, ambos se guardan en archivos independientes los cuales quedarán dentro de la carpeta creada.

Etiquetas y Cuadros de texto.
Conoceremos controles nuevos que nos permitirán aumentar la complejidad de nuestros programas. Supongamos que quisiéramos incluir en un formulario rótulos, textos que permanecerán fijos durante toda la ejecución del programa, tales como “Apellido y Nombre”, “Ingrese un Numero”, etc. Y además de esto quisiera que el usuario pueda ingresar su nombre, apellido, etc. Para crear entonces nuestro propios cuadros de dialogo, utilizaremos labels (etiquetas) y los textbox (cuadros de texto).

Comenzaremos un nuevo proyecto. Ahora trataremos de diseñar el formulario que figura a continuación. Para facilitar la búsqueda de los controles nuevos en el cuadro de herramientas, las etiquetas se encuentran representadas por ¬A y los cuadros de texto por ab.


















Observe que al dibujar los cuadros de texto, estos contiene dentro la leyenda text1, text2, etc. Para que esa no aparezca en tiempo de ejecuciones limpiar el cuadro de texto borrándola desde la propiedad Text.
El usuario al ejecutar el proyecto ingresa su apellido y nombre en los cuadros de textos. Luego al pulsar sobre el botón CmdMostrar, en la etiqueta lblapenom mostrará el Apellido y Nombre juntos.
Lo primero que debe preguntarse es, sobre que objeto el usuario realizara una acción , seguramente hara el clic sobre el botón cmdMostrar. Pues ese el botón que debe programar. Realizará un doble clic sobre esta y escribirá el siguiente código

Private Sub cmdMostrar_Clic()
LblApenom.Caption=txtApellido.Text&txtNombre.Text
End Sub

El Signo & une el contenido de 2 objetos.

El objeto que va a recibir los datos es la etiqueta, por eso la pusimos del lado izquierdo. Qué objetos tendrán los datos para cargarla, los cuadros de textos, razón por lo cual quedan ubicados a la derecha. Hay que indicar las nombres de los objetos con los que trabajaremos, y mencionar la propiedad a modificar.

Pruebe active el proyecto , escriba un apellido, un nombre y pulse el botón Mostrar, verá como aparecen sus datos en la etiqueta, pero encontrará un pequeño inconveniente, no existe separación entre el Apellido y Nombre. Vuelva al código y agregue comillas dobles “ “, que significan que se agrega un espacio en blanco.

Complete su línea de código para que se vea así:

Private Sub cmdMostrar_Clic()
LblApenom.Caption=txtApellido.Text & “ “ & txtNombre.Text
End Sub

Sólo nos falta programar el botón Cerrar. Haga doble clic sobre esta, la sentencia que finaliza la ejecución del proyecto es la palabra END.
Debería quedar la línea de código de la siguiente forma:

Private Sub cmdCerrar_Clic()
End
End Sub

Probemos por ultimo vez, efectúe un clic sobre el botón Cerrar y verá como finaliza la ejecución de su programa.
Bien, ahora que se programa funciona correctamente, mejoremos su estética. La tabla que aparece a continuación presenta algunas propiedades que tienen que ver con el formato de los objetos.


Propiedades descripción Valores posibles Se aplica a...
Alignment Alinea el texto dentro del objeto 0- left Justify izquierda
1- right justify derecha
center centro Labels, textbox
Autosize Determina si un control cambia o no de tamaño para mostrar todo su contenido True verdadero
Falso falso Labels
Backcolor Cambia el color del fondo Cualquiera de los colores que aparecen en la paleta
Backstyle Determina si el fondo es transparente u opaco 0 transparente
1 opaco Labels
Borderstyle Determina el estilo de borde de un objeto 0 none sin borde
1 fixed single borde fijo Labels, texBox
Font Permite modificar el tipo, tamaño, estilo y efectos de las fuentes. Todos los que aparecen en el dialogo de fuentes Labels, texBox, Form y conmmandButton
Forecolor Color de las letras Cualquiera de los colores de la paleta Labels, textBox, form
Height Devuelve o establece la altura de un objeto Medida expresada en twips Todos los objetos
Width Devuelve o establece el ancho de un objeto Medida expresada en twips Todos lo objetos
Top Devuelve o establece la distancia entre el borde interno superior de un objeto y el borde superior de sí contenedor (coordenada Y de un objeto) medida expresada en twips Todos los objetos
Left Devuelve o establece la distancia entre el borde interno izquierdo de un objeto y el borde izquierdo de su contenedor (coordenada X del formulario)
Medida expresa en twips. Todos los objetos

Aplique las siguientes propiedades a los objetos del formulario.

Tabla 4. Propiedades del Formulario Datos Personales.

OBJETOS PROPIEDADES VALOR
Form1 Backcolor Amarillo
Lable1,label2, y label3 Font Times New Roman, Tamaño 10, Negrita.
Backstyle Transparente
TxtApellido y txtNombre Font Arial, Tamaño 12, Cursiva
Alignment Right justify
lblApenom Alignment Center
Font Times New Roman, Tamaño 12, Negrita.
Forecolor Blanco
CmdMostrar y cmdCerrar Font Arial, Tamaño 10, Negrita.

Finalmente su programa ha sido completado, no solo funciona bien sino que también tiene un vista atractiva y amigable del usuario.

Guarde su proyecto. Cree una carpeta llamada EJECICIO N°3, y coloque dentro de ellas el formulario y el proyecto.

Un nuevo proyecto
Ahora diseñe el siguiente formulario

El objetivo del proyecto es crear una pequeña calculadora, en la cual sólo se puedan ingresar 2 numero, y realizar con ellos las operaciones básicas (suma, resta, multiplicación, división y potencia). En definitiva el usuario ingresa 2 números, y pulsa sobre el botón correspondiente a la operación matemática que quiere calcular.


























La diferencia con el ejercicio anterior, es que en ese usamos datos de tipo texto (Apellido y Nombre), y en este ejemplo usaremos números.

Veamos entonces antes de pasar a ala programación, que objetos vamos a programar.
Habíamos dicho, que el usuario tipeaba 2 números y al hacer clic sobre cualquiera de los botones, obtenía sobre la etiqueta “lblResultado”, el resultado de la operación, esto quiere decir que debemos programar cada uno de los botones, ya que sobre ellos efectuaremos el evento clic.

Si escribimos el siguiente código en el botón cmdSumar

Private Sub cmdSumar_Click
LblTotal=txtNumero1.text + txtNumero2.text
End Sub

Se mostrará la concatenación de los números, es decir los unió, no los sumó, esto se produjo, porque los cuadros de edición, si bien pueden soportar cualquier tipo de dato, los números ingresados, los interpreta como caracteres. No obstante ello, al no poder sumarlos, los concatena.
Para resolver esto, usaremos una función llamada VAL, que transforma un dato de tipo carácter numérico.

La sintaxis de dicha función es:
VAL (conjunto de caracteres)

En nuestro ejemplo, para convertir en numérico el dato ingresado en el cuadro de texto escribiremos:
VAL (txtNumero1.text) le recordamos que siempre se identifica el objeto, y luego la propiedad, que en este caso, es el texto que este contiene.

Vuelva al código del botón sumar, y programe lo siguiente:

Private Sub cmdSumar_Click
LblTotal=Val(txtNumero1.text) + Val(txtNumero2.text)
End Sub


Probemos lo programado. Escriba 2 números, y luego pulse el botón Sumar fíjese que ahora si obtendrá la suma de dicho número. Del mismo modo, continúe con el resto de los botones:

Private Sub cmdRestar_Click
LblTotal=Val(txtNumero1.text) - Val(txtNumero2.text)
End Sub

Private Sub cmdMultiplicar_Click
LblTotal=Val(txtNumero1.text) * Val(txtNumero2.text)
End Sub

Private Sub cmdDividir_Click
LblTotal=Val(txtNumero1.text) / Val(txtNumero2.text)
End Sub

Private Sub cmdPotencia_Click
LblTotal=Val(txtNumero1.text) ^ Val(txtNumero2.text)
End Sub

Siempre vamos haciendo doble clic en el objeto a programar, revisando que estemos programando el objeto deseado.
Para el botón Cerrar escribimos la instrucción End como lo hicimos en el ejemplo anterior

Private Sub cmdCerrar_Click
End
End Sub

Guarde su proyecto, cree una carpeta llamada EJERCICIO N°4, y coloque dentro de ella tanto el formulario como el proyecto.

Identificadores
Un identificador es el nombre con que se identifica a cualquier elemento de un programa (constante y variables). Los identificadores tienen las siguientes características.
• Deben comenzar con una letra
• No pueden incluir un punto o un carácter de declaración de tipo (las variables no pueden contener símbolos como %&! @ ó $)
• No debe exceder de 255 caracteres
• No pueden ser palabras claves reservadas.

Notas: son palabras claves, las reservadas por el lenguaje, tales como “If”, “For”, “Const”, etc. La mayoría de estas las veremos más adelante.

Constantes
Una constante es un elemento que no cambia su contenido durante el transcurso del programa. Generalmente se utilizan para representar valores que aparecerán en mucho lugares del código. Por ejemplo:
Const.max_personas=50

Es más fácil utilizar la constante en el código (sin importar el valor que contenga) que repetir varias veces el valor. Además si tenemos que modificar el valor de la constante, lo hacemos una sola vez (y así evitaremos tener que reemplazar varias veces el valor)

Por convención las constantes ingresadas por el programador se escriben en mayúsculas, para diferenciarlas fácilmente de las variables.

Constantes proporcionadas por Visual Basic
Visual Basic incorpora constantes definidas previamente que pueden utilizarse en el código, sin ningún tipo de declaración. No obstante, usted ya ha utilizado este tipo de constante en el formulario de colores (vbRed, vbBlue, etc.). Más ejemplos de este tipo de constantes, iremos viendo en lo sucesivo del módulo.

Variables
Una variable es un nombre, una letra o un conjunto de letras que pueden almacenar temporalmente un dato, el cual como su nombre lo indica puede variar durante la ejecución del programa. Es importante destacar que las variables sólo se almacenan en la memoria del equipo, no en el disco, con lo cual, una vez interrumpido el programa estas pierden su valor.

Ej. :
A = 10
B = 5 A B C
C = a+b 10 5 15

En la siguiente tabla se muestra los tipos de variables, junto con sus tamaños de almacenamiento y rangos de valores aceptados

Tipo de Datos Tamaño de almacenamiento Rango
Boolean 1 byte True o false
Byte 2 bytes 0-255
Currency 8 bytes -9.22e.14 a 9.22e.14
Date 8 bytes 1/01/100 al 31/12 /9999
Double 8 bytes -1.80e308 a 1.80e308
Integer 2 bytes -32.768 a 32.767
Long 4 bytes -2.147.483.648 a 2.147.483.647
Single 4 bytes -3.40e38 a 3.40e38
String 1 carácter/ byte Aproximadamente 65.500 max Bytes
Variant

Es importante definir el tipo de dato que va almacenar en la variable por dos motivos:
• Validar errores en el ingreso del dato. Por ejemplo, no permitir el ingreso de una fecha en un variable importe.
• No definir variables con un tipo de datos mayor al que se necesita. Si estoy guardando la edad de una persona, el tipo más adecuado seria el Byte (más de 255 años seguro no vivirá). Optar por integer, long, o cualquiera de los otros sería un desperdicio de menoría.

Veamos un ejemplo, suponga que está creando un programa para una frutería que haga un seguimiento del precio de las manzanas. No sabe el precio de una manzana o la cantidad que se ha vendido hasta que no se produce realmente la venta. Puede usar dos variables para almacenar los valores desconocido (vamos a llamarlos Precio Manzanas y Manzanas Vendidas). Cada vez que se ejecuta el programa, el usuario especifica los valores de las dos variables. Para calcular las ventas totales y mostrarlas en un cuadro de texto llamado txtVentas, el código debería parecerse al siguiente:

TxtVentas.txt = PrecioManzanas * ManzanasVendidas

La expresión devuelve un total distinto cada vez, dependiendo de los valores que indique el usuario. Las variables le permiten realizar un cálculo sin tener que saber ante cuáles son los valores especificados.

En este ejemplo, el tipo de dato de PrecioManzanas es Currency; el tipo de dato de ManzanasVendidas es Integer. Las variables pueden representar otros valores como textos, fechas, diversos tipos numéricos e incluso objetos.

Almacenar y recuperar datos en variables
Utilice instrucciones de asignación para realizar cálculos y asignar el resultado a una variable:
ManzanasVendidas =10 se pasa el valor 10 a la variable
ManzanasVendidas = ManzanasVendidas +1 se incrementa la variable.

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).

Declaraciones
Declarar una variable explícitamente es decirle al programa algo de antemano. Se declara una variable mediante la instrucción Dim, proporcionando un nombre a la variable:
Dim nombreVariable (As tipo)_________________Tipo de dato: String, Date, Integer
Dim edad as byte
Dim nombre as string
Dim fecha_entrega as date, precio as currency

Fíjese que en todos los casos, siempre se asigna un nombre a la variable y el tipo de dato que contendrá. En la última línea, se definen dos variables, con un solo Dim.
Las variables que se declaran en un procedimiento mediante la instrucción Dim sólo existen mientras se ejecuta el procedimiento. Cuando termina el procedimiento, desaparece el valor de la variable. Además, el valor de un variable de un procedimiento es local de dicho procedimiento; es decir, no puede tener acceso a un variable de un procedimiento desde otro procedimiento.

Declaración implícita
No tiene por qué una variable antes de usarla. Por ejemplo, podría escribir una función donde no hiciera falta declarar superficie antes de usarla:
Superficie =base *altura

Visual Basic crea automáticamente una variable con ese nombre, que puede usar 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, si vuelve a usar la variable pero en vez de escribir superficie escribe superfici. A primera vista, parece igual, pero como se ha escrito erróneamente la variable superficie Visual no puede averiguar si realmente desee 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 estipular que Visual Basic le avise siempre que encuentre un nombre que no se haya declarado explícitamente como una variable.
Para declarar variables en forma explícita
• Incluya esta instrucción en la sección Declaraciones del módulo de formulario:
Option Explicit

O bien.....

En el menú Herramientas, elija Opciones, hagan clic en la ficha de Editor y active la opción Requerir declaración de variables.

Con esta declaración Superficie por ser una variable no declarada habría generado errores. Debería, por lo tanto, declararlo explícitamente.
P/ej. : Dim Superficie as Single

Es importante porque:
• Detecta variables no definidas
• Detecta variables mal escritas

Operaciones numéricas
Dentro de las operaciones que una variable puede realizar, se encuentran las operaciones de conteo y acumulación de información. Para llevaras a cabo se utilizan dos estructuras que podemos definir acumuladores y contadores.

Acumuladores
Consiste en la operación de ir acumulando (sumando) cantidades variadas de un variable.
• Defino la variable a utilizar que será de tipo numérica, pero no necesariamente enteras.

Dim acumulo as integer

• Cada vez que pase por esta instrucción agregará al contenido de la variable acumulo el contenido de la variable importe.

acumulo =acumulo+importe

Como vemos, la cantidad que aumentemos cada vez al contenido de la variable acumulo, dependerá del contenido de la variable importe en ese momento. Si el contenido de la variable importe es cero, no modificará el contenido de la variable acumulo y en el caso de que la variable importe tenga un valor negativo, decrementará el valor de la variable acumulo pudiéndolo dejar negativo o positivo.

Contadores
Consiste en la operación de ir acumulando (sumando) cantidades constantes dentro de una variable.
• Defino la variable a utilizar que será de tipo numérica, pero no necesariamente enteras.

Dim conteo as integer

• Cada vez que pase por esta instrucción incrementará el contenido de la variable conteo en 1

conteo = conteo +1

Como vimos, básicamente las dos operaciones son iguales, pero en la primera el valor que incrementemos es variable y en otra es un valor fijo.


Como usar las variables en sus programas
Vamos a crear una aplicación sencilla, para ejemplificar el uso de variables. La idea del programa consiste en que cuando se hace clic sobre cada botón se desplegará el nombre y el contenido de la variable afectada.
Comencemos con el botón llamado cmdNuméricas, en él vamos a definir una variable, a cargarle un valor y luego a mostrarla por pantalla con la instrucción Print



Haga doble clic sobre el botón titulado “Variables Numéricas” para abrir su ventana de código.

Dim numero as integer (defino la variable)
Numero = 100 (le asigno el valor 100)

print “el valor es: “& numero (muestro su contenido)
( lo encerrado entre comillas es una leyenda).

Pruebe el proyecto. Haga un clic sobre el botón programado y verá como en el extremo izquierdo de su formulario aparecer el contenido de la variable.

Guarde su proyecto. Cree una carpeta llamada EJERCICIO N°5, y coloque dentro de ellas tanto el formularios como el proyecto.

Sigamos con el resto de los botones, haga doble clic sobre el botón cndNombre titulado “Variables de tipo Texto”, y escriba las siguiente líneas de código:

Dim nombre As String
Nombre=”Daniela” (para variables alfabéticas se utilizan las comillas)
Print “El nombre es:”& nombre

Ahora, cierre la ventana de código y haga doble clic sobre el botón titulado “Variables de tipo Fecha” y escriban las siguientes líneas de código:

Dim fechanac As Date
fechanac=#14/03/1977# (para variables de fecha se utilizan los #numerales)
Print “La fecha de Nacimiento es:”& fechanac

Finalmente, programe el botón cmdCerrar con la instrucción End

Pruebe su proyecto, haciendo clic en cada uno de los botones programados.
Hasta el momento, usted ha creado 3 variables, cada una de ellas locales al procedimientos Clic de cada botón. Esto significa que las variables solo pueden ser utilizadas dentro de cada procedimiento, ya que al salir de dicho procedimiento estas pierden su valor.
Por ejemplo: si tratáramos de mostrar el contenido de la variable nombre desde el procedimiento cmdFechas_click(), veríamos que esta vacía. Esto se debe a que las variables solo viven dentro del procedimiento desde el cual fueron declaradas (usando la instrucción Dim).

A este tipo de variables se las llama variables Locales
Para declarar una variable de manera tal que las mismas pueden ser referenciadas desde cualquier objeto del formulario, debemos utilizar la sentencia Private en lugar de Dim en la sección de Declaraciones Generales.

Vamos a definir una variable nueva, la cual será privada del formulario actual. Haga doble clic en cualquier punto libre del formulario y verá la pantalla de código, en la lista desplegable de Objeto, elija General y así llegará a la sección de declaraciones generales.

Escriba la siguiente línea de código para declarar una variable doble que contendrá el peso de la persona.

Private peso As Double

Ahora, utilizaremos esta variable en nuestro programa. Diríjase al botón cmdNombre, haga doble clic y debajo de lo programado escriba la siguiente línea:
Peso= 57.50

Para verla por la pantalla, haga doble clic en el botón rotulado “Variables Numéricas” y añada al final la siguiente línea de código.

Print “El peso es de :” & peso

Tenga en cuenta, que siempre debe escribir dentro d la estructura Private, Sub, End Sub, nunca fuera.

Pruebe el proyecto, primero haga un clic sobre el botón cmdNombre, para cargar el valor 57.50 a la variable peso y finalmente cliquee sobre cmdNumericas, verá como además de mostrar el contenido de la variable numero muestra el de la variable peso, tal como lo refleja la figura XX.
A este tipo de variables, cuyo alcance va mas allá de un objeto del formulario, se la llaman variables privadas, ya que estas pueden invocarse desde cualquier objeto del formulario actual (recuerde que en un mismo proyecto podemos tener más de un formulario actual).

Entradas y Salidas con Inputbox() y Msgbox()

Aprenderemos a utilizar las funciones InputBpx(), Msgbox() y el procedimiento Msgbox() para manejar las operaciones de entradas y salidas.
Se puede manipular estas funciones permitiéndole personalizar la combinación de iconos, leyendas y botones de respuesta que aparecerán en estos cuadros de diálogos, veremos todos los aspectos fundamentales de estas funciones.

¿Qué son inputBox(), msgbox() y msgbox?
Fíjese que él titulo presenta dos veces Msgbox, esto es porque la primera vez aparece como función (utiliza los paréntesis) y la segunda vez como procedimiento.
La diferencia, dicho en forma simple, es que una función devuelve un valor y el procedimiento no lo hace.
Esto se refleja en la sintaxis que se usa para llamarlos. A menudo se pueden identificar las funciones por el uso de los paréntesis y un signo igual para capturar el valor de retorno en una variable. Los procedimientos, por otro lado, se utilizan sin paréntesis o signos igual.

La función Inputbox()
La función InputBox() muestra u mensaje en un cuadro de diálogo, espera que el usuario escriba un texto o haga clic en un botón, y luego devuelve en un tipo de dato String (tipo de datos que consiste en una secuencia de caracteres) el contenido del cuadro de texto.
sintaxis
Inputbox (mensaje, titulo, default, xpos, ypos, helpfile, context)

Observe los argumentos de esta función en la siguiente figura:
mensaje = InputBox("mensaje", "título", "default"


La sintaxis de la función InputBox consta de estos argumentos:

Tabla VI. Argumentos de la Función InputBox()
Parte Descripción
Prompt (mensaje) 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 1024 caracteres, según el ancho de los caracteres utilizados. Si prompt consta de mas de una línea, puede separarlo utilizando un carácter de retorno de carro (Chr (13)), un carácter de avance de 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 (titulo) 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 titulo se coloca el nombre de la aplicación.
Default (valor predeterminado) Opcional. Expresión de cadena que se muestra en el cuadro de texto como respuesta predeterminada cuando no se suministra una cadena. Si omite default, se muestra el cuadro de texto vacío.
Xpos Opcional. Expresión numérica que especifica, en twips (unidad de medida), la distancia en sentido horizontal entre el borde izquierdo del cuadro de dialogo 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, en twips, la distancia en sentido vertical entre el borde superior del cuadro de dialogo y el borde superior de la pantalla. Si se omite ypos, el cuadro de dialogo 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 dialogo. Si se especifica helpfile, también deberá especificarse context.
Context Opcional. Expresión numérica que es él numero de contexto de ayuda asignado por el autor al tema de ayuda correspondiente. Si se especifica context, también deberá especificarse helpfile.

Comentarios
Cuando se especifica tanto helpfile como context, usted puede presionar F1 para ver el tema de ayuda correspondiente a context. Si el usuario hace clic en aceptar o presiona entrar, la función Inputbox devuelve lo que haya escrito en el cuadro de texto. Si el usuario hace clic en Cancelar, la función devuelve una cadena de caracteres de longitud cero (“”).

Nota: Si desea omitir algunos argumentos de posición, debe incluir el delimitador de cómo correspondiente. Por ejemplo, si quiero colocar una mensaje, y un valor predeterminado, pero no me interesa cambiar él titulo de la ventana, la coma correspondiente este argumente debe escribirla, para que la sintaxis de la función se considere correcta.

Veamos alguno ejemplos:
A continuación mostraremos distintas maneras de utilizar la función Inputbox para indicar al usuario que debe introducir un valor. Si se omiten las posiciones x e y, el diálogo se centra automáticamente según los ejes respectivos. La variable Mivalor contiene el valor introducido por el usuario, si éste hace clic sobre Aceptar o presiona ENTER. Si el usuario hace clic sobre Cancelar, se devuelve una cadena de caracteres de longitud cero.

Ejemplo N°1
Dim Mensaje, Titulo, ValorPred, Mivalor ‘Defino 3 variables locales
Mensaje = “Introduzca un numero del 1 a 3” ‘Establezco el mensaje
Titulo = “Demostración de Inputbox” ‘Establezco él titulo.
ValorPred = “1” ‘Establezco el valor predeterminado
MiValor = InputBox (mensaje, titulo, valorPred)

Ejemplo N°2
Muestra del diálogo en posición 100, 100.

MiValor = InputBox(Mensaje, Titulo, ValorPred, 100,100)

Ejemplo N°3
Muestra el diálogo con el mensaje, al omitir el argumento título aparece el nombre del proyecto sobre la barra, y este ubica en el centro del formulario.
MiValor = InputBox(Mensaje)

El procedimiento MsgBox y la función MsgBox()
Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón, y devuelve un tipo de Integer correspondiente al botón elegido por el usuario.

Sintaxis
MsgBox(mensajes (botones)(titulo)(ArchAyuda, Context))

Ej. Mensaje = MsgBox("Este es un mensaje informativo", vbOKOnly, "Atención"



La sintaxis de la función MsgBox consta de estos argumentos:

Tabla VII. Argumentos de la función MsgBox ()
Parte Descripción
Prompt (mensaje) Requerido. Expresión de cadena que representa el Mensaje en el cuadro de diálogo. La longitud máxima del mensaje es de aprox 1024 caracteres, según el ancho de los caracteres utilizados. Si el mensaje consta de mas de una líneas, 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 (botones e iconos) Opcional. Expresión numérica que corresponde a la suma de los valores que especifica él numero 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 button es 0
Title (titulo) Opcional. Expresión de cadena que se muestra en la barra de titulo del cuadro de diálogo. Si se omite TITLE, en la barra de titulo 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 del argumento buttons:
Constante Valor Descripción
VbOKOnly 0 Muestra solamente el botón Aceptar
VbOKCancel 1 Muestra los botones Aceptar y Cancelar
VbAbortRetryIgnor 2 Muestra los botones Anular, reintentar e Ignorar
VbYesNoCancel 3 Muestra los botones Si, No y Cancelar.
VbYesNo 4 Muestra los botones Sí y No
VbRetryCancel 5 Muestra los botones Reintentar y Cancelar.
VbCritical 16 Muestra el icono de mensaje critico
VbQuestion 32 Muestra el icono de pregunta de advertencia
VbExclamtion 48 Muestra el icono de mensaje de advertencia
VbInformation 64 Muestra el icono de mensaje de información
VbDefaultButton1 0 El primer botón es el predeterminado
VbDefaultButton 2 256 El segundo botón es el predeterminado
VbDefaultButton 3 512 El tercer botón es el predeterminado
VbDefaultButton 4 768 El cuarto botón es el predeterminado
VbApplicationModal 0 Aplicación modal; el usuario debe responder al cuadro de mensaje antes de poder seguir trabajando en la aplicación actual.
VbSystemModal 4096 Sistema modal; se suspende todas las aplicaciones hasta que el usuario responda al cuadro de mensaje
VbMsgBoxHelpButton 16384 Agrega el botón Ayuda al cuadro de mensaje
VbMsgBoxSetForeground 65536 Especifica la ventana del cuadro de mensaje como la ventana de primer plano
VbMsgBoxRigh 524288 El texto se alinea a la derecha
VbMsgBoxRtlReading 104857 6 Especifica que el texto debe aparecer para ser leído de derecha a izquierda en sistemas hebreos y árabe.

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) determina el botón predeterminado y el cuarto grupo (0, 4096) determina la modalidad del cuadro de mensajes. Cuando se suman número para obtener el valor final del argumento buttons, se utiliza solamente un número de cada grupo.

Nota: estas constantes las especifica Visual Basic para las aplicaciones. Por tanto, el nombre de las mismas puede utilizarse en cualquier lugar del código en vez de sus valores reales.

Tabla IX. Valores devueltos
Constante Valor Descripción
VbOk 1 Aceptar
VbCancel 2 Cancelar
VbAbort 3 Anular
VbRetry 4 Reintentar
VbIgnore 5 Ignorar
VbYes 6 Sí
VbNo 7 No

Comentarios
Cuando se proporciona tanto helpfile como context, el usuario puede presionar F1 para ver el tema de Ayuda correspondiente al context. Si el cuadro de diálogo cuenta con un botón Cancelar, presionar la tecla ESC tendrá el mismo efecto que hacer clic en este botón. Si el cuadro de diálogo contiene un botón Ayuda, se suministra ayuda interactiva para ese cuadro de diálogo. Sin embargo, no se devuelve valor alguno hasta que se hace clic en uno de estos botones.
Si desea omitir algún argumento de posición, debe incluir el delimitador de coma correspondiente.
Veamos un ejemplo:
Utilizaremos la función MsgBox para mostrar un mensaje de error crítico en un cuadro de diálogo con botones Sí y No. El botón No se considera la respuesta predeterminada.
El valor devuelto por la función MsgBox depende del botón elegido por el usuario.

Dim Mensaje, Estilo, Titulo, Respuesta, as string
Mensaje = “¿Desea continuar?” ‘Define el mensaje
Estilo = vbYesNo + vbCritical +vbDefaultButton2 ‘Define los botones
Titulo = “Demostración de MsgBox” ‘Define él titulo

Muestra el mensaje y cargo en la variable respuesta la selección del usuario

Respuesta = MsgBox (Mensaje, Estilo, Titulo)


Si el usuario pulso el botón Sí, el contenido de la variable respuesta será vbyes, de lo contrario será vbNo. Nuestro ejemplo llega hasta aquí, aunque en el futuro tomaremos decisiones basadas en esas respuestas.

Comencemos un nuevo proyecto siguiendo el procedimiento de las aplicaciones anteriores. Desarrollemos el siguiente formulario, dibujando los objetos y asignándoles las propiedades.

Ingresar nombre: cmdNombre
Ingresar un número: cmdIngNro
Mostrar Nombre: cmdMostNom
Mostrar el doble: cmdMostDoble
Cerrar: cmdCerrar


En esta aplicación, cuando el usuario hace clic sobre el botón rotulado “Ingresar Nombre “, aparecerá un cuadro de entrada pidiendo un nombre. Por otra parte para poder verificar nombre ingresado, pulsará el botón rotulado “Mostrar Nombre” y con el uso de un cuadro de mensaje, mostraremos el nombre ingresado previamente. Algo muy similar ocurrirá con el tema de los números. Veamos como llevarle a cabo.
Usted definirá dos variables a nivel de formulario, para poder usarlas desde cualquier objeto del formulario. Una la usaremos, para contener un nombre y otra, para almacenar un número. Entonces en cualquier punto libre del formulario pulse doble clic, en la lista desplegable de Objeto, elija General y así llegará a la sección de declaraciones generales. Ahora bien defina las siguientes dos variables probadas del formulario tal como sigue:

Private nombre as String
Private numero as integer

Una vez definidas las variables, vamos a programar los botones de comando. Empiece por el botón cmdNombre.

Nombre=Inputbox(“Ingrese su nombre:”, “Ingresar Nombre”)

Luego, continúe programando el botón cmdMostNom. En este procedimiento escribirá la siguiente línea:

MsgBox “El nombre ingresado fue” & “ “ & nombre, vbInformation, “Mostrar Nombre”

Completemos el resto de los botones, abra el botón cmdIngNro, y escriba lo siguiente:

Numero = Inputbox(“Ingrese un número:” , “Ingresar número”)

Ahora, abra el botón nombrado cmdMostDoble y tipee la siguiente línea:

MsgBox “El doble es” & “ “ & numero * 2, vbInformation, “Mostrar Doble”

Fíjese, que directamente en la misma línea multiplicamos la variable numero por 2, para obtener su doble. El & nos permite unir la leyenda (el doble...) al contenido de la variable numero, tal como lo hizo en el caso anterior del nombre.
Probemos el proyecto.

Nota: tenga en cuanta que las variables de tipo integer, solo llegan el número 32.767, por lo tanto si ingresa un número posterior al 16383, al querer calcular el doble le aparecerá un mensaje de error por desbordamiento de la variable.

Guarde su proyecto. Cree una carpeta llamada EJERCICIO N°6, y coloque dentro de ellas tanto el formulario como el proyecto.

Estructuras de Control
Seleccionar una acción, entre un conjunto de ellas, de acuerdo a una condición dada se podría decir que son las estructuras de decisión.
Se utilizan para tomar decisiones sencillas, basadas en una condición predeterminada.
Dentro de las mismas veremos dos tipos. Las que utilizan la sentencia If...Endif y las que utilizan Select Case ....End Select. Las mismas serán descriptas y ejemplificadas a continuación.

Ramificando con If...End If
Sintaxis
If condición Then (instrucciones)-(Else intrucciones_else)

Puede utilizar la siguiente sintaxis en formato de bloque:

If condición Then
(instrucciones)

Elself condiciones-n Then
(intrucciones_elself)...

Else
(intrucciones_else)

End If

La sintaxis de la instrucción IF... Then... Else consta de tres partes, tal como lo ilustra la siguiente tabla:

Parte Descripción
condición Requerido. Uno o más de los siguientes dos tipos de expresiones:
Una expresión numérica o expresión de cadena que puede ser evaluada como True o false. Si condición es Null, condición se considera False
En este argumento se utilizan las operaciones de comparación: (<,>= <>,etc.) por ejemplo edad >=21, seria la condición para ser mayor de edad. También pueden aparecer los operadores lógicos (and, or, not). Por ejemplo nota>7 y faltas <=3 serian las condiciones necesarias para que cada un alumno promociona una materia.
instrucciones Son las acciones a realizar, si la expresión indicada en la condición resulta verdadera. Por je: mostrar u mensaje, realizar un calculo, etc.
Condición-n Opcional. Igual que condición.
Instrucciones_elself Opcional. Una o más instrucciones ejecutadas si la condicion_n asociada es True.
Instrucciones_elself Opcional. Una o más instrucciones ejecutadas si ninguna de las expresiones anteriores condición o condición-n es True.

Nota: una instrucción If debe terminar con una instrucción End If y las cláusulas Else y ElseIf son opcionales.

Ejemplo 1
Supongamos que quisiéramos que nuestro programa determine la calificación de un alumno, basado en la nota que este ingresa. Si la nota se encuentra por debajo del 4 (cuatro), la calificación será desaprobado, de lo contrario será aprobado.

Ahorremos tiempo, pensemos, que ya declaramos una variable llamada nota, y que esta contiene la nota ingresada por el usuario y la otra variable llamada calificación que será la que almacene el mensaje correspondiente. Las líneas de código para determinar la calificación podrían ser las siguientes:

If nota<4 Then
Calificación= “Desaprobado”
Else
Calificación= “Aprobado”
Endif


Fíjese que sólo hago una pregunta, pues cuando se tiene sólo dos posibilidades, sólo se pregunta por una, la otra surge por defecto (sí la nota, no es menor a 4, obviamente es mayor).
Otra posibilidad para el mismo ejemplo sería la siguiente:
If nota<= 4 then
Calificación= “Aprobado”
Else
Calificación= “Desaprobado”
Endif

Compliquemos un poco mas la situación, incorporando la opción de promoción para aquellos alumnos cuya nota es 7(siete) o más.
Para este caso ya tendríamos 3 posibilidades, por el cual necesitaremos una pregunta, mas que en el caso anterior.
Veamos las líneas de código:
If nota>= 7 then
Calificación = “Promoción”
Else
If nota>= 4 then
Calificación = “Regular”
Else
Calificación = “Desaprobado”
Endif
Endif

buno manes hasta aqui llega la primera parte bmalñana ago la segunda espero que les guustara a se me olvidavan las imagenes mañana sin falta las subo porfa comenten no les cuesta nada.