Este documento resume estructuras y funciones en VB como If/Then/Else, Select Case, bucles Do/Loop, MsgBox, SelLength, SelStart, SelText, Len y InStr. Explica la sintaxis y uso de cada una para controlar flujos de programa, mostrar mensajes y seleccionar/buscar texto dentro de cadenas.
2. Objetivo
Una vez realizado el ejercicio, el alumno vea
las herramientas que se ocuparon para la
resolución del ejercicio 2 y pueda hacer
mejoras en los ejercicios posteriores
3. Sintaxis If then Else
If: Esta estructura nos permite desviar el flujo de programa
dependiendo de si se cumple una condición. La sintaxis es:
If Condición then
Conjunto de ordenes que se ejecutarán
cuando la Condición sea verdadera.
Else
Conjunto de ordenes que se ejecutarán
cuando la Condición sea falsa.
End If
4. Sintaxis Select case
Select: Dependiendo del valor de una expresión o variable ejecuta una
opción u otra. La sintaxis es:
Select Case Expresión
Case Valor1
Conjunto de ordenes que se
ejecutarán cuando la Expresión tenga Valor1.
Case Valor2
Conjunto de ordenes que se
ejecutarán cuando la Expresión tenga Valor2.
............
Case Else
Conjunto de ordenes que se
ejecutarán cuando la Expresión no sea ningún valor
anterior.
End Select
5. Estructuras de ciclo o bucle
Las estructuras de bucle permiten ejecutar una o
más líneas de código repetidamente. Las
estructuras de bucle que acepta Visual Basic son:
Do...Loop: Utilizaremos el bucle Do para ejecutar un
bloque de instrucciones un número indefinido de veces.
Hay algunas variantes en la instrucción Do...Loop, pero
cada una evalúa una condición numérica para determinar
si continúa la ejecución. Como ocurre con If...Then, la
condición debe ser un valor o una expresión que dé como
resultado False (cero) o True (distinto de cero).
6. Sintaxis Do While
Las instrucciones se ejecutan siempre y
cuando condición sea True, la sintaxis es:
Do While condición
instrucciones
Loop
7. Do while
Cuando Visual Basic ejecuta este bucle Do, primero
evalúa condición. Si condición es False (cero), se
salta todas las instrucciones. Si es True (distinto de
cero), Visual Basic ejecuta las instrucciones, vuelve
a la instrucción Do While y prueba la condición de
nuevo.
Por tanto, el bucle se puede ejecutar cualquier
número de veces, siempre y cuando condición sea
distinta de cero o True. Nunca se ejecutan las
instrucciones si condición es False inicialmente.
8. Do Loop while
Otra variante de la instrucción Do...Loop
ejecuta las instrucciones primero y prueba
condición después de cada ejecución. Esta
variación garantiza al menos una ejecución
de instrucciones:
Do
instrucciones
Loop While condición
9. Do until y do loop until
Hay otras dos variantes análogas a las dos
anteriores, excepto en que repiten el bucle
siempre y cuando condición sea False en
vez de True.
10. MsgBox
Las cajas de mensajes o Message Box, tienen una
función clara, que es la de mostrar una
determinada información, aviso, o pregunta para
que el usuario tenga conocimiento de ella y actúe.
Hay diferentes formas de mostrar información :
El aviso es sí, que tiene por objetivo mostrar una
1.
información de interés.
El aviso con espera de respuesta, que muestra una
2.
información esperando que el usuario seleccione una de
las respuestas posibles para que el programa la trate.
11. MsgBox
Una caja de mensaje, puede ser por ejemplo,
la instrucción MsgBox(quot;Holaquot;)
Por defecto, la caja de mensaje será similar a
esta:
12. MsgBox
Como podemos apreciar en el código, la caja
de mensaje posee un título Ejemplo y el
mensaje, pero es posible que deseemos
escribir un mensaje en varias líneas con salto
de párrafo. Nada tan fácil como este código
por ejemplo :
MsgBox( quot;Holaquot; & vbCrLf & quot;Esto es un
ejemplo.quot;, , quot;Ejemploquot; ).
14. MsgBox
Se habrá percatado de que entre el mensaje
y el título de la ventana, hemos escrito dos
comas, esto es porque entre las comas, debe
ir un número que representará el icono a
mostrar. Existen cuatro iconos diferentes
además de la posibilidad de no mostrar
ninguno.
Los iconos son:
15. MsgBox
Estos iconos corresponden a los siguientes
mensajes:
Mensaje crítico.
Mensaje de pregunta.
Mensaje exclamativo.
Mensaje de información
16. MsgBox
Para mostrar el icono en cuestión o para que
Visual Basic lo entienda, es necesario
escribir lo siguiente:
Mensaje crítico. VbCritical ó 16
Mensaje de pregunta. VbQuestion ó 32
Mensaje exclamativo. VbExcalamqtion ó 48
Mensaje de información. VbInformation ó 64
Note que es lo mismo insertar VbCritical o
16.
17. MsgBox
Vamos a ver un ejemplo añadiendo un icono
al último ejemplo :
MsgBox(quot;Holaquot; & vbCrLf & quot;Esto es un
ejemplo.quot;, vbQuestion , quot;Ejemploquot; )
El resultado es:
18. MsgBox
Ahora bien, es posible que queramos mostrar algún
otro botón que o bien no sea el de Aceptar o que
además del botón de Aceptar haya más botones.
Para este propósito, tenemos los siguientes
parámetros :
Aceptar vbOKOnly ó 0
Aceptar y Cancelar vbOKCancel ó 1
Anular, Reintentar, Ignorar vbAbortRetryIgnore ó 2
Sí, No y Cancelar vbYesNoCancel ó 3
Sí y No vbYesNo ó 4
Reintentar y Cancelar vbRetryCancel ó 5
Aplicación modal vbApplicationModal ó 0 (Es la caja de
mensaje sin icono)
19. MsgBox
La forma de hacer esto es sumar al
parámetro del icono que queremos mostrar el
valor de los botones que deseamos que
aparezcan.
Así por ejemplo :
MsgBox(quot;Holaquot; & vbCrLf & quot;Esto es un
ejemplo.quot;, vbQuestion + vbYesNo ,
quot;Ejemploquot; )
21. MsgBox
Ahora bien, si decidimos mostrar un mensaje
esperando una respuesta, o queremos saber que
botón ha pulsado el usuario, esto lo podemos
conseguir mediante el siguiente código de
respuestas:
Aceptar vbOK ó 1
Cancelar vbCancel ó 2
Anular vbAbort ó 3
Reintentar vbRetry ó 4
Ignorar vbIgnore ó 5
Sí vbYes ó 6
No vbNo ó 7
22. MsgBox
Así por ejemplo, el siguiente código :
Dim Resp As Integer
Resp = MsgBox(quot;Holaquot; & vbCrLf & quot;Esto
es un ejemplo.quot;, vbQuestion + vbYesNo
+ vbDefaultButton2, quot;Ejemploquot;)
If Resp = 6 Then
MsgBox (quot;Ha pulsado SIquot;)
Else
MsgBox (quot;Ha pulsado NOquot;)
End If
23. MsgBox
Tiene el resultado siguiente:
Si pulsamos el botón Sí obtendremos una acción, y
si pulsamos el otro botón otra acción.
24. SelLength, SelStart, SelText
SelLength: devuelve o establece el número de
caracteres seleccionados.
SelStart: devuelve o establece el punto inicial del
texto seleccionado; indica la posición del punto de
inserción si no se ha seleccionado texto.
SelText: devuelve o establece una cadena con el
texto seleccionado actualmente. Si no hay
caracteres seleccionados, la longitud de la cadena
será cero (quot;quot;).
Estas propiedades no están disponibles en tiempo
de diseño.
26. SelLength, SelStart, SelText
Las sintaxis de las propiedades SelLength,
SelStart y SelText constan de las siguientes partes:
27. Función Len
La función Len nos permite conocer la cantidad de
caracteres que tiene una determinada cadena. O
sea que esta función nos devuelve un número.
Ejemplo:
Len (Aquí va la cadena que queremos averiguar
su tamaño)
Como la función Len devuelve un número debemos
asignar ese número devuelto en una variable de
tipo numérica.
28. Función Len
Ejemplo:
Dim TamanoCadena As Long
Dim MiCadena As String
MiCadena = “Saludos a todosquot;
TamanoCadena = Len(MiCadena)
El valor de la variable TamanoCadena es 15.
Hay que tener en cuenta que la función Len también
toma en cuenta los espacios vacíos
29. Función InStr
La función InStr se utiliza para buscar una
cadena o parte de una cadena dentro de otra
cadena.
Si la función encuentra la cadena a buscar
devuelve un número que representa la
posición donde encontró la cadena, si no la
encuentra devuelve un 0.
Los parámetros que lleva esta función son:
InStr (comienzo, Cadena donde buscar ,
La Cadena a buscar)
30. Función InStr
Como esta función devuelve un número
debemos almacenarla en una variable de tipo
numérica para utilizarla.
Ejemplo:
Dim posicion As Integer
posicion = InStr(quot;Estoy tomando matequot;,
quot;matequot;)
En este ejemplo la función encontró la
cadena quot;matequot; en la posición 15, o sea que
la variable posicion es 15.
31. Función InRev
Nota: también hay una función similar a Instr
llamada InstrRev , y lo que hace es devolver
la posición de la primera concurrencia de una
cadena dentro de otra cadena, pero
comenzando por el extremo derecho de la
misma