Ing. Julián Andrés Arias L. Universidad Tecnológica de Pereira Facultad de Ingeniería Industrial Informática I Práctica 22. Practicar el uso de las órdenes y estructuras de control básicas. VBA para crear procedimientos. Además aprender a invocar eventos para interactuar con los formularios. Ejercicio 1 1 Abre una nueva hoja en un nuevo libro de trabajo habilitado para macros. Vamos a escribir nuestro primer programa en “Visual Basic”. ALT+F11 2 Ve al menú insertar [Módulo1]” y haz doble clic en para empezar a escribir código en él: 3 Escribe el siguiente programa: Sub Programa1() MSGBOX “Hola Mundo” End Sub Habrás observado varias cosas: Las “sentencias” Sub y End Sub aparecen de color azul Aunque escribas MSGBOX (todo en mayúsculas), aparece MsgBox Las sentencias Sub, End Sub y MsgBox son “palabras reservadas”. Dicho de otra forma: forman parte del lenguaje “Visual Basic” Acabamos de escribir nuestro primer “procedimiento”, ya veremos que hay diferentes tipos de programas. De momento tenemos un programa PROCEDIMIENTO. 4 Vamos a “ejecutar” el procedimiento “Programa1”… 5 Ahora salgamos del editor de Visual Basic para retornar a la hoja e insertemos un botón (llamado programa1) desde la ficha ProgramadorInsertarControles de formulariobotón, de tal forma que cuando lo ubiquemos en cualquier lugar de la hoja, nos aparezca una ventana que nos pedirá el nombre de la macro o procedimiento que le asignaremos a este botón. En ese momento, aparecerá en la lista de macros, la macro o procedimiento que creamos anteriormente, Programa1, y pulsamos el botón Aceptar para asignarlo. Ahora si hacemos clic sobre el botón y programa1 nos aparecerá lo pedido en el Ing. Julián Andrés Arias L. 6 Escribe el siguiente programa debajo de la palabra End Sub del programa anterior: Sub Programa2() MSSGBOX "A ver que pasa" ‘Está claro que hemos escrito un error End Sub 7 Vamos a “ejecutar” el procedimiento “Programa2”… 8 Creemos un botón desde la hoja de Excel que llame al procedimiento Programa2 9 Al ejecutar el programa, observamos que tenemos un error y el compilador de VB se encarga de advertírnoslo, lo que debemos hacer es corregir el error según la línea donde se presente. Observemos que el error fue haber escrito mal la palabra reservada MsgBox que trae incorporada VB para mostrar mensajes, ya que repetimos dos veces la letra ‘S’. Para esto vamos al menú EjecutarRestablecer. Escribamos bien la palabra MsgBox y volvamos a correr nuestro Programa2. Para los siguientes programas vamos a utilizar variables de un determinado tipo. 10. Escribe el siguiente programa debajo de la palabra End Sub del programa anterior: Sub Programa3() Dim n1 As Integer, n2 As Integer n1 = InputBox("Escribe un número") n2 = InputBox("Escribe otro número") MsgBox "La Suma es = " & n1 + n2 End Sub 11 Vamos a “ejecutar” el procedimiento “Programa3”, creemos un botón que lo llame y probémoslo 12 Escribe el siguiente programa Sub Programa4() 'Programa que nos pide nuestro nombre Dim nom As String 'El tipo "String" significa texto Ing. Julián Andrés Arias L. nom = InputBox("Escribe tu nombre y apellidos") MsgBox "Hola " & nom End Sub 13 creemos un botón que llame al Programa4 y probémoslo 14 Escribe el siguiente programa, este trae un poco mas de cálculos, así que veremos como utilizar los operadores aritméticos Sub Programa5() 'Cálculo del área de un TRIÁNGULO Dim base As Double Dim alt As Double Dim area As Double 'Observa que defino el área como variable _ Y no imprimo la formula completa, sino que la asigno a area base = InputBox("¿Cuál es la base del triángulo?") alt = InputBox("¿Cuál es la altura del triángulo?") area = base * alt / 2 'Observa como asigno el valor de la 3ª variable _ a partir de las otras dos MsgBox "El área del triángulo es " & area End Sub Creemos un botón que llame al Programa5 y probémoslo 15 Ahora creemos dos programas que incorporen la estructura If-Then- Else-End If Sub Programa6() Dim A As String A = InputBox("¿Quieres continuar (S/N)?") If A = "S" Or A = "s" Then MsgBox "Buena elección" End If End Sub Creemos un botón que llame al Programa6 y probémoslo Ing. Julián Andrés Arias L. Sub Programa7() Dim num1 As Double, num2 As Double 'Defino dos variables num1 = InputBox("Escribe el primer número") num2 = InputBox("Escribe el segundo número") 'El programa nos solicita dos números If num1 < num2 Then MsgBox "El primer número " & num1 & " es menor que " _ & "el segundo " & num2 Else MsgBox "El primer número " & num1 & " no es menor que " _ & "el segundo " & num2 End If End Sub 16 Ahora creemos un programa que incorporen la estructura Select -Case-End Select Sub Programa8() Dim sexo As String sexo = InputBox("Escribe Select Case sexo Case " Hombre" MsgBox "¿Qué Case " Mujer" MsgBox "¿Qué Case Else MsgBox "¿Qué End Select End Sub 17 Hombre o Mujer según tu sexo") tal, Hombre?" tal, Mujer?" tal, sexo ambiguo?" Ahora creemos un programa que incorporen la estructura While - Wend Sub Programa9() Dim contador As Integer contador = 1 While contador <= 5 MsgBox "Variable Contador = contador = contador + 1 Wend End Sub " & contador 18 Ahora creemos un programa que incorporen la estructura For – To - Next Ing. Julián Andrés Arias L. Sub Programa10() Dim num As Integer, i As Integer Dim nom As String num = InputBox("¿Cuántas veces quieres que te salude?") nom = InputBox("¿Cuál es tu nombre?") For i = 1 To num MsgBox "Hola " & nom Next End Sub 19 Ahora creemos un programa que nos incorpore varias de estas sentencias de control, para este caso vamos a utilizar If-then-Else- End if y for – Next Sub Programa11() Dim A As String Dim i As Byte For i = 1 To 20 A = InputBox("¿Quieres continuar? (S/N)") If A = "N" Or A = "n" Then Exit For Else MsgBox “Seguiremos hasta que quieras” End If Next MsgBox "Se acabó” End Sub 20 Por ultimo creemos un programa que interactúe con un formulario, es decir, que una vez se ejecute, espere los eventos que puedan suceder Minicalculadora elemental. En este ejemplo se muestra una calculadora elemental que permite hacer las cuatro operaciones aritméticas Lo que primero debemos hacer es crear un formulario en vista de diseño, que contenga 4 botones de comando(btnSumar, btnRestar, btnMultiplicar, btnDividir), 3 cuadros de texto (txtValor1, txtValor2, txtResultado)y 2 etiquetas(lblOperador, lblIgual) Una vez hayamos modificado los respectivos nombres a cada control, procedemos a asignarle código a los botones que harán las operaciones aritméticas. 21 Para el botón ‘btnSumar’ en la vista de diseño del formulario, hacemos doble click, y vamos a Generarle código y le escribimos el siguiente: Ing. Julián Andrés Arias L. Private Sub btnSumar_Click() txtResultado.Text = Val(txtValor1.Text) + Val(txtValor2.Text) lblOperador.Caption = "+" End Sub De igual manera aplicamos el paso 26 para los tres botones siguientes y les asociamos el respectivo código: Private Sub btnRestar_Click() txtResultado.Text = Val(txtValor1.Text) - Val(txtValor2.Text) lblOperador.Caption = "-" End Sub Private Sub btnMultiplicar_Click() txtResultado.Text = Val(txtValor1.Text) * Val(txtValor2.Text) lblOperador.Caption = "*" End Sub Private Sub btnDividir_Click() txtResultado.Text = Val(txtValor1.Text) / Val(txtValor2.Text) lblOperador.Caption = "/" End Sub 22 Ahora probemos lo hecho. Vamos a la vista de formulario y ejecutemos cada acción de los botones. Por último: 23 Creemos un menú para organizar los botones desde los cuales se llama cada uno de los programas, así: Cuando insertemos el “Pergamino Vertical” le damos un tamaño y colocaremos dentro todos los botones en orden de creación. Lo que hemos visto es solo una parte básica de todo lo que podemos hacer con VB, ya nos queda como tarea investigar más a fondo según la necesidad que se nos plantee en un futuro…