Presentaciones interactivas. Curso de VBA

85
Programación Visual Basic para Aplicaciones (VBA) en soporte PowerPoint Prof. PEDRO FULLEDA BANDERA / Ludólogo, Comunicador Social Quito – Ecuador (2014) Introducción (2) Tema 1: La interface de progra mación (8) Tema 2: Cuatro controles básic os (20) Tema 3: Seis controles básicos (45) Tema 4: Estructuras de control en VBA (60) (Todas las palabras subrayadas son hipervínculos) CURSO

Transcript of Presentaciones interactivas. Curso de VBA

Page 1: Presentaciones interactivas. Curso de VBA

Programación Visual Basic para Aplicaciones (VBA) en soporte

PowerPoint

Prof. PEDRO FULLEDA BANDERA / Ludólogo, Comunicador SocialQuito – Ecuador (2014)

Introducción (2)Tema 1: La interface de programación (8)

Tema 2: Cuatro controles básicos (20)Tema 3: Seis controles básicos (45)

Tema 4: Estructuras de control en VBA (60)Tema 5: Desarrollo de proyectos (77)

30 EJERCICIOS + 1 PROYECTO

(Todas las palabras subrayadas son hipervínculos)

CURSO

Page 2: Presentaciones interactivas. Curso de VBA

2

La programación en Visual Basic es una de las maneras más placenteras de programar. Gran parte de la creación de un programa en Visual Basic consiste en colocar objetos gráficos en la pantalla y la configuración de sus atributos. En realidad, Visual Basic es el único lenguaje de programación actual que los principiantes pueden aprender con facilidad. Su antecedente es el lenguaje BASIC (forman su nombre las iniciales, en inglés, de: Código de Instrucciones Simbólicas Multipropósito para Principiantes), basado en texto y que durante décadas evolucionó a otras versiones como MBBASIC, GWBASIC, QUICKBASIC y QBASIC. Con el desarrollo de Windows, fue evidente para Microsoft que un lenguaje de programación basado en texto no funcionaría bien en los nuevos soportes, y desarrolló VISUAL BASIC, basado en BASIC, pero esencialmente gráfico, y que además, por ser interpretado al tiempo que compilado, permite ejecutar el programa mientras se escribe, y no sólo luego de su compilación final, lo que es de gran ayuda para los principiantes, que pueden percatarse así inmediatamente de sus errores, y corregirlos.

VISUAL BASIC crea programas para Windows. Por eso cuando se aprende, también se aprenderá a automatizar programas comunes, como los que se encuentran en Microsoft Office. La mayoría de los usuarios de este paquete ofimático ignora que sus aplicaciones están dotadas con una versión especial llamada VISUAL BASIC PARA APLICACIONES (VBA) que, aunque no es exactamente el sistema completo de programación, sí permite controlar y hacer interactivos sus productos, teniendo la ventaja de no requerir la instalación del programa VB, pues ya está implícito en las aplicaciones de Office.

Introducción:

Page 3: Presentaciones interactivas. Curso de VBA

3

Antes de Visual Basic, escribir un programa basado en texto era muy tedioso, pues había que diseñar primero en papel las interfaces. Con un lenguaje gráfico se puede acometer directamente esta tarea con las herramientas que brinda. En el caso de VBA las interfaces serán las correspondientes a la aplicación sobre la cual se trabaje (Word, Access, Excel…). En este caso se trabajará sobre PowerPoint, y las interfaces serán simplemente diapositivas electrónicas, las mismas que cualquier persona acostumbra a realizar para múltiples propósitos, por lo que ya se tendrá resuelto el 40% del problema.

Como se sabe, una diapositiva es cada una de las pantallas que conforman una presentación de PowerPoint, en que se integran textos, gráficos, ilustraciones, efectos de animación y sonoros, hipervínculos, así como, a partir de ahora, los controles y códigos de VBA que van a otorgarle interactividad. Las diapositivas se realizan en modo de diseño, y finalmente se exponen en modo de ejecución, en el monitor de la computadora o en una

pantalla de proyección. En realidad, lo que se hará con VBA es crear macros para PP. Una macro es un conjunto de acciones, o programa, que se elabora para automatizar varias tareas en una aplicación. Pero, existirá un pequeño problema: las macros se utilizan comúnmente para introducir virus, razón por la cual los sistemas cuentan con una protección antimacro que las deshabilita cuando se detectan en un soporte externo. Así, para ejecutar un programa en VBA (en PowerPoint o en cualquier otra aplicación de Office) primero se tendrá que habilitar esta función en el nivel de seguridad antimacro de la computadora, de lo contrario se verá la presentación de PP, pero perderá su interactividad. En las siguientes pantallas le muestro cómo hacerlo…

Page 4: Presentaciones interactivas. Curso de VBA

Haga clic en el botón de Office (1), y en el cuadro que se abrirá (2) haga clic en Opciones de PowerPoint…

4

1

2

Page 5: Presentaciones interactivas. Curso de VBA

Haga clic en Centro de confianza.

5

1

4

4

2

Abra el Centro de confianza (1), y en la ventana que aparecerá haga clic en Configuración del Centro de confianza

(2). Seleccione la pestaña Configuración de macros (3), donde de todas las opciones escogerá Deshabilitar todas las macros con notificación (4). Luego haga clic en Aceptar (5).

Otro procedimiento se explica en la diapositiva 12.

3

5

Page 6: Presentaciones interactivas. Curso de VBA

6

1 2

Una vez hecho lo anteriormente

explicado, cuando se abra el trabajo en

modo de ejecución (pantalla completa)

lo primero que aparecerá será un

cuadro con la Alerta de seguridad, que

permite habilitar el contenido (1), por tratarse de macros

de confianza (elaboradas por Ud. con la programación VBA). Luego haga clic

en Aceptar (2) y dispondrá de

interactividad en su PowerPoint.

Page 7: Presentaciones interactivas. Curso de VBA

Para hacer una presentación interactiva de PowerPoint se cuenta con los

siguientes recursos...

Las pantallas (una o más) se diseñan como diapositivas de PP, empleando las posibilidades de autoformas, ilustraciones,

colores, y otros.

Los gráficos y textos pueden ser animados de diversos modos, dinamizando la presentación.

Este recurso permite pasar de una pantalla a otra, según se requiera en una presentación con varias diapositivas.

Los controles de este lenguaje de programación permiten realizar múltiples acciones (macros), que satisfacen todas las necesidades de funcionamiento de la presentación interactiva.

7

En este curso se da por hecho que Ud. domina los tres primeros recursos, y solo requiere el conocimiento de VBA. Así que ¡abra PowerPoint y ejecute prácticamente las instrucciones! Lo primero: disponga una presentación para realizar sus ejercicios y proyectos.

Page 8: Presentaciones interactivas. Curso de VBA

Esta es la característica habitual en el modo de diseño de PowerPoint. Obsérvese que en la cinta de opciones aparecen las pestañas: Inicio, Insertar,

Diseño, Animaciones, Presentación con diapositivas, Revisar, Vista…(puede variar de una versión a otra del programa) 8

Tema 1:

Page 9: Presentaciones interactivas. Curso de VBA

Haga clic en el botón de Office (1), y en el cuadro que se abrirá (2) haga clic en el botón Opciones de PowerPoint…

9

1

2

Page 10: Presentaciones interactivas. Curso de VBA

En el cuadro que se abrirá seleccione con clic la casilla Mostrar ficha Programador en la cinta de opciones, que generalmente viene desmarcada, y

luego haga clic en Aceptar… 10

Page 11: Presentaciones interactivas. Curso de VBA

En la cinta de opciones aparecerá una nueva ficha, Programador, que es la requerida para poder trabajar con Visual Basic para Aplicaciones (VBA) en

PowerPoint… 11

Page 12: Presentaciones interactivas. Curso de VBA

12

Con clic en Seguridad de macros, una vez habilitadas las herramientas de la ficha Programador, también podrá abrir el Centro de confianza, para

proceder como se explica en la diapositiva 5.

Con clic en la ficha Programador se abrirá la correspondiente barra de herramientas, donde lo esencial será aprender a

trabajar con los diferentes controles del lenguaje de programación VBA…

Page 13: Presentaciones interactivas. Curso de VBA

Estos son los tipos de controles más usados en VBA, con los cuales se pueden resolver todas las necesidades básicas de programación con este lenguaje.

Como se aprecia, el botón Propiedades aparece opaco, y solo se activa cuando es instalado un control…

13

Control de etiqueta (Label)

Control de texto

(TextBox)

Control de número

(SpinButton)

Botón de comando

(Command Button)

Control de imagen (Image)

Barra de desplazamiento

(ScrollBar)

Casilla de verificación (CheckBox)

Botón de opción (Option Button)

Cuadro combinado

(ComboBox)

Cuadro de lista

(ListBox)

Botón de alternar

(ToggleButton)

Despliega una lista con más controles

disponibles

Muestra o modifica las propiedades del control

seleccionado

Edita el código de VBA para un

control

Page 14: Presentaciones interactivas. Curso de VBA

14

Para instalar un control en la interface de programación se hará clic izquierdo en su ícono del cuadro de controles (1), y luego,

con el cursor en forma de cruz (2) y manteniendo presionado el botón

izquierdo del mouse, se le arrastrará un poco hacia la derecha y hacia abajo en el sitio donde irá en la interface (diapositiva en diseño), para que alcance un tamaño inicial adecuado. Entonces se le podrá

editar (cambiarlo de lugar, forma, tamaño y otros atributos). Finalmente se le

configurará abriendo el cuadro Propiedades, con clic en ese botón (3) mientras el control esté seleccionado,

contorneado por puntos dimensionales, como se muestra en la figura (4). Las propiedades podrá verlas en orden

alfabético o por categorías, como le sea más cómodo.

1

2

+

3

4

Page 15: Presentaciones interactivas. Curso de VBA

15

La instalación de varios controles de un mismo tipo se facilita si luego de instalar y declarar las propiedades al primero Ud. simplemente lo copia y lo pega cuantas veces haga falta. Todas las copias serán exactamente iguales al control inicial. Lo que tendrá que hacer después es dar a cada control un nombre distintivo. También podrá ahorrar tiempo y trabajo declarando de una sola vez a varios controles -de igual o diferente tipo- algunas propiedades que les sean comunes (como: Caption, BackColor, ForeColor, BackStyle, BorderStyle, BorderColor, TextAlign, Enabled, Visible…), si los selecciona a todos con clics izquierdos del mouse mientras mantiene presionada la tecla Shift, conformando de tal modo una matriz de controles, pero para eso tendrá primero que abrir el cuadro Propiedades para el primer control al que haga clic, que ya quedará así activado para el resto. No lo intente con la propiedad Font, pues puede interrumpirse el programa. Ella debe ser declarada de forma individual a cada control.

El Label, el TextBox y el control Image del ejemplo forman una matriz de controles, pudiendo

declararse al mismo tiempo sus propiedades comunes. El cuadro

Propiedades se abrió inicialmente para el Label, pero luego se hace

común a los demás controles.

Page 16: Presentaciones interactivas. Curso de VBA

16

Luego de instalar un control en la interface (diapositiva en diseño), y de declararle sus propiedades, se podrá

comenzar la introducción de códigos de programación para establecer su funcionamiento. Para esto, con el

control seleccionado (rodeado de puntos dimensionales), se hará clic en el botón

Ver código (1), o en el botón Visual Basic (2), o dobleclic en el mismo control (3), que es el método más usual, con lo que se abrirá el editor de códigos mostrando

el evento principal (por defecto) del control. El cursor del mouse se mostrará

intermitentemente entre las líneas de edición -de encabezamiento y final- para

dicho control, indicando que se puede comenzar a escribir allí.

Como se ve, con el cuadro de Propiedades se otorgaron al control Label1: un BackColor (amarillo), un BorderStyle (Single, o sencillo), y un

Caption o etiqueta (Prueba), con Arial 18 negrita como Font (fuente).

1

2

3

Page 17: Presentaciones interactivas. Curso de VBA

17

Esta ventana muestra todos los controles

instalados en la interface, en

orden alfabético.

Como se ve, en esta página se dispone la programación para el control Label1, con el procedimiento Click (que aparece primero, por defecto). Para cambiarlo, hay que

buscar otras opciones en esta ventana…

Para salir del editor de códigos y regresar a la diapositiva en diseño, se hará clic en este botón.

Las líneas de código se escriben entre el encabezamiento: Private Sub + nombre del

control + procedimiento, y el final: End Sub

Esta ventana muestra todos los

procedimientos de eventos que pueden usarse

con cada control. Por ejemplo: Click, Dblclik, MouseDown,

MouseUp, MouseMove...

Page 18: Presentaciones interactivas. Curso de VBA

A cada control corresponde un

bloque de instrucciones. Los

bloques se separan entre sí

automáticamente por un línea

Cada bloque de instrucciones debe ser acompañado por una línea de texto que explique

la función que tiene ese código, lo que ayuda a comprender el programa que se elabora. La línea

es precedida por una comilla simple ( ‘ ), para que no se la asuma como parte de las instrucciones, y

se verá con color verde en el editor.

Las líneas de instrucciones

derivadas de una principal deben

tener sangría para definir la estructura

del bloque de instrucciones. 18

Relación de diapositivas que

forman la presentación. Con clic en un ícono se

muestran los códigos de cada

una.

Page 19: Presentaciones interactivas. Curso de VBA

En la escritura de códigos de programación se emplean abreviaturas para identificar los controles. Estas son las más usadas…

19

cbo ComboBoxchk CheckBoxcmd CommandButtondir DirectoryListdrv DriverListBoxfil FileListBoxfra Frame

frm Formulariogrd Gridhsb HScrollBarimg Imagelbl Labellin Linelst ListBox

mnu Menúopt OptionButtonpic PictureBoxshp Shapetmr Timertxt TextBoxvsb VScrollBar

También se emplean los siguientes códigos para asignar colores a los controles:

QBColor(0)

QBColor(1)

QBColor(2)

QBColor(3)

QBColor(4)

QBColor(5)

QBColor(6)

QBColor(7)

QBColor(8)

QBColor(9)

QBColor(10)

QBColor(11)

QBColor(12)

QBColor(13)

QBColor(14)

QBColor(15)

Se escriben en las líneas de

programación para dar, en modo de

ejecución, un color a un control, o cambiar

el que se le dio inicialmente en el

cuadro Propiedades.

Page 20: Presentaciones interactivas. Curso de VBA

Tema 2:

20

EtiquetaLabel (lbl)

Botón de Comando

CommandButton(cmd)

Control de Imagen Image (img)

Botón de Opción OptionButton

(opt)

Caja de Texto TextBox (txt)

Barra de Desplazamiento

ScrollBar (scr)

Formulario de Usuario

UserForm (frm)

Cuadro de Lista ListBox (lst)

Con estos 10 controles y mucha creatividad, resolveremos

todos los problemas. Veamos ahora los 4 primeros…

(Haga clic en un cuadro para ir al contenido)

Control de Número

SpinButton (spn)

Casilla de Verificación

CheckBox (chk)

Page 21: Presentaciones interactivas. Curso de VBA

Si quiere emplear un ícono o imagen como puntero del mouse.

21

Color del borde (solo si el estilo del borde es Single).

Mensaje o etiqueta, que mostrará inicialmente el control.

Fuente tipográfica que se utilizará para el Caption (etiqueta).Color de la fuente (con el que se verá el texto).

Incorpora una imagen al control, buscándola con un explorador.

Establece la alineación del mensaje en el control.

Define si el control será visible o no inicialmente.

Establece la posición de la imagen en el control.

Junto a Width establece las dimensiones del control (si se desea que varios controles sean de igual tamaño se debe anotar a todos las mismas cifras en las propiedades: Height (alto) y Width (ancho).

Nombre que se da al control. Conviene escribir la función que tendrá, precedida por su abreviatura, para identificarlo en el código (ej: lblMensaje). Se inicia con mayúscula y nunca lleva acento ni ñ.

Si el control mostrará un borde (Single) o ninguno (None).

Si el control estará disponible (True) o no (False).

Color de fondo (con clic en la pestaña se abre la paleta de colores).

Forma que asumirá el puntero del mouse al tocar el control.

Define si el control tendrá su fondo opaco o transparente.

Define si el control asumirá un tamaño automáticamente o no.

Define el efecto especial que tendrá el control en la presentación.

Distancia del control al borde izquierdo y al superior de la interface.

Las fuentes Webdings y Windings incorporan diversas ilustraciones y logotipos como etiqueta a los controles,

como se muestra en las diapositivas siguientes…

SU CUADRO DE PROPIEDADES

Page 22: Presentaciones interactivas. Curso de VBA

| |

° °

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

1010

‘ ‘

¿ ¿

¡ ¡

? ?

= =

) )

( (

/ /

& &

% %

$ $

# #

“ “

! !

+ +

. .

* *

, ,

¨ ¨

} }

{ {

[ [

] ]

- -

_ _

: :

; ;

> >

< <

A A

a a

B B

b b

C C

c c

D D

d d

E E

e e

F F

f f

G G

g g

H H

h h

I I

i i

J J

j j

K K

k k

L L

l l

M M

m m

N N

n n

Ñ Ñ

ñ ñ

O O

o o

P P

p p

Q Q

q q

R R

r r

S S

s s

T T

t t

U U

u u

V V

v v

W W

w w

X X

x x

Y Y

y y

Z Z

z z

WEBDINGS

< <

A A

a a

B B

b b

C C

c c

D D

d d

E E

e e

Fuente especial

Page 23: Presentaciones interactivas. Curso de VBA

| |

° °

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 0

‘ ‘

¿ ¿

¡ ¡

? ?

= =

) )

( (

/ /

& &

% %

$ $

# #

“ “

! !

+ +

. .

* *

, ,

¨ ¨

} }

{ {

[ [

] ]

- -

_ _

: :

; ;

> >

< <

A A

a a

B B

b b

C C

c c

D D

d d

E E

e e

F F

f f

G G

g g

H H

h h

I I

i i

J J

j j

K K

k k

L L

l l

M M

m m

N N

n n

Ñ Ñ

ñ ñ

O O

o o

P P

p p

Q Q

q q

R R

r r

S S

s s

T T

t t

U U

U u

V V

v v

W W

w w

X X

x x

Y Y

y y

Z Z

z z

WINGDINGS

< <

A A

a a

B B

b b

C C

c c

D D

d d

E E

e e

Fuente especial

Page 24: Presentaciones interactivas. Curso de VBA

| |

° °

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 0

‘ ‘

¿ ¿

¡ ¡

? ?

= =

) )

( (

/ /

& &

% %

$ $

# #

“ “

! !

+ +

. .

* *

, ,

¨ ¨

} }

{ {

[ [

] ]

- -

_ _

: :

; ;

> >

< <

A A

a a

B B

b b

C C

c c

D D

d d

E E

e e

F F

f f

G G

g g

H H

h h

I I

i i

J J

j j

K K

k k

L L

l l

M M

m m

N N

n n

Ñ Ñ

ñ ñ

O O

o o

P P

p p

Q Q

q q

R R

r r

S S

s s

T T

t t

U U

U u

V V

v v

W W

w w

X X

x x

Y Y

y y

Z Z

z z

WINGDINGS 2

< <

A A

a a

B B

b b

C C

c c

D D

d d

E E

e e

Fuente especial

Page 25: Presentaciones interactivas. Curso de VBA

| |

° °

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 0

‘ ‘

¿ ¿

¡ ¡

? ?

= =

) )

( (

/ /

& &

% %

$ $

# #

“ “

! !

+ +

. .

* *

, ,

¨ ¨

} }

{ {

[ [

] ]

- -

_ _

: :

; ;

> >

< <

A A

a a

B B

b b

C C

c c

D D

d d

E E

e e

F F

f f

G G

g g

H H

h h

I I

i i

J J

j j

K K

k k

L L

l l

M M

m m

N N

n n

Ñ Ñ

ñ ñ

O O

o o

P P

p p

Q Q

q q

R R

r r

S S

s s

T T

t t

U U

U u

V V

v v

W W

w w

X X

x x

Y Y

y y

Z Z

z z

WINGDINGS 3

< <

A A

a a

B B

b b

C C

c c

D D

d d

E E

e e

Fuente especial

Page 26: Presentaciones interactivas. Curso de VBA

26

LABEL ES EL CONTROL MÁS VERSÁTIL, PUES PERMITE INSTALAR TANTO TEXTOS COMO IMÁGENES. HAGA LAS SIGUIENTES PRÁCTICAS:

EJERCICIO 1.a) Instale un lbl en su interface.b) Declárele propiedades, mediante el cuadro con ese nombre.c) Seleccione Webdings o Wingdings en la propiedad Font.d) Escriba en la propiedad Caption cualquier letra o número. ¿Qué aparece en el lbl?e) Con TextAlign sitúe la imagen al centro, izquierda o derecha del lbl.f) Dele color al lbl con la propiedad BackColor, teniendo a BackStyle Opaque.g) Dele color a la imagen que instaló en el lbl, con la propiedad ForeColor.h) Hágale un marco al lbl con BorderStyleSingle, y dele color con BorderColor.EJERCICIO 2.i) Borre la letra o número que escribió en Caption, y escriba allí su nombre.j) En Font seleccione otra fuente (por ejemplo: Arial) y dele el tamaño que desee.EJERCICIO 3.k) Borre la letra o número que escribió en Caption.l) Seleccione Picture en el cuadro Propiedades.m) En el explorador que aparecerá busque una ilustración o foto que tenga archivada.n) Vea qué aparece en el lbl.o) Decida la posición de la imagen mediante PicturePosition (pruebe varias opciones).

1 2 3

Ejemplo de resultados:

Page 27: Presentaciones interactivas. Curso de VBA

EJERCICIO 4.a) Abra el editor de códigos para el lbl1.b) Escriba la siguiente instrucción: c) Regrese a la diapositiva en diseño y abra su presentación en pantalla.d) Haga clic en el lbl1. ¿Qué ocurrió? Cambió la fuente y ahora lo escrito se ve en Arial.EJERCICIO 5.e) Abra el editor de códigos para el lbl2.f) Escriba la siguiente instrucción: g) Regrese a la diapositiva en diseño y abra su presentación en pantalla.h) Haga clic en el lbl2. ¿Qué ocurrió? El texto se cambió por lo que escribió en el código.

NOTA: Para introducir un texto HAY QUE PONERLO ENTRE COMILLAS DOBLES (“ “)EJERCICIO 6.a) Abra el editor de códigos para el lbl1.b) Escriba la siguiente instrucción: c) Regrese a la diapositiva en diseño y abra su presentación en pantalla.d) Haga clic en el lbl1. ¿Qué ocurrió? Cambió el color de fondo del control.

NOTA: Para cambiar colores se emplean los códigos dados en la diapositiva 19.

27

Hemos instalado un lbl en la interface y declarado sus propiedades, pero aún no estamos programando. Programar significa poder modificar las características y funciones de un control en modo de ejecución, mediante instrucciones escritas en el editor de códigos.

HAGA LAS SIGUIENTES PRÁCTICAS (consulte la diapositiva 17):

En estos casos la acción es Click, que aparece por defecto, pero puede cambiarla por otras que se muestran en la ventana Procedimientos (ver diapositiva 17) ¡Hágalo!.

Page 28: Presentaciones interactivas. Curso de VBA

Todo lo que se muestre en un lbl podrá ser borrado o cambiado en modo de ejecución mediante código. Veamos con el ejemplo del Ejercicio 1:

EJERCICIO 7.a) Con estos dos bloques de instrucciones para el lbl1 se logra que con Click aparezca la

imagen de la letra I en Webdings, y el fondo sea verde (10); y con DblClick desaparezca la imagen y el fondo sea rojo (12).

b) Observe que para borrar un texto se deja vacío el espacio entre las comillas dobles (“ “).

c) Si lo que quiere es cambiar la imagen haciendo DblClick, se anotará otra letra o número entre las comillas dobles. Pruebe otras letras/números en fuentes especiales.

ES HABITUAL EMPLEAR LA ACCIÓN CLICK PARA INSTALAR UN EFECTO, Y DBLCLICK (dobleclic) PARA BORRARLO O CAMBIARLO. 28

Para todos los controles, la redacción de líneas de instrucciones tiene la siguiente SINTAXIS BÁSICA:

Nombre del control.Propiedad=Proposición

Arial“Carlos”

QBColor(10)…

FontCaption

BackColor…

Label1Label2

PUNTO OBLIGATORIO SIGNO = OBLIGATORIO

Page 29: Presentaciones interactivas. Curso de VBA

Una imagen instalada en un lbl durante el diseño (diapositiva 26, Ejercicio 3) puede ser cambiada por otra en modo de ejecución mediante código, para lo cual en la interface hay

que montar un panel de imágenes con las que vayan a ser utilizadas para el cambio. El panel puede hacerse con Label (lbl) o controles de Image (img). Veamos cómo:

EJERCICIO 8.a) Instale en su interface un lbl (también pueden usarse controles tipo img, el que será

estudiado seguidamente) por cada imagen que conformará el panel.b) Seleccione Picture en el cuadro Propiedades de cada lbl del panel, e instálele

ilustraciones buscadas con el explorador.c) Tendremos varios lbl a los que inicialmente se les declarará

(en el cuadro Propiedades) como Caption una letra en fuente especial, lo que instalará una ilustración…

d) Y otros lbl (o img) que forman el panel de imágenes.

29

e) La acción de pasar ilustraciones del panel de imágenes a los lbl puede realizarse:

• Con Click y DblClick en cada lbl para pasarle imágenes del panel.

En este caso los controles del panel pueden ocultarse finalmente, declarándoles la propiedad Visible False, en el cuadro Propiedades. Así funcionarán, pero no se verán.

• Con Click en cada imagen del panel para pasarla a uno o más lbl.

En este caso los controles del panel deben tener la propiedad Visible True.

Page 30: Presentaciones interactivas. Curso de VBA

Tamaño de la ilustración. Con Stretch se ajusta al control; es lo más conveniente para que la ilustración ocupe completamente el espacio

del control. Con Clip se muestra en su tamaño original.

Use ilustraciones en formato JPG, pues ocupan menos memoria.

SU CUADRO DE PROPIEDADES

30

Las propiedades comunes a otros controles no se explican, pues ya son conocidas y se usan de igual modo.

No todas las propiedades se explican, sólo las más frecuentes. Las demás podrá irlas conociendo mediante la práctica.

Page 31: Presentaciones interactivas. Curso de VBA

SE EMPLEA PREFERENTEMENTE PARA TRABAJAR CON IMÁGENES, PUES PERMITE PROPIEDADES QUE OTROS CONTROLES NO POSEEN.

En el EJERCICIO 8 vimos su uso como panel de imágenes. HAGA LA SIGUIENTE PRÁCTICA:

Se trata de una presentación interactiva para mostrar elementos gráficos, como pueden ser fotos familiares o paisajísticas. Este ejemplo está diseñado con dos Label y varios Image. Proceda así:a) Busque una ilustración como marco adecuado.

b) Sitúe un lbl en cada cara, declarándoles BackStyle Transparent, y BorderStyle None. En lbl1 declare una fuente (Font) de forma y tamaño adecuados para mensajes llamativos.

c) Escriba en Caption del lbl1 la siguiente instrucción: “Haga clic aquí para abrir el álbum. Después clic en cada foto para pasar a la siguiente. Para cerrar, haga dobleclic aquí“.

d) Sitúe un control img por cada foto que mostrará, declare sus propiedades e instale las fotografías. Incluya también un img de ocultamiento, sin ilustración y con BackColor igual al del lbl2 . El panel se oculta con Visible False.

31

EJERCICIO 9.

Panel de imágenes

Page 32: Presentaciones interactivas. Curso de VBA

e) El código a escribir para el lbl1 será, con clic:

32

f) El código a escribir para el lbl2 será, con clic:

g) Finalmente, para cerrar el álbum digital con dobleclic en lbl1:

Se reinstalan en lbl1 las instrucciones inicialmente escritas en Caption, y se instala en lbl2 la img de ocultamiento, regresado todo a la posición inicial.

La sentencia condicional If…Then…ElseIf empleada significa:• If: si…• Then: entonces…• ElseIf: pero si…

(Ver más adelante)

Page 33: Presentaciones interactivas. Curso de VBA

33

Si el control se activa con Click (toma el foco del programa, o no).

Si el control estará abierto (False) o cerrado (True).Coloca como puntero del mouse una imagen tomada del explorador.

Como se ve, puede contener tanto texto (Caption) como imágenes (Picture), pero en ambos casos se usan solo para

identificar al control (con su nombre y/o un logotipo).

SU CUADRO DE PROPIEDADESLas propiedades comunes a otros controles no se explican, pues ya son conocidas y se usan de igual modo.

No todas las propiedades se explican, sólo las más frecuentes. Las demás podrá irlas conociendo mediante la práctica.

Page 34: Presentaciones interactivas. Curso de VBA

34

COMO INDICA SU NOMBRE, SE EMPLEA COMO BOTÓN DE MANDO, PARA ENVIAR INSTRUCCIONES A OTROS CONTROLES DE CUALQUIER TIPO.

En el EJERCICIO 8 vimos dos formas de pasar imágenes de un panel conformado por img a uno o varios lbl. Ahora veamos cómo hacerlo con cmd. HAGA LA SIGUIENTE PRÁCTICA:

EJERCICIO 10:a) Busque una ilustración como marco adecuado.b) Sitúe un lbl1, declarándole BackStyle Opaque

y seleccione gris como BackColor. c) Sitúe 3 cmd y póngales en Caption:

cmd2=“Animales”cmd1=“Control”cmd3=“Frutos”(puede poner todas las categorías que quiera, con un cmd para cada una; en este ejemplo usamos 2)

d) Sitúe un lbl2 pequeño como Label auxiliar, con Font Arial y ocúltelo con VisibleFalse.

e) Sitúe un control img por cada ilustración que mostrará, (todas las que quiera), declare sus propiedades e instale las fotografías. Incluya también un img de ocultamiento, sin ilustración y con BackColor igual al del lbl1. Este panel de imágenes se oculta con Visible False.

Page 35: Presentaciones interactivas. Curso de VBA

En este caso la sentencia If…Then…ElseIf se simplifica como If..Then…Else: por ser una sola la nueva condición que se incorpora al código.

g) El código a escribir para el cmd2 (Animales) será, con clic:

h) El código a escribir para el cmd3 (Frutos) será, con clic:

El panel de imágenes puede contener gran cantidad de controles img con fotos, los que podrán apilarse unos sobre otros para ocupar un mínimo espacio en la diapositiva, y luego ser

ocultados con VisibleFalse.

35

f) El código a escribir para el cmd1 (Control) será, con clic:

Page 36: Presentaciones interactivas. Curso de VBA

36

i) El código a escribir para el lbl1 (pantalla del TV) será, con clic:

El lbl2 (auxiliar) permite el funcionamiento del operador lógico And. Como, ve en la primera parte del bloque de instrucciones, la condición básica es que el lbl2 muestre el número 1, y en la segunda parte, que muestre el número 2. Si se emplean más categorías, el cmd de cada una instalará un nuevo número en lbl2 (3,4,5…), y en el bloque de instrucciones cada uno de ellos permitirá el funcionamiento del operador And.

Aquí la sentencia condicional If…Then…ElseIf se complementa con operadores lógicos, que significan:• And: y…• Or: o…

Page 37: Presentaciones interactivas. Curso de VBA

37

Las propiedades comunes a otros controles no se explican, pues ya son conocidas y se usan de igual modo.

SU CUADRO DE PROPIEDADES

Activa o desactiva la acción de la tecla Enter, indispensable para incorporar grandes contenidos al TextBox. Conviene que sea True.

No todas las propiedades se explican, sólo las más frecuentes. Las demás podrá irlas conociendo mediante la práctica.

Actúa como un candado, y cuando está cerrado (True) impide que pueda modificarse en modo de ejecución el contenido del TextBox.

Permite incorporar múltiples líneas al texto. Requiere EnterKeyBehavoirTrue para funcionar. Conviene que sea True.

Instala a voluntad barras de desplazamiento (vertical/horizontal).Activa o desactiva la acción de la tecla Tabulador.

Con estas dos propiedades se incorpora texto al control y se alinea (izquierda, centro, derecha).

Permite establecer el máximo de letras a escribir en el TextBox. Cuando su valor es 0 significa que tal cantidad de letras es ilimitada.

Permite activar (True) o desactivar (False) el control mediante código.

Page 38: Presentaciones interactivas. Curso de VBA

38

TEXTBOX es uno de los controles más útiles en la programación VBA. Su principal recurso es que permite editar su contenido en modo de ejecución.

PARA INCORPORAR TEXTO A UN TEXTBOX, EXISTEN LOS SIGUIENTES MÉTODOS:a)Escribiendo directamente textos cortos en Text (Propiedades), en modo de diseño.b)Escribiendo directamente textos cortos en el TextBox en modo de ejecución.c)Copiando textos de cualquier tamaño y pegándolos en el TextBox en modo de ejecución.

Veamos cómo:

EJERCICIO 11:

a) Instale un TextBox con las propiedades más usuales, y abra la diapositiva en modo de ejecución.

b) ¿Conoce esta acción en PowerPoint? Es muy útil para este caso: con clic derecho sobre la vista en pantalla abra un cuadro de opciones, haga clic en Pantalla y luego en Pasar de un programa a otro. Se mostrará abajo la barra Inicio. Abra el Menú principal y busque con el explorador el documento que desee (por ej.: un block de notas). Ábralo y copie (total o parcialmente) con Ctrl+C. Finalmente cierre todo y regrese a la presentación en pantalla

c) Sitúe el cursor del mouse en el extremo superior izquierdo de la diapositiva y active Pegar con Alt+V. ¿Qué ocurrió? El texto aparecerá en pantalla, con una barra de desplazamiento vertical para poder deslizarlo hasta su final.

d) Ahora en modo de ejecución podrá editar el documento (eliminar partes, agregar otras, copiar y pegar…). Si no quiere que el texto pueda ser editado, active Locked True en el cuadro Propiedades.

Ejercite las diversas formas para incorporar texto a un TextBox.

Page 39: Presentaciones interactivas. Curso de VBA

EJERCICIO 12:a)Instale un txt1 (con las propiedades usuales). La indicación a cumplir es: Escriba un color y lo verá en la caja de texto. Borre lo escrito y volverá a ser blanca.b)Escriba el siguiente código para el txt1:

39

Con un TextBox se pueden enviar instrucciones a sí mismo o a otros controles. Una de sus principales ventajas es el

evento Change, que le permite ejecutar acciones al recibir cambios en modo de ejecución. La ventana Procedimientos (

ver diapositiva 17) del TextBox muestra los eventos que pueden usarse con este control (no existe Click):

Page 40: Presentaciones interactivas. Curso de VBA

El evento Change otorga a los TextBox ilimitadas posibilidades, pues, cualquier mensaje que se escriba desencadenará una gran diversidad de acciones. Un evento Change puede, además, hacer aparecer nuevos mensajes en otros TextBox, generando secuencias de

acciones para resolver cualquier problema de interactividad. Es como darle instrucciones escritas a su computadora para que ejecute lo que Ud. desea. Esto se incrementa empleando sentencias condicionales como las ya vistas (If…Then…ElseIf, If…Then…Else:), con operadores

lógicos And/Or, así como también con operadores de comparación…

Los operadores de comparación permiten comparar un valor (o expresión) con otro de tipo semejante, estableciendo si son iguales o diferentes entre sí, o si uno es mayor o menor que otro. Son 6 los operadores de este tipo a emplear en VBA:

= Igual que (resultado Verdadero)<> Desigual que (resultado Falso)> Mayor que (ej.: 6>2…)< Menor que (ej.: 2<6…) >= Mayor o igual que<= Menor o igual que

Veamos el siguiente ejemplo:

Todos los operadores de comparación devuelven como resultado: Verdadero (True) o

Falso (False). Con estos operadores no se pueden usar

comodines Like, pues, estos solo van con operadores lógicos.

40

OPERADORES LÓGICOS Y DE COMPARACIÓN:

Ya conocimos el operador lógico And (diapositiva 36). En el código del anterior ejercicio 12 el uso del operador lógico Or permite escribir el nombre del color indistintamente con minúscula o mayúscula, y el comodín Like “*” sustituyendo la primera letra de una palabra permite que esta pueda escribirse indistintamente con minúscula o mayúscula. Otro comodín que puede emplearse es Like “#” para sustituir cualquier número (solo o en una cadena numérica).

COMODINES LIKE:

Comparación entre números o textos

Comparación entre valores

numéricos

Page 41: Presentaciones interactivas. Curso de VBA

41

EJERCICIO 13:a) Busque ilustración como marco adecuado.b) Sitúe dosTextBox: txt1, txt2. c) Sitúe dos cmd, con Caption:

cmd1=“Preguntas”cmd2=“Evaluación”

d) Sitúe un lbl1 pequeño, auxiliar, que luego se ocultará con VisibleFalse.e) Escriba el siguiente código para el cmd1 (las preguntas son solo un ejemplo):

Puede incluir cualquier cantidad de preguntas, pero teniendo en cuenta que se puedan responder con números exactos o una palabra, y no requieran construir oraciones.

Page 42: Presentaciones interactivas. Curso de VBA

b)Escriba el siguiente código para el cmd2:

Como se ve, el código se construye con la sentencia condicional If…Then…ElseIf, reforzada por operadores lógico (And) y de comparación (= <>). Téngase en cuenta que:

Cuando las respuestas sean nombres propios hay que dar la posibilidad de responder con todo en mayúscula o con la letra inicial mayúscula (ej,: QUITO o Quito). Escribirlo todo en minúscula (ej.: quito) será un error ortográfico. Cuando son nombres comunes hay que dar la posibilidad de escribir todo en mayúscula o minúscula (ej.: PERRO o perro). Esto se logra insertando la línea de instrucciones necesaria para cada caso (como se ve en el código).

Los operadores lógicos And y Or no pueden usarse juntos en una misma línea de instrucciones, pues eso trastorna el programa. Hay que escribir una línea para cada uno.

42

Page 43: Presentaciones interactivas. Curso de VBA

43

EJERCICIO 14:Para pasar texto de un textbox a otro:a) Instale dos txt con sus propiedades.b) Escriba este código para el txt1:c) Escriba este código para el txt2:d) Abra la diapositiva en modo de ejecución. Escriba un texto en un txt y haga DblClick en él (los txt no tienen Click). Luego haga DblClick en el otro txt. Vea qué pasa…e) Podrá hacer lo mismo si instala un cmd y le escribe el siguiente código (con Click para un caso y DblClick para el otro).

EJERCICIO 15:Para crear un generador aleatorio de acciones por variación numérica constante:a) Instale un txt con sus propiedades y escríbale el siguiente código (también se puede hacer

poniéndole el código a un cmd, que con Click lo ejecute en el txt):

b) Abra la diapositiva en modo de ejecución y active con MouseMove. Así, cada vez que el cursor del mouse entre y salga del txt se actualizarán la fecha y la hora. Si solo quiere ver la fecha ponga Date en el código, y para ver solo la hora ponga Time.

Esta propuesta se complementa con el siguiente ejercicio…

La instrucción SelText es fundamental, y también “” para borrar el texto que se

traslada. Si no quiere borrarlo, no utilice“”.

Page 44: Presentaciones interactivas. Curso de VBA

44

Se usa el comodín Like, en sus tipos # (para números) y * (para caracteres de letras y signos) .Con # se sustituyen los número del formato HH.MM.SS. Ejemplo: 12.25.18 p.m. Solo se deja el último número de los segundos, por lo que se escriben 5 signos #.Con * se sustituyen los puntos entre los números, así como letras y puntos de a.m./p.m., por lo que se escriben 6 signos *Como último número de los segundos en cada línea de instrucciones se escribe un número consecutivo del 1 al 0, lo que abarca desde cada valor terminado en 1 (01,11,21,31,41,51) hasta cada valor terminado en 0 (10,20,30,40,50,60).Cada número en una sentencia condicional (del 1 al 0) genera un número consecutivo (del 1 al 10) en el txt auxiliar.

Con el procedimiento Change, todos los cambios de números en el txt auxiliar generarán, al margen de la voluntad del usuario, hasta 10 acciones diferentes en otros controles (lbl, img, cmd, txt) instalados en la presentación, las que se ejecutarán aleatoriamente cada vez que el cursor del mouse se detenga en el txt1 y se actualice la hora.

EJERCICIO 16:a) Instale un txt1 con sus propiedades y escríbale el código del ejercicio 15, pero solo para la

hora (Time), y con tamaño suficiente para ver todo el texto: hora-minutos-segundos (00.00.00).

b) Instale un txt2 (auxiliar) de tamaño pequeño, y finalmente ocúltelo con VisibleFalse.c) Para este generador aleatorio de acciones escriba el siguiente código:

Page 45: Presentaciones interactivas. Curso de VBA

Tema 3:

45

EtiquetaLabel (lbl)

Botón de Comando

CommandButton(cmd)

Control de Imagen Image (img)

Botón de Opción OptionButton

(opt)

Caja de Texto TextBox (txt)

Barra de Desplazamiento

ScrollBar (scr)

Control de Número

SpinButton (spn)

Casilla de Verificación

CheckBox (chk)

Con estos 10 controles y mucha creatividad, resolveremos

todos los problemas. Veamos ahora los 6 restantes…

(Haga clic en un cuadro para ir al contenido)

Formulario de Usuario

UserForm (frm)

Cuadro de Lista ListBox (lst)

Page 46: Presentaciones interactivas. Curso de VBA

46

Las propiedades comunes a otros controles no se explican, pues ya son conocidas y se usan de igual modo.

SU CUADRO DE PROPIEDADES

Aquí se escribe el tamaño que se desea para el cursor de la barra.

No todas las propiedades se explican, sólo las más frecuentes. Las demás podrá irlas conociendo mediante la práctica.

Aquí se escribe el valor de la marca superior de la barra, e indica hasta dónde podrá desplazarse el cursor.

Aquí se escribe el valor de la marca inferior de la barra. Generalmente es 0, e indica el final del desplazamiento del cursor.

Aquí se escribe la cantidad de marcas que recorrerá el cursor en cada paso. Generalmente es de 1 en 1, del valor Max. al Min. o viceversa.

El tiempo que se demora la acción del cursor, con un valor predeterminado de 50 milisegundos.

Page 47: Presentaciones interactivas. Curso de VBA

47

ScrollBar no es la simple barra de desplazamiento que se emplea en los txt para deslizar textos. Se trata de un valioso control que, por su procedimiento Change, puede inducir

múltiples acciones a otros controles -al estilo de un CommandButton- cada vez que el cursor se detenga en una etapa de su recorrido por la barra. Por ej.: si se instala un scb grande, con un valor Max de 20 y un SmallChange de 1, se podrá inducir una acción a 20 controles, o 20

acciones diferentes a un mismo control.

HAGAMOS LA SIGUIENTE PRÁCTICA:EJERCICIO 17:

a) Instale un scb1 horizontal con Delay 50, Max 3, Min 0, SmallChange 1. b) Instale un txt1 de tamaño grande, con sus propiedades comunes. c) Instale un lbl1 (auxiliar) pequeño, que finalmente se ocultará con Visible False.d) Escriba el siguiente código para el ScrollBar 1:

El cursor se desplaza en una u otra dirección con clic en los botones de los extremos del scb, generando acciones que con creatividad pueden aportar soluciones interesantes.

Page 48: Presentaciones interactivas. Curso de VBA

48

Las propiedades comunes a otros controles no se explican, pues ya son conocidas y se usan de igual modo.

SU CUADRO DE PROPIEDADES

Si el punto de selección estará a la izquierda o a la derecha del control.

No todas las propiedades se explican, sólo las más frecuentes. Las demás podrá irlas conociendo mediante la práctica.

La ilustración que se pondrá en el control, y la posición que ocupará en el mismo (izquierda, derecha, centro…).

La alineación del texto que conforma el Caption del control.

Permite activar (True) o desactivar (False) el control mediante código.

Page 49: Presentaciones interactivas. Curso de VBA

OptionButton permiten conformar una matriz desde la que se induzcan acciones a otros tipos de controles con la selección de uno u otro opt, siendo fácil de elaborar pues no

requiere código de activación, ya que el focus del programa se instala automáticamente en el opt donde se haga clic, borrándose de los demás. Sus posibilidades son semejantes a la del scb. La siguiente figura es un ejemplo de matriz de opt, en que se aprecia lo siguiente:

• La posición del punto de selección es a la izquierda (propiedad Alignment Left).• Se empleó fuente especial Webdings para los Caption, generándose ilustraciones. • Se usaron colores diferentes para los BackColor, creándose un circuito llamativo.

HAGAMOS LA SIGUIENTE PRÁCTICA:

EJERCICIO 18:

a) Instale varios opt, formando una matriz, y declare sus propiedades.b) Instale un lbl1, con tamaño grande para poder mostrar oraciones extensas.c) Escriba este código a cada opt:d) El mensaje variará en el código de cada opt, en relación con la ilustración que muestre.

Los efectos pueden ser muy diversos, según necesite. Así mostrará mensajes o ilustraciones, generará movimientos, activará/desactivará controles, etc., para resolver sus múltiples necesidades de programación. 49

Page 50: Presentaciones interactivas. Curso de VBA

50

Las propiedades comunes a otros controles no se explican, pues ya son conocidas y se usan de igual modo.

SU CUADRO DE PROPIEDADES

Si el punto de selección estará a la izquierda o a la derecha del control.

50

No todas las propiedades se explican, sólo las más frecuentes. Las demás podrá irlas conociendo mediante la práctica.

La ilustración que se pondrá en el control, y la posición que ocupará en el mismo (izquierda, derecha, centro…).

La alineación del texto que conforma el Caption del control.

Permite activar (True) o desactivar (False) el control mediante código.

Page 51: Presentaciones interactivas. Curso de VBA

La principal diferencia funcional ocurre cuando se sitúan varios de estos controles en una misma interface, conformando una matriz de controles. Como su nombre indica, el OptionButton permite la elección de una sola alternativa entre varias posibles, por lo que cuando se hace clic en uno se desmarcan los demás (pasan al estado Value False). Así, solamente un OptionButton podrá estar activo (tener el focus del programa) cada vez.

Por su parte, los CheckBox en una matriz de controles no se excluyen unos a otros, por lo que pueden marcarse varios a la vez, incrementándose las opciones de selección. Para desmarcar un CheckBox (pasarlo al estado Value False) ya seleccionado hay que hacer clic nuevamente en él. Para operar en modo de ejecución un CkeckBox (al igual que un OptionButton) mediante códigos, se escribe la instrucción Value True. Para desmarcarlo se escribe Value False.

Al igual que los TextBox y los OptionButton, los CheckBox cuentan entre sus procedimientos con el evento Change (también poseen Click y los demás habituales), lo cual permite generar acciones con su operación mediante códigos, cambiando su estado de activo a inactivo, o viceversa. 51

CheckButton es un control muy semejante al OptionButton, y sus Propiedades son idénticas, por lo que se manejan de igual modo y cumplen parecidas funciones. Visualmente se diferencian porque en los chk el punto de selección tiene forma cuadrada, y en los opt es circular. Funcionalmente las diferencias son mayores.

El uso de CheckButton es

muy valioso para elaborar sistemas de comprobación de conocimientos,

al permitir la selección de

diversas respuestas dentro

de una lista de alternativas. Esto se incrementa al combinarlos con

OptionButton.

Page 52: Presentaciones interactivas. Curso de VBA

52

Las propiedades comunes a otros controles no se explican, pues ya son conocidas y se usan de igual modo.

SU CUADRO DE PROPIEDADES

SI se le situará en forma vertical u horizontal.

No todas las propiedades se explican, sólo las más frecuentes. Las demás podrá irlas conociendo mediante la práctica.

El tiempo que se demora la acción del cursor, con un valor predeterminado de 50 milisegundos.

Aquí se escribe la cantidad superior de números que puede alcanzar.

Aquí se escribe la cantidad inferior de números que puede alcanzar.

Aquí se escribe la cantidad de pasos que se recorrerán con cada accionar del botón. Generalmente es de 1 en 1, del valor Max. al Min. o viceversa.

Page 53: Presentaciones interactivas. Curso de VBA

a) Instale un spn1, un lbl1 y un lbl2.b) Declare al spn1 las propiedades Max 100, Min 0, SmallChange 1.

c) Declare al lbl1 las propiedades Font Webdings, TextAlign Center, Border Single. Y al lbl2 las mismas propiedades, pero con Font Arial.

d) Escriba el siguiente código para el spn1: Vea que con Change se muestranen lbl2 las variaciones numéricas…Y con SpinDown y SpinUpse producen en lb1 diversas accionescomplementarias entre sí.

53

SpinButton es un control que se utiliza para seleccionar un valor dentro de un rango numérico pre-establecido con las propiedades Max (el valor superior que se puede

alcanzar) y Min (el valor inferior, que generalmente es 0), variándose según los pasos que se establezcan con la propiedad SmallChange (generalmente de 1 en 1). Consiste

en una caja con botones de flecha arriba (SpinUp) y abajo (SpinDown) cuando se sitúa verticalmente, y de izquierda a derecha, cuando está en forma horizontal. Su principal

propiedad es Change, que permite las variaciones numéricas establecidas.

EJERCICIO 19:

Para regresar un SpinButton al valor inicial instale un cmd y escríbale el código para Click:SpinButton().Value = 0

Page 54: Presentaciones interactivas. Curso de VBA

54

Las propiedades comunes a otros controles no se explican, pues ya son conocidas y se usan de igual modo.

SU CUADRO DE PROPIEDADES

Cantidad de columnas que tendrá el cuadro de lista. El valor 1 es adecuado.

No todas las propiedades se explican, sólo las más frecuentes. Las demás podrá irlas conociendo mediante la práctica.

Si en la lista se emplearán o no botones de opción.

SI la lista estará disponible (True) o no (False) en un momento dado.

Si se pondrá (True) o no (False) un encabezamiento a cada columna.El ancho que tendrá cada columna. El valor 1000 pt es adecuado.

Si la altura de la lista aumenta (True) según su contenido.

Cómo se hará la búsqueda de elementos en la lista (por letras, nombres…)

Si los elementos se seleccionarán de forma sencilla (Single) o múltiple.

Page 55: Presentaciones interactivas. Curso de VBA

55

ListBox es un control muy valioso para la creación de bases de datos o evaluadores de resultados, ya que permite la selección de una o más decisiones dentro de una lista de

opciones en pantalla. Es como emplear OptionButton o CheckBox, pero apoyados en la acción de un TextBox. HAGAMOS LA SIGUIENTE PRÁCTICA:

a) Instale un lst1, un lst2 y un txt1. Póngales las propiedades básicas.b) Escriba el siguiente código:

EJERCICIO 20:

c) Abra la presentación y proceda a instalar texto en el txt1 en modo de ejecución, bien escribiendo directamente en él, o copiándolo de una fuente externa (un block de notas) y pegándolo con Ctr+V(ver diapositiva 38).

d) Haga DblClick en txt1 y lo allí escrito pasará al lst1 , conformando una lista de opciones. Tenga presente que debe pasar cada opción por separado. Esto es: escriba (o copie/pegue) una, y traspásela con DblClick; luego haga lo mismo con la segunda, y así sucesivamente. Si pretende pasar juntas varias opciones del txt1 al lst1, se mostrarán como una sola.

e) Finalmente, en el lst1 seleccione las opciones (una o varias) que desee, y al hacer Click en cada una se mostrará de igual manera en el lst2, pero sin borrarse del lst1.

DE ESE MODO PODRÁ CONFORMAR SU RELACIÓN DE DECISIONES, SELECCIONADAS DE UNA LISTA DE POSIBLES OPCIONES.

Page 56: Presentaciones interactivas. Curso de VBA

56

Un Formulario de Usuario (frm) no es precisamente un control. Si en VBA sobre PowerPoint las diapositivas son la interface de programación, en el programa VisualBasic (VB) ese soporte son

los formularios. Así que en VBA se emplea el frm como una matriz de controles, que cumple diversas útiles funciones. Para instalarlo hay que abrir el editor de códigos, donde…

Con clic en este botón se inserta un Formulario de Usuario nuevo en

el área de diseño…

Con clic en este botón se inserta el cuadro de Propiedades…

Con clic en este botón se inserta el cuadro de Herramientas…

Un formulario ya existente y guardado se busca aquí…

Page 57: Presentaciones interactivas. Curso de VBA

57

En el cuadro de Herramientas están los controles ya conocidos

(y otros que no usaremos en VBA):

• Label• TextBox• ListBox• CheckBox• OptionButton• CommandButton• ScrollBar• SpinButton• Image• Cursor para seleccionar objetos

Los controles se instalan en un Userform como se hace en una diapositiva, y se les otorgan las

Propiedades vistas anteriormente. HAGAMOS LA SIGUIENTE PRÁCTICA:

EJERCICIO 21:

a) Instale un frm con BackColor Verde, ScrollBars Both, en Caption escriba PRUEBA, StarUpPosition Manual, Picture (busque una adecuada en su explorador), PictureAlignment Left, PictureSizeMode Zoom. Dele el tamaño que quiera, usando los puntos dimensionales.

b) Instale en la parte inferior central del frm un cmd1 (selecciónelo del cuadro Herramientas) y dele propiedades básicas.

c) Instale en la parte superior central del fmr un txt1 con propiedades básicas. Emplee BackStyle Transparent, Font de tamaño grande, y ForeColor contrastante.

(Sigue a continuación…)

Page 58: Presentaciones interactivas. Curso de VBA

58

d) Haga dobleclic en cmd1 instalado en el frm1, y abra un editor de códigos para ese control. Escriba las instrucciones:

e) En una diapositiva instale un cmd1, con las propiedades básicas, y escriba el siguiente código:

f) Ejecute en el frm que se abra las instrucciones (Click, DblClick) para el cmd. ¿Qué ocurre?g) Para ocultar el frm haga clic en el botón Cerrar (extremo superior derecho).

Habrá comprendido que el frm es aquí una interface auxiliar de programación insertada en la interface principal de VBA sobre PowerPoint (las diapositivas), que puede ser abierta en modo de ejecución para ejecutar múltiples acciones, como la aportación de instrucciones, de textos

al margen, de listas con elementos y opciones, de soportes para escribir en pantalla, etc. HAGAMOS LA SIGUIENTE PRÁCTICA:

a) Instale un frm igual al del Ejercicio 21, pero en Caption escriba INSTRUCCIONES.b) Instale en el frm un txt1 con las propiedades comunes. Cuide que su BackColor sea

contrastante con el del frm.c) Copie y pegue en el txt un texto (como ya sabe hacer desde el Ejercicio 11).d) Instale un cmd en la diapositiva, con el código: e) Con clic en el cmd en modo de ejecución verá el frm en la diapositiva, y si el txt tiene la propiedad Locked False podrá escribir en él.

EJERCICIO 22:

Clic en él en modo de ejecución.

Page 59: Presentaciones interactivas. Curso de VBA

Al otorgarle propiedades a un frm Ud. puede decidir en qué lugar de la diapositiva quiere

que aparezca (lo más común es en el centro). Pero podrá moverlo a voluntad en modo de

ejecución si le declara como propiedad StartUpPosition Manual, lo cual es muy

conveniente.También podrá regular en modo de diseño el

tamaño del frm que confecciona, mediante las flechas dimensionales en sus extremos. Y así podrá ocupar un espacio semejante al de la

diapositiva donde aparecerá.Si sitúa varios frm con dicho tamaño, podrá seleccionar y mostrar el que desee en cada

momento, mediante cmd situados en un borde de la diapositiva. La cantidad de frm podrá ser ilimitada, pues se mostrarán uno a uno en la presentación, como los vaya seleccionando.

ESTO LE PERMITIRÁ CONFECCIONAR UNA PRESENTACIÓN DE POWERPOINT CON UNA

SOLA DIAPOSITIVA, EN LA QUE TODO EL CONTENIDO SE MUESTRE EN VARIOS frm QUE SERÁN OBSERVADOS UNO A UNO, SEGÚN SU

VOLUNTAD.59

Luego de abrir un UserForm es posible desde un control instalado en él accionar

sobre una diapositiva, o viceversa, empleando códigos como los que se

ejemplifican a continuación:Slide().Label()=()

UserForm().Label()=()En el primer caso el código se escribe en el frm y opera en la diapositiva (slide). En el segundo caso se escribe en la diapositiva (slide) y opera en el frm (entre paréntesis

van los números y la proposición).

Page 60: Presentaciones interactivas. Curso de VBA

Tema 4:

60

Las estructuras de control son códigos encargados de determinar el flujo de ejecución de

un programa, permitiendo realizar un proceso repetidas veces en función de los denominados

bucles, o ciclos de instrucciones. Los lenguajes de programación tienen estructuras de control

similares, y básicamente lo que varía entre ellas es su sintaxis. En VBA estudiaremos las

siguientes:

Sentencias condicionales

Dominar las estructuras de control aporta al desarrollador la capacidad necesaria para resolver todo tipo de

problemas con sus programas. De modo que, habiendo tratado ya con

profundidad lo referente al manejo de controles, le sugiero prestar toda su

atención al siguiente contenido…

Page 61: Presentaciones interactivas. Curso de VBA

61

Sentencias condicionales

Ya desde la diapositiva 32 conocimos las posibilidades de las sentencias condicionales, muy usadas en programación.

Con ellas se puede:

De acuerdo a una condición, ejecutar un grupo u otro de instrucciones (If…Then…Else/ElseIf).De acuerdo a casos variables, ejecutar un grupo u otro de instrucciones (Select…Case).

(Existen otras sentencias condicionales, pero son suficientes estas dos para los fines de este curso).

SENTENCIA IF SIMPLE:

a) Se trata de una estructura de control que permite redirigir un curso de acción según una condición inicial sea falsa o verdadera. Si la condición 1 es verdadera se ejecuta el bloque de instrucciones 1, de lo contrario, se ejecuta el bloque 2.

b) Se pueden plantear simultáneamente múltiples premisas: si se cumple la condición 1 se ejecuta el bloque de instrucciones 1, en caso contrario se comprueba la condición 2, y si es cierta se ejecuta el bloque 2, y así sucesivamente hasta ilimitadas (n) condiciones. Si ninguna de ellas es cumple se ejecuta el bloque de instrucciones Else.

Como ya se conoce, puede combinarse con operadores lógicos o de comparación, y siempre termina con End If..

Nombre del control.Propiedad=ProposiciónCada condición tiene la estructura:

Page 62: Presentaciones interactivas. Curso de VBA

SENTENCIA SELECT-CASE:

a) Permite ejecutar una de entre varias acciones en función del valor de una expresión. Es una alternativa a If…Then…Else , pero comparando valores numéricos, para lo cual se recorren los "Case" en la estructura, buscando el que coincida con uno de los valores.

b) Cuando se encuentra la primera coincidencia se ejecuta el bloque de instrucciones correspondiente y se cierra la estructura Select-Case. Si no se encuentra coincidencia con algún valor, se ejecuta el bloque de instrucciones Case Else.

62

Presenta dos variantes:

SELECT CASE IS:• Luego de escribir la condición inicial se escribirán los Case (casos condicionales) , que en esta variante están formados por: (Case Is)(operador de comparación)(valor numérico). Luego se escribe el bloque de instrucciones a ejecutar. Siempre se termina con End Select en ambas variantes.SELECT CASE TO:• Luego de escribir la condición inicial se escribirán los Case, que en esta variante están formados por: Case (número menor) To (número mayor). Luego se escribe el bloque de instrucciones a ejecutar mientras el valor numérico en el control esté dentro del rango indicado (1 al 15 en este ejemplo).

(En los ejemplos se usó un txt como control. También puede utilizarse un lbl, con igual resultado).

Select Case Nombre del control.PropiedadLa condición inicial tiene la estructura:

Page 63: Presentaciones interactivas. Curso de VBA

Funciones

En programación, una función es un grupo de instrucciones que se ejecuta al ser llamada desde otra función o

procedimiento, para entregar un resultado.

Pueden ser llamadas múltiples veces para recibir datos desde afuera a través de sus parámetros. Se diferencian de los procedimientos porque estos no devuelven resultado.

Una función tiene tres componentes básicos:• Los parámetros, que son los valores de entrada.• El código, que son las operaciones, o proceso, que realiza.• El resultado, que es el valor final que entrega a la salida.

Generalmente las funciones inician su

código con la variable int (Integer).

EJERCICIO 23:

a) Instale un txt1, con sus propiedades básicas.b) Escriba el siguiente código: c) Cuando haga DblClick en el control se mostrará un número, en este caso del 1 al 1000, aleatoriamente generado.Esto también puede hacerse con clic en un cmd, y tanto para un txt como para un lbl.

La función Int(#*Rnd+1) se emplea en la GENERACIÓN ALEATORIA DE NÚMEROS, de mucha utilidad en proyectos de programación. Sus componentes significan:

Int: declaración de la función como Integer (variable que trabaja con números).#: se escribe el valor mayor que puede alcanzar la función (1000, por ejemplo).*Rnd + 1: esta fórmula generará aleatoriamente un número entero del 1 al 1000.

FUNCIÓN RANDOM:

63

Page 64: Presentaciones interactivas. Curso de VBA

La función MsgBox se emplea en la creación de CAJAS DE MENSAJES, que cumplen un importante papel de interactividad en los programas, devolviendo resultados a partir de varios argumentos escritos en el código. Durante el diseño los argumentos van mostrándose en listas cuando se escribe una coma (,) en el texto, a fin de que se pueda elegir el que se desee, en el orden: “mensaje”,diseño+botones,”titulo”.

FUNCIÓN MSGBOX:

64

EJERCICIO 24:

a) Con un txt y un cmd haga este ejercicio. Escriba en el txt el mensaje que se muestra, y ponga al cmd el Caption Borrar.

b) Luego de escribir los códigos podrá, con clic en el cmd, abrir un MsgBox titulado EJEMPLO, que tiene las opciones Sí / No. Con clic en No nada pasará; con clic en Sí se borrará el mensaje del txt. En ambos casos el MsgBox desaparecerá luego de hacer clic en alguno de ambos botones.

c) Los argumentos empleados y sus efectos en el MsgBox, son los siguientes :• Título: para escribir entre comillas dobles el título que tendrá el

MsgBox al mostrarse.• Diseño: para escoger un signo (¡…?...) con que ilustrar el MsgBox.• Mensaje: para escribir entre comillas dobles la instrucción que

aparecerá en el MsgBox.• Botones: para escoger la opción de selección del MsgBox.

¿Recuerda haber visto esto en aplicaciones de Windows?

¿Cómo se hace? Lo aprenderá a continuación…

Page 65: Presentaciones interactivas. Curso de VBA

65

Para escribir el código al control empleado (generalmente un cmd), se escribe el nombre de la función. Escriba al final un paréntesis ( y se mostrará la lista de argumentos…

“mensaje”, diseño+botones, ”titulo”

Nombre de la función

El elemento en turno dentro de la lista se verá en negrita (Prompt, primeramente). Después del paréntesis escriba entre “” el mensaje que aparecerá en el MsgBox. Escriba una coma , y se abrirá una lista de opciones para el diseño…

Haga dobleclic en la opción de diseño que escoja, escriba seguidamente un signo + y se abrirá una lista de opciones para los botones…

Page 66: Presentaciones interactivas. Curso de VBA

Haga dobleclic en la opción de botón que escoja, escriba seguidamente una coma , y se pasará al último elemento de la lista, que es el título del msg. Escríbalo entre “” y cierre el paréntesis.

La función terminada quedará finalmente así…

Termine de escribir el código empleando una sentencia condicional simple If…

Donde la proposición está determinada por la opción de botón escogida (en este caso vbYes). Escriba la instrucción a ejecutar en el control (en este caso txt1). Y termine con End If.

LAS OPCIONES DE DISEÑO MÁS COMUNES (Y LOS

SÍMBOLOS QUE IMPLEMENTAN) SON:

• vbCritical: letra X• vbQuestion: interrogación• vbExclamation: admiración• vbInformation: letra i

LAS OPCIONES DE BOTONES MÁS COMUNES (Y SUS

ACCIONES) SON:

• vbOK: clic en Aceptar• vbCancel: clic en Cancelar• vbAbort: clic en Abortar• vbRetry: clic en Reintentar• vbIgnore: clic en Ignorar• vbYes: clic en Sí• vbNo: clic en No 66

Sin importar cuántos botones de comando existan en un MsgBox, sólo podrá hacerse clic en uno,

pues al hacerlo desaparecerá de inmediato, y el valor de

respuestas será solo el del botón en que se hizo clic.

Page 67: Presentaciones interactivas. Curso de VBA

67

EJERCICIO 25:

La función InputBox se emplea en la creación de CUADROS DE ENTRADAS, que cumplen un importante papel de interactividad en los programas. Al igual que las MSGBOX, vistas anteriormente (diapositiva 65), para escribir el código al control empleado (generalmente un cmd) se ponen el nombre de la función y un paréntesis ( y de inmediato se mostrará la lista de argumentos:El primer argumento (prompt) es el mensaje que se desea aparezca en el InputBox, luego se escribe una coma (,) y se pondrá como segundo argumento (title) el título que llevará el cuadro de entradas. Los otros argumentos no son necesarios. Para realizar un InputBox es preciso emplear una sintaxis de variable, lo que será estudiado más adelante (diapositiva 70). Por eso veremos ahora este único caso indispensable:

FUNCIÓN INPUTBOX:

InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])

a) Instale un CommandButton y un TextBox, con las propiedades habituales.b) Escriba al cmd1 el código:

declare la variable con Dim str y póngale un nombre que la

designe. Valídela con la función InputBox, escribiendo el prompt y el title que desee.Cuando haga clic en el cmd se mostrará el cuadrode entradas siguiente, donde en la ventana deedición podrá escribir según el mensaje, y al hacerclic en Aceptar, lo que escriba se verá en el txt. Con este procedimiento se podrá cambiar el Captionde un control en modo de ejecución.

Page 68: Presentaciones interactivas. Curso de VBA

EJERCICIO 26:Con el recurso de los TextBox, los ListBox, y ahora los InputBox, podrá Ud. construir su propia BASE DE DATOS. El siguiente producto es muy elemental, pero lo que se pretende es que aprenda a conocer las posibilidades que brinda la combinación de estas herramientas para la realización de un proyecto sencillo y práctico.a) Instale un TextBox, 2 ListBox y 3 CommandButton, con sus propiedades habituales.b) Al cmd1 póngale ENTRADA DE DATOS como Caption y escríbale el código:

68

Así implementará un InputBox por cada información que desee incluir en la base de datos. Cuando haga clic en este cmd1 en modo de ejecución se irán mostrando los InputBox consecutivamente, y las respuestas que se escriban en ellos se podrán ver en el txt1.

c) El siguiente código para el txt1, con el procedimiento Change irá transfiriendo al lst1 la información que reciba del InputBox, la que se mostrará como lista de opciones para conformar el almacén de la base de datos. El txt1 debe ser ocultado con Visible False.

Page 69: Presentaciones interactivas. Curso de VBA

69

d) Escriba este código para el lst1, que permitirá seleccionar en él la información deseada, pasándola con clic en su botón de opción al lst2, donde se mostrará igualmente como una lista:

e) Finalmente, estos códigos para cmd2 y cmd3 permitirán dejar vacíos los ListBox 1 y 2 cuando sea necesario:

EJERCICIO 27:

Ahora veamos cómo COMBINAR MSGBOX E INPUTBOX para decidir sobre la entrada o no de información en una base de datos: a) Instale un TextBox y un CommandButton, con sus propiedades habituales.b) Escriba el siguiente código al cmd1:

Cuando haga clic en el cmd en modo de ejecución se mostrará un InputBox donde escribirá su respuesta, y cuando haga clic en Aceptar se mostrará un MsgBox donde podrá optar por SI o NO. En el primer caso su respuesta irá al txt; en el segundo caso no aparecerá en él.

Page 70: Presentaciones interactivas. Curso de VBA

EL TRABAJO CON VARIABLES REQUIERE 2 PASOS:

1. DECLARARLA. Para usar una variable primero hay que declararla con la instrucción Dim, que declara variables asignándoles un nombre y un tipo. Los tipos más frecuentes son:

bln (tipo Boolean): contiene resultados Verdadero (True) o Falso (False), Sí o No.int (tipo Integer): contiene valores numéricos entre -32,768 y 32,767.str (tipo String): contiene cadenas ilimitadas de caracteres no numéricos.cur (tipo Currency): contiene cadenas ilimitadas de valores numéricos.vnt (tipo Variant): contiene cualquier tipo de dato (numérico o de texto).

Al declarar una variable se usa la sintaxis: Dim (Nombre) As (Tipo) El Nombre se forma con el prefijo de su tipo y una palabra clave que la identifique según su función. Y el Tipo es uno de los 4 expuestos arriba. Por ejemplo:

Dim intResultado As Integer Es una variable nombrada Resultado, tipo Integer (int), con valor numérico

Variables

Las variables son las estructuras de control más importantes en todo lenguaje informático, pudiendo considerarse como la

base de la programación.

70

Cada una resulta un área temporal de almacenamiento de datos alojados en la memoria de la computadora, donde se guarda un valor que va a variar (de ahí su nombre) durante la ejecución del programa, y que puede ser llamado en cualquier momento para cumplir

funciones definidas por el programador mediante códigos.

Page 71: Presentaciones interactivas. Curso de VBA

2. VALIDARLA. Después de declarar una variable podrá almacenar datos en ella; esto es:darle un valor mediante una instrucción de asignación, que usa la sintaxis:

Nombre = ValorAsignadoComo ValorAsignado puede emplearse una expresión literal, una expresión matemática, otra

variable, una expresión lógica o una cadena, la propiedad de un control (los que aparecen en el cuadro Propiedades), etc. Por ejemplo:strResultado = “Patricia” Contiene una expresión literal (se escribe entre “”).intResultado = 571 Contiene una expresión matemática.vntResultado= strPrueba Contiene otra variable (se escribe su nombre).blnResultado=True Contiene una expresión lógica (Verdadero/Falso).vntResultado=Font Arial Contiene una propiedad del control.

La variable ya declarada y validada podrá emplearse para asignar un procedimiento de evento a cualquier control dentro del programa. HAGAMOS LAS SIGUIENTES PRÁCTICAS:

EJERCICIO 28:

71

BUCLE FOR:

Se emplea para repetir la ejecución de instrucciones n veces, según la diferencia numérica entre un valor inicial (#1) y uno final (#2), con un número de pasos dados por el valor que se dé a la propiedad Step. Si el #1 es menor que el #2, Step tendrá valor positivo (+), siendo negativo (-) si el #1 es mayor que el #2. Con un bloque de instrucciones aplicado a un txt, por su propiedad Change pueden generarse múltiples acciones a otros controles. A continuación se explica cómo proceder…

Page 72: Presentaciones interactivas. Curso de VBA

72

a) Instale un TextBox1, un TextBox2 y un SpinButton1, con sus propiedades habituales.b) Escriba el siguiente código al spn1: c) Escriba el siguiente código al txt1, con Change:

d) Observe en el código anterior que:• Se declara y nombra una variable: Dim intPrueba As Integer.• Se valida la variable: intPrueba=TextBox1.BackColor And TextBox1.Text• Se usa el operador lógico And para dar dos elementos al valor de la variable.• Se declara el bucle For para la variable: For intPrueba con valor: 1 To 50 (del 1 al 50) y

Step 1 (paso a paso), lo cual quiere decir que el bucle se repetirá 50 veces. Estos valores serán dados por el programador, si quiere lograr mayor o menor recorrido del bucle (por la distancia entre los números inicial y final), y mayor o menor reiteración, o cantidad de pasos (por el número de Step).

• Se establece la instrucción, consistente en que el txt2 muestre el contenido establecido por el valor de la variable intPrueba (TextBox1.BackColor And TextBox1.Text). Y así, en el txt2 se mostrarán el texto y el color de fondo del txt1, con una secuencia de veces establecida por Step hasta recorrer la distancia entre los números, como ordena el cierre obligatorio del bucle (DoEvents/Next). Aquí, por ser paso a paso (Step 1), la instrucción se cumplirá 50 veces, generando igual cantidad de posibles acciones…

Page 73: Presentaciones interactivas. Curso de VBA

73

EJERCICIO 29: Se emplea para ejecutar acciones que se repiten, conformando un lazo (loop), mientras (Do While) se mantengan válidos los valores empleados como premisas. En el Ejercicio 15 instalamos un generador aleatorio de

acciones por variación numérica constante, basado en la Fecha y Hora tomadas del sistema para un txt con el procedimiento MouseMove. Ahora

realizaremos un RELOJ DIGITAL que funcione permanentemente con un clic.

a) Instale un TextBox1, un TextBox2 y un SpinButton1 vertical, con propiedades habituales.b) Escriba el siguiente código al spn1, con procedimientos SpinDow y SpinUp:c) Escriba este código para

el txt1, con Change:

La Fecha y Hora instaladas inicialmente por el sistema en txt2, pasan al txt1 con SelText. Con esas lecturas se declaran las dos variables strHora. Al compararlas con Do While, por ser iguales (=) se cumple de nuevo la instrucción para el txt2, actualizándose Fecha y Hora de manera constante.

Es el encendido del reloj

Es el apagado del reloj

La sentencia de salida y la instrucción Exit Do evitan que el lazo sea infinito y el sistema se bloquee.

BUCLE WHILE:

Al final el txt1 se oculta con Visible False, y solo se verá el txt2.

Page 74: Presentaciones interactivas. Curso de VBA

EJERCICIO 30:

¿Quiere hacer esta CALCULADORA? Verá cómo. Necesita: 2 TextBox

6 CommandButton

74

a) Declare a estos controles las propiedades habituales. Cuide que en los txt el tamaño de Font sea óptimo, que TextAligment sea Right, así como los BackColor atractivos.

b) El apagado de la calculadora, con DblClick en el cmd On/Off, borra todo en los txt, pone los BackColor en gris, y cierra candados en todos los controles (Locked True) para evitar que puedan accionarse por error.

c) El encendido con Click en ese botón abre candados en los txt (Locked False), borra todo en ellos y les pone los colores de fondo previstos .

d) Ahora podrá actuar según se indica en el ejemplo: sitúe el cursor en el txt1 (azul) y escriba un número. Con clic lo pasará al txt2 (amarillo). Luego escriba un segundo número en el txt1.

Page 75: Presentaciones interactivas. Curso de VBA

75

e) Observe que pasar un número del txt1 al txt2 (instrucción SelText) no se hace con Click (los txt no tienen esta propiedad), sino que se emplea MouseDown (que se ejecuta cuando se oprime el botón del mouse). El número se borra del txt1, e inmediatamente que aparece en el txt2, por la propiedad Change se abren los candados (Locked False) en los 4 botones de operaciones aritméticas (+ - * /) y estos quedan listos para procesar el resultado:

f) Para obtener un resultado en cada operación aritmética hay que emplear 2 variables:• La primera corresponde al contenido del txt1, y se nombra curPantalla1.• La segunda corresponde al contenido del txt2, y se nombra curPantalla2.

Observe que el tipo de variable empleado es Currency (cur) pues

permite cadenas ilimitadas de números,

así como valores enteros y decimales.

Page 76: Presentaciones interactivas. Curso de VBA

g) Observe que para cada operación aritmética se comparan ambas variables, con la sintaxis: TextBox2.Text = (variable1) (signo aritmético) (variable 2)

h) Una última instrucción permite borrar el contenido del txt2 para rectificar un error.

76

Si quiere una calculadora con teclas, sitúe otros 10 cmd, con Caption: 1,2,3,4,5,6,7,8,9,0, y dé a cada uno el siguiente código:Con clic, cada cmd incorpora al txt1 el número que lo identifica en su Caption. Pero, para que ese número no sustituya al que ya está en el txt, sino que se adicione al final del mismo, después de poner la variable hay que colocar un ampersand (&) como operador de enlace, y luego poner el número entre “”. Este operador se emplea para unir los dos extremos de una cadena de caracteres. Los 10 nuevos cmd también deben ser accionados con Locked True y Locked False al apagar y encender la calculadora (incisos b,c). Y otro importante detalle es que NUNCA se debe usar TextBox1.Text=“”, sino: TextBox1.Text=“0” para que el código encuentre un valor inicial en txt1.

También se borra el txt1, para una nueva acción.

Page 77: Presentaciones interactivas. Curso de VBA

Tema 5:

Ya hemos cumplido el propósito de conocer controles y estructuras de control en el lenguaje de programación VBA. Ahora corresponde integrar esos recursos en el logro del objetivo final: el desarrollo de proyectos de programación, o softwares. Lo que abordaremos aquí

son procedimientos y recomendaciones para alcanzar el éxito en lo que cada cual se proponga realizar.

La realización de un proyecto computacional es una tarea semejante a la construcción de una maquinaria, donde cada pieza debe estar en su lugar exacto para

que el conjunto funcione correctamente. No se puede modificar un elemento interno cuando ya se está

trabajando en la cubierta exterior. De modo que desde el inicio hay que tener claridad sobre lo que se desea y cómo lograrlo, para ir avanzando paso a paso desde lo

inferior hacia lo superior, desde adentro hacia afuera. Y eso solo será posible si se aplica una metodología que

las Ciencias Informáticas definen como

77

Page 78: Presentaciones interactivas. Curso de VBA

La Ingeniería de software es la aplicación de un enfoque sistemático al diseño, desarrollo, operación y mantenimiento de programas informáticos. La creación de softwares es un proceso intrínsecamente creativo y la Ingeniería de software trata de sistematizar este proceso con el fin de reducir el riesgo del fracaso en la consecución del objetivo, que no es solamente la resolución de problemas, sino sobre todo teniendo en cuenta las diferentes soluciones, elegir la más adecuada. La metodología se resume en el esquema:

Aplicándolo a la realidad del presente Curso se pueden definir sus componentes del siguiente modo:

• HERRAMIENTAS: los controles y estructuras de control que el lenguaje VBA pone al servicio del desarrollador.• MÉTODOS: planteamiento y solución de problemas (práctica heurística) mediante herramientas computacionales, y fomento del trabajo intelectual individual y colectivo con técnicas de creatividad, como Brainstorming (tormenta de ideas).• PROCESO: creación de interfaces en soporte PowerPoint, escritura de códigos VBA, pruebas continuas del diseño en modo de ejecución.• ENFOQUE DE CALIDAD: usar los controles y estructuras más adecuados para cada caso, aplicar las soluciones más sencillas, una escritura ordenada de códigos con claridad y precisión, una presentación atractiva y coherente del producto final.

ES UN PROCESO CON 3 COMPONENTES BÁSICOS:

Intereses y necesidades Desarrollo Producto final

Page 79: Presentaciones interactivas. Curso de VBA

79

Su desarrollo comprende las 3 siguientes etapas:

DISEÑO (creación de la interface)

PLANIFICACIÓN (algoritmos de

funcionamiento)

REALIZACIÓN (escritura de códigos)

Partiendo de los intereses y necesidades planteados se procede a concebir el software que se desea, aplicando métodos heurísticos y creativos, tanto individual como colectivamente. La mayor capacidad del ser humano es que puede crear un mismo producto dos veces: primero en su mente, y luego con sus manos lo que imaginó. Esta es una etapa decisiva, donde se construyen las bases que soportarán al edificio, como resultado de la cual se sabrá qué se quiere hacer…

Sabiendo qué se quiere hacer se procederá a analizar la dinámica del software, procurando una comprensión lo más exacta posible sobre cómo funcionará, qué algoritmos, o lógica de ejecución, hay que cumplir para llegar al objetivo previsto en el diseño. Para esto es indispensable considerar con qué herramientas se cuenta, ya que lo propuesto tiene que ser absolutamente realizable. Si no se dispone de herramientas a tal fin, habrá que reajustar el diseño.

Habiendo vencido las dos etapas anteriores ya se tendrá el 80% del éxito, pues lo que queda es ¡poner manos a la obra!, en un empeño básicamente “de taller”, paciente, persistente, cuidadoso y técnico, a fin de aplicar los algoritmos planificados, con el uso de herramientas disponibles para alcanzar los objetivos diseñados. De modo que si todo lo anterior fue bien hecho… ¡FELICIDADES! Se tendrá un buen producto final.

El producto final, que es una PRESENTACIÓN INTERACTIVA, es mejor guardarla con la opción PRESENTACIÓN CON DIAPOSITIVAS DE POWERPOINT HABILITA PARA MACROS,

lo que permitirá abrirla directamente en modo de ejecución, y no en modo de diseño.

Page 80: Presentaciones interactivas. Curso de VBA

80

Algunos consejos…

Programe ordenadamente y con

claridad, para que luego pueda revisar

bien el código y analizar su estructura. Localizar un error en

un código confuso puede enloquecer a

cualquiera.

Procure programar los controles del mismo tipo en orden numérico. Así podrá localizarlos

con facilidad dentro del total. Cuando un mismo control deba cumplir varias funciones (Caption, ForeColor...) escríbalas en

el orden en que desee se ejecuten. El programa siempre "corre" de arriba a abajo. Si eso fuese indiferente, puede agrupar los

controles por tipos de funciones. Por ej.: primero todos los Caption, luego los

ForeColor, y así sucesivamente.

Escribir códigos que se repiten es sencillo con la posibilidad de Copiar y Pegar. Seleccione con el mouse (como en un

procesador de texto) el bloque de instrucciones que quiera copiar, y péguelo donde necesite. Como seguramente tendrá que cambiar algunos datos en la copia, eso se facilitará del

siguiente modo: estando en el editor de códigos seleccione el texto que pegó y haga clic en el ícono Buscar, de la barra de

menús. En el cuadro que se abrirá elija la opción Reemplazar. Escriba en la ventana Buscar el texto a cambiar, y el nuevo texto en la ventana Reemplazar con. Cerciórese que está

marcada la opción Texto seleccionado, y haga clic en la tecla Reemplazar todo.

Pruebe continuamente el proyecto en desarrollo, y no

espere al final para comprobar cómo va. Y no

olvide ir salvando lo realizado, pues una falla en el

sistema le ocurre a cualquiera... y es muy lamentable tener que

comenzar todo de nuevo.

Nunca diga: “¡Este programa no quiere correr!” Si su programa no funciona puede estar 100% seguro de que contiene un error de Ud. Tómelo con calma y póngase a revisarlo con detenimiento. La causa puede estar en un imperceptible punto. El

programa es obediente, y hará todo lo que se le ordene bien…

Page 81: Presentaciones interactivas. Curso de VBA

81

En programas con muchos controles puede ser tremendamente trabajoso escribir para cada control extensos bloques de instrucciones que se ejecutan de igual manera. Esto se simplifica

notablemente si emplea la opción PROCEDIMIENTOS GENERALES del editor de códigos. a) Haciendo clic en la pestaña de la ventana superior izquierda del editor verá los controles

que están instalados en la interface. Note que lo primero que se lee es (General). Está entre paréntesis para indicar que no es un control, sino una opción de edición.

En el editor existen 2 opciones: • GENERAL, para códigos que no

pertenecen a un control.• PRIVATE, para códigos de eventos, que

pertenecen a un control en particular.b) Los códigos que hemos escrito hasta ahora son de tipo privado, vinculados a un control,

como este que se ve, perteneciente al CommandButton1. c) Como Procedimiento General podrán escribirse códigos que se cumplan para cualquier

cantidad de controles, como es el caso de las sentencias condicionales. Para eso, haga clic en la opción (General) y el cursor del mouse de detendrá en la línea superior del editor.

d) Escriba entonces: Private Sub doPro1(seguidamente los bloques de instrucciones)End Sub

Para un segundo procedimiento escriba doPro2, y así sucesivamente.

Cuando quiera usar en un control uno de los Procedimientos Generales guardados, llámelo escribiendo al inicio de su código: Private Sub CommandButton1_Click()

Call doPro1(seguidamente el resto del bloque)End Sub

ESTO LE AHORRARÁ TRABAJO Y HARÁ SU PROYECTO MÁS COMPACTO Y FUNCIONAL.

Page 82: Presentaciones interactivas. Curso de VBA

82

La mayor necesidad en el desarrollo de un software es guardar los procesos que se vayan generando para emplearlos en otro momento en que se requieran, lo que se resuelve con el

uso de variables, que los conservan en áreas temporales de memoria hasta que sean llamados por los códigos. Pero también se puede hacer, en algunos casos, mediante los

denominados CONTROLES AUXILIARES, que se ocultan con Visible False para que cumplan su función sin ser vistos en la interface. Veamos los siguientes ejemplos en este curso:

En el Ejercicio 10 se emplea un Label auxiliar (lbl2) que recoge los números con que se identifican las diversas categorías a mostrar en el TV digital que se construye en el ejemplo. Los cambios de números en el lbl auxiliar, apoyados por el operador lógico And, propician el funcionamiento múltiple de la sentencia condicional. En el Ejercicio 13 se emplea un Label

auxiliar (lbl1) que igualmente recibe marcadores numéricos para que, junto al operador lógico And y de comparación = <> se ejecute la sentencia condicional que propicia la

evaluación de resultados. En el Ejercicio 16 se emplea un TextBox auxiliar (txt2) que al recibir los cambios numéricos generados por las variaciones horarias provoca, con su

procedimiento Change, hasta 10 acciones en otros controles del proyecto. En el Ejercicio 17 se emplea un Label auxiliar (lbl1) cuyas variaciones numéricas por el recorrido del ScrollBar

generan múltiples acciones en otros controles del proyecto.

Acuda a los CONTROLES AUXILIARES cada vez que pueda, pues trabajar con ellos es muy fácil. Por ejemplo: si necesita mover una imagen de un sitio a otro en la interface podrá, al

quitarla, pasarla a un control auxiliar, donde la tomará cuando quiera instalarla en otro lugar para completar el movimiento. Este recurso es útil en la realización de juegos con tableros, entre cuyas casillas se moverán las fichas: con clic en una casilla pasará la ficha que esté allí al control auxiliar, donde con una sentencia condicional simple podrá tomarla para situarla

en otra casilla que esté vacía. ¡PRUÉBELO EN SUS PROYECTOS!

Page 83: Presentaciones interactivas. Curso de VBA

Para tener éxito como desarrollador de softwares en cualquier lenguaje de programación, se

requieren…

FACTORES APTITUDINALES (¿qué poseo?)

ConocimientosImaginaciónCreatividadConcentraciónCapacidad de análisis…

FACTORES ACTITUDINALES (¿cómo actúo?)

VoluntadDecisiónConstanciaEcuanimidadAutocrítica…

Si me pregunta: ¿cuál es el mejor

lenguaje de programación?

Mi respuesta es: el que más Ud. domine para resolver sus intereses y

necesidades…

83

Page 84: Presentaciones interactivas. Curso de VBA

84

Un niño o adolescente enamorado de la computación podrá iniciarse en la programación con un lenguaje y una interface fáciles de usar, y elaborar sencillos programas de entretenimiento y educativos. Lo mismo podrán hacer padres y abuelos para apoyarlos…

Si es un profesional en cualquier rama, podrá elaborar presentaciones interactivas de PowerPoint para sus conferencias y otras necesidades, con el atractivo de una dinámica participativa lograda con la programación VBA que, entre otras cosas, le permitirá incluir todo el contenido en una sola diapositiva, con pantallas que se abrirán a su voluntad mediante códigos…

Si es un educador, podrá elaborar juegos y sistemas lúdicos para la comprobación de

conocimientos, con el empleo de herramientas de programación fáciles de

aprender y usar, elevando así la motivación en su desempeño docente…

Ahora le corresponde a Ud. demostrar lo aprendido. Y para eso tendrá que realizar un proyecto de regular complejidad, que será su Trabajo de Graduación.

Page 85: Presentaciones interactivas. Curso de VBA

CURSO

¡Graciaspor darme la

oportunidad de compartir con Ud. mis

conocimientos…!

miércoles, 12 de abril de 2023