56
VBA Excel 2010 PRÁCTICAS TÉCNICAS
Capítulo 4: Estructuras de control X Duración: 1 hora 45 X Palabras clave: condición,
selección, test, alternativa, bifurcación condicional, contador, iteración, incrementar, decrementar, salida.
X Objetivos Aprender a usar las estructuras de decisión para testear las condiciones y realizar diferentes acciones según el resultado obtenido. Conocer las instrucciones de iteración que, asociadas a instrucciones condicionales, permiten escribir código Visual Basic para la toma de decisiones y la repetición de acciones. Encontrará estas estructuras en la continuación del libro. En este capítulo, nos limitaremos al empleo de cuadros de diálogo ya comentados.
A
Requisitos previos Para comprobar los requisitos previos necesarios, antes de iniciar esta práctica técnica, responda a las siguientes preguntas (ciertas preguntas admiten más de una respuesta): 1. Las siguientes estructuras son estructuras de decisión: a. If ... Then ... Else ... End If b. Do ... Loop c. Select Case ... Case ... End Select 2. Resultado = IIf(7 / 2 > 3, IIf(2.8 * 3.3 < 11, "X", "Y"), "Z") La variable Resultado contiene el valor: a. X b. Y c. Z 3. Las siguientes instrucciones, que pertenecen cada una a una estructura de control diferente, son correctas: a. Case If N1 > N2 b. Case A, B, C c. Case 1 to 10 d. Case Num, Is > 50 4. La palabra clave ElseIf: a. puede aparecer seguida de una cláusula Else. b. es opcional. c. puede usarse muchas veces en un bloque If. © Editions ENI - Reproducción prohibida
Estructuras de control ENUNCIADOS DEL CAPÍTULO 4
57
5. Repetición de instrucciones mientras que una condición tenga el valor True: a. For Each . . . Next b. For ... Next c. Do ... Loop d. While ... Wend e. With ... End With Para las preguntas 6 a la 9, los ítems son los mismos que los de la pregunta 5. 6. Uso de un contador para ejecutar instrucciones un cierto número de veces: a. For Each . . . Next b. For ... Next c. Do ... Loop d. While ... Wend e. With ... End With 7. Repetir un grupo de instrucciones para cada elemento de una tabla o de una colección: a. For Each . . . Next b. For ... Next c. Do ... Loop d. While ... Wend e. With ... End With 8. Repite un grupo de instrucciones la cantidad de veces indicada: a. For Each . . . Next b. For ... Next c. Do ... Loop d. While ... Wend e. With ... End With 9. Ejecutar una série de instrucciones aplicadas a un único objeto o a un tipo definido por el usuario: a. For Each . . . Next b. For ... Next c. Do ... Loop d. While ... Wend e. With ... End With Respuesta pág. 244 © Editions ENI - Reproducción prohibida
58 B
VBA Excel 2010 PRÁCTICAS TÉCNICAS
Enunciado 4.1: Verificar que el valor introducido es un número Ejercicio 1 Duración estimada: 10 minutos Escriba un procedimiento ControlEntrada que muestra un cuadro de entrada y verifica que se trata de un número. En ese caso, realice la operación que consiste en multiplicar el número por sí mismo. En caso contrario, mostrar un mensaje. Ejemplo:
Sugerencia Use la función IsNumeric para testear la entrada.
Ejercicio 2 Duración estimada: 5 minutos Complete el procedimiento anterior para que verifique que el operador ha hecho clic en el botón Aceptar. En caso contrario, mostrar un mensaje. Ejemplo:
Respuesta pág. 244 © Editions ENI - Reproducción prohibida
Estructuras de control ENUNCIADOS DEL CAPÍTULO 4
C
59
Enunciado 4.2: Decir adiós Duración estimada: 5 minutos Complete el procedimiento Adios. Éste muestra un cuadro de diálogo con el mensaje "Hasta pronto" si el operador hace clic en el botón Sí. Si no, muestra el mensaje "Continuamos". Ejemplo:
Sub Adios() Dim vMensaje As String Dim vEstilo, vElec As Integer vMensaje = "¿Desea cerrar Excel?" vEstilo = vbYesNo + vbDefaultButton2 . . . = MsgBox(vMensaje, vEstilo) If . . . = vbYes . . . MsgBox "Hasta pronto." . . . MsgBox "Continuamos." . . . End Sub
Sugerencia Éste es un extracto de la ayuda en línea:
Respuesta pág. 245 © Editions ENI - Reproducción prohibida
60 D
VBA Excel 2010 PRÁCTICAS TÉCNICAS
Enunciado 4.3: Controlar la introducción de una consonante o una vocal Duración estimada: 10 minutos Escriba un procedimiento ConsonanteVocal que pida introducir una vocal o una consonante. Debe aparecer un mensaje según si la entrada es: "Vocal", "Consonante" o un mensaje adecuado en caso de error. Ejemplo:
Sugerencia Para testear la letra en mayúscula. vElec = UCase(vElec)
Respuesta pág. 245 E
Enunciado 4.4: Mostrar un mensaje según la edad y el género Duración estimada: 15 minutos Escriba un procedimiento SuEdad que pregunte la edad. Los mensajes serán distintos según se trate de un hombre o de una mujer. Tener en cuenta también la cancelación de la entrada y la introducción de letras para la edad.
© Editions ENI - Reproducción prohibida
Estructuras de control ENUNCIADOS DEL CAPÍTULO 4
Edad
61
Hombre
0 - 17
Chico
18 - 30
eres joven
31 - 50
Usted todavía es joven
> 50
Usted comienza a envejecer
Para las mujeres, un sólo mensaje: "Nunca se le pregunta la edad a una dama". Ejemplo:
Sugerencias Declaración de variables Dim Dim Dim Dim
vHombre As String * 1 vMujer As String * 1 vSexo vEdad As Single
Para mostrar el primer cuadro de diálogo: vSexo = MsgBox("¿Usted es un hombre?", vbYesNo, "¿Su edad?")
Para mostrar el segundo cuadro de diálogo: vEdad = InputBox("¿Qué edad tiene Usted?", , 0)
Respuesta pág. 246
© Editions ENI - Reproducción prohibida