PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
VBA Interfaz de usuario
1.
2. Interfaz gráfica de usuario
Variables globales
Generalidades formularios
Manipulación de datos
Botones de opción
Uso de imágenes
Ejercicios de estudio
3. Variables globales
Consideraremos variable global, a una variable que esta
disponible (compartida) en los diferentes ámbitos del
programa (espacio adentro de cada subrutina o función).
Para declarar una variable global, basta con declararla al
principio del código.
Se recomienda el uso de las palabras reservadas “Option
Explicit” para obligar a VBA a validar la declaración correcta de
todas las variables que use la aplicación
4. Variables globales
Option Explicit
Dim contador As Integer
Private Sub cmdBoton1_Click()
contador = contador + 1
End Sub
Private Sub cmdBoton2_Click()
contador = contador - 1
End Sub
La variable contador es global en el programa, por tanto su valor puede ser modificado
en dos subrutinas diferentes.
5. Generalidades formularios
Un formulario es la ventana contenedora de las
aplicaciones que usan interfaz gráfica.
Se recomienda cambiar la propiedad Caption para que
la ventana de la aplicación tenga un nombre que
represente el programa.
Se recomienda cambiar la propiedad Name para que
el formulario tenga un nombre de variable adecuado.
(ej: frmJuego)
6. Generalidades formularios
Se recomienda el uso de la subrutina Initialize, para
asignar valores por defecto que va a tener el
formulario al principio de la ejecución del programa.
De tal forma que cada vez que se ejecute el programa
inicialice con estos valores. Por lo general en esta
subrutina se inicializan las variables globales.
7. Generalidades formularios
Option Explicit
Dim numeroVidas as Integer
Private Sub UserForm_Initialize()
numeroVidas = 3
End Sub
La variable global vidas, se inicializa en la subrutina
UserForm_Initialize, de tal forma que cada que se ejecuta el
programa el número de vidas siempre será 3.
8. Manipulación de datos
Es importante recordar como se debe manipular los
datos de una aplicación que use interfaz gráfica.
Los campos de texto (TextBox) y los mensajes
InputBox, siempre retornan valores de cadena con la
información que el usuario ingresa, por tanto siempre
se debe validar que las cadenas se puedan convertir a
número antes de realizar operaciones aritméticas.
9. Manipulación de datos
Ejemplo InputBox
Dim str As String
str = InputBox("Ingrese un dato numérico")
If IsNumeric(str) Then
MsgBox "El dato es correcto, se puede operar"
Else
MsgBox "El dato no se puede operar aritméticamente"
End If
10. Manipulación de datos
Ejemplo textbox
If IsNumeric(txtCampo.Text) Then
MsgBox "El dato es correcto, se puede operar“
Else
MsgBox "El dato no se puede operar aritméticamente"
End If
11. Botones de opción
El botón de opción o optionButton, es un elemento
gráfico que permite crear una selección mutuamente
excluyente en el programa. Se usa para controlar el
modo de ejecución o de habilitar o deshabilitar opciones
dentro del programa. Es un componente de selección
única.
12. Botones de opción
Gráficamente, este control se ve así
Normalmente este elemento se relaciona con dos o más
elementos del mismo tipo, para crear un grupo de
opciones mutuamente excluyentes.
13. Botones de opción
Además para poder lograr que la selección del elemento
cambie al seleccionar otro botón de opción, se debe
vincular cada elemento con un grupo. Para hacer esto se
debe asignar el mismo nombre a la propiedad GroupName.
14. Botones de opción
Si se vinculan todos los campos de selección correctamente al
grupo, al probar el programa, se debe pasar la selección entre los
diferentes botones de opción, al hacer clic sobre cada uno. Es
posible controlar las acciones en el programa, asociando una
subrutina que atienda el evento clic sobre cada control, así:
Private Sub optOpcion1_Click()
‘código al seleccionar el botón de opción
End Sub
Además es posible conocer el valor seleccionado de cada botón de
opción por medio de la propiedad value.
15. Imágenes
Ruta absoluta: Es la ubicación de un recurso, respecto a la
raíz del sistema de archivos del sistema operativo. Ejemplo:
C:UsersUsuarioPictureslogo.jpg
Ruta relativa: Es la ubicación de un recurso respecto a la
carpeta actual. Ejemplo: “imágenes/logo.jpg”
Nota: Se recomienda usar siempre la ruta relativa, para que el
programa funcione correctamente independiente de la
ubicación de los archivos.
16. Imágenes
Para usar imágenes en la aplicación, se recomienda usar
el elemento Image. Para tal fin se debe dibujar el
elemento en el formulario y asignar el valor del ancho y
del alto (width, height).
Para cambiar el valor de la imagen en tiempo de
ejecución, se debe usar la propiedad Picture, pasando la
ruta relativa donde esta ubicada la imagen.
17. Imágenes
Cambio de la imagen que se muestra en el contenedor image.
Option Explicit
Dim contador As Integer
Private Sub CommandButton1_Click()
Dim temp as String
temp = "imagenes/img_0" & contador & ".jpg"
contador = contador + 1
If contador <7 then
imgImagen.Picture = LoadPicture(temp)
End if
End Sub
Cada que se presiona el botón, se cambia la imagen del control imgImagen. Se tiene en total 7
imágenes con un nombre secuencial con el prefijo img_0 y con extensión .jpg, así: img_01.jpg.
18. Imágenes
El siguiente código permite cambiar la imagen usando una subrutina que recibe un
parámetro que es el nombre de la imagen
Sub CambiarRuta(imagen)
Dim ruta As String
ruta = ThisWorkbook.Path & Application.PathSeparator_
& "imagenes" & Application.PathSeparator & imagen
imgEmoji.Picture = LoadPicture(ruta)
End Sub
Para invocar la rutina se usa
Private Sub optOpcion1_Click()
CambiarRuta ("Google-Noto-Emoji-Smileys-10029-face-with-rolling-eyes.ico")
End Sub
19. Imágenes
Recomendaciones para usar correctamente imágenes en un programa:
Crear una secuencia de imágenes que tengan las mismas dimensiones de
alto y ancho, si las imágenes se van a sobreponer.
Mantener la proporción del ancho respecto al alto, para evitar que la imagen
se deforme.
Nombrar cada imagen con un nombre secuencia, sin caracteres especiales o
espacios.
Ubicar las imágenes en una carpeta, en la misma carpeta del programa.
20. Ejercicios
Realizar un programa que por medio de interfaz grafica
permita pedir un número n, y muestre en un MsgBox el
resultado de la suma de 0 hasta n, el promedio y la
respuesta invertida en un campo de texto.
Usar un grupo de dos botones de opción, para seleccionar
el modo de conversión. (binario o decimal) y al cambiar de
selección se debe convertir un valor numérico presente en
un campo de texto.
21. Ejercicios
Crear un programa que permita calcular la suma de dos
vectores de dimensión 3, representados en 6 campos de
texto.
Escribir un programa que permita realizar conversiones
entre unidades de distancia.
Escribir un programa que permita Eliminar los dígitos del 0
al 9 presentes en una cadena.