Você está na página 1de 9

UNIDAD V

PROGRAMACIN II

1.

INTRODUCCIN
Las macros grabadas se ejecutan linealmente, de inicio a fin. Sin embargo,
puede haber la necesidad de que la secuencialidad de las instrucciones de
una macro deba depender de la evaluacin de alguna condicin: el
contenido de alguna celda o la accin del usuario, por ejemplo.
De igual manera, puede haber necesidad de ejecutar un conjunto de
instrucciones un nmero fijo o variable de veces, dependiendo de alguna
condicin.
Entre las condiciones que pueden propiciar la ejecucin de una macro estn
los eventos: presionar una tecla, insertar una nueva hoja, cerrar un libro, etc.
Las instrucciones y los eventos que permiten el control del flujo de ejecucin
de los programas se revisarn en la presente unidad.

2.

OBJETIVOS
Utilizar instrucciones de control de flujo
Utilizar instrucciones secuenciales y condicionales
Manejo de eventos

3.

TIPOS DE INSTRUCCIONES
La mayora de lenguajes de programacin, y VBA tambin, soporta estos
tipos de instrucciones:
Cuadro N 01

Instruccin
Secuencial
If-Then
Select Case

96

Descripcin
Realiza instrucciones en general una despus
de otra.
Ejecuta un grupo de instrucciones si alguna
condicin es verdadera
Dependiendo de alguna condicin, decide
ejecutar una de varias instrucciones

Excel Avanzado 2007

3.1.

Instruccin secuencial
Consiste en seguir una secuencia de pasos en un orden
predeterminado.
Por ejemplo: Realizar un programa que a partir de un nmero N de
das, calcula la cantidad de segundos que hay en esta cantidad de
das. Este programa se puede ver como una secuencia de varios
pasos:
Inicio: Ingresa el numero N de das
Paso1: Hora = 24*N, para determinar la cantidad de horas
Paso2: Minuto = 60*Hora, para determinar la cantidad de minutos.
Paso3: Segundo = 60*Minuto, para determinar la cantidad de
segundos.
Paso4: Mostrar Segundo.
Fin

3.2.

Instruccin If-Then
Esta instruccin tiene la forma general siguiente:
If condicin Then
instrucciones1
Else
instrucciones2
End If
Si la condicin resulta verdadera, se ejecutarn las instrucciones
escritas luego de la clusula Then (instrucciones1); y si resulta falsa, se
ejecutarn las instrucciones escritas luego de Else (instrucciones2)
hasta la clusula que indica el fin de la instruccin End If .
Ejemplo:

Figura N 1

Excel Avanzado 2007

97

Eventualmente puede no ser necesario utilizar la clusula Else. Y si la


instruccin puede escribirse en una solo lnea, no ser necesaria la
clusula End If.

Permite un cambio directo del flujo de ejecucin de un programa.


Esta instruccin transfiere el control a una instruccin especfica que
debe estar identificada por una etiqueta. Una etiqueta es un texto
seguido por punto y coma.

3.3.

Instruccin Select Case


Cuando se deben evaluar tres o ms condiciones, utilizar la
instruccin If-then puede ser algo complicado: podra anidarse una
sentencia dentro de otra hasta cubrir todas las condiciones.
Una alternativa ms adecuada es utilizar la instruccin Select Case.
Select case expresin
case condicin1
instrucciones1
case condicin2
instrucciones2

.
.
.
End Select
Se evala la expresin; si la condicin1 resulta verdadera, se ejecutarn
el grupo de instrucciones instrucciones1 y terminar la instruccin
select; si la condicin2 es verdadera, se ejecutar el grupo de
instrucciones instrucciones2 y terminar la instruccin select; y as
sucesivamente.
En este ejemplo, se evala el valor de la variable Cantidad:

Figura N 2

98

Excel Avanzado 2007

Si es menor o igual que 10, se mostrar la palabra Deficiente


Si est entre 11 y 13, se mostrar la palabra Regular
Si est entre 14 y 17, se mostrar la palabra Bueno
Si es mayor o igual que 18, se mostrar la palabra Excelente
En vez de una variable (Cantidad) podra evaluarse una expresin
completa. Este ejemplo evala 4 casos, pero podran ser un nmero
cualquiera de casos.

4.

EVENTOS
Un evento es algo que ocurre en Excel: abrir un libro, ingresar un dato a una
celda, presionar una tecla, ocurrencia de un error, un clic sobre algn objeto,
etc.
En determinados casos, puede ser til ejecutar un programa
automticamente cuando ocurra algn evento. Por ejemplo, mostrar un aviso
informativo al usuario apenas abra el libro Excel. Para ello, se podra asociar
un programa al evento Abrir Libro.
Para asociar programas a los eventos de un libro utilice el panel de Proyectos
del Editor de Visual Basic y seleccione el objeto ThisWorkbook de la carpeta
Microsoft Excel Objetos.

Figura N 3

4.1.

Evento Open
El procedimiento asociado se ejecutar automticamente cada vez
que se abra este libro Excel. En el Panel de cdigo, seleccione el
objeto Workbook y el procedimiento Open.

Excel Avanzado 2007

99

Figura N 4
En la parte inferior del Panel de cdigo se mostrar las instrucciones
inicial Private Sub Workbook_Open() y final End Sub del
procedimiento. Entre ellas debe escribir el cdigo de su programa.
Ejemplo:

Figura N 5

La funcin Weekday (Diasem) determina el da de la semana de una


fecha.
Este evento es til para mostrar mensajes de inicio o bienvenida,
activar una hoja especfica del libro, o abrir otros libros
simultneamente.
4.2.

Evento BeforeClose
El procedimiento asociado a este evento se ejecutar inmediatamente
antes de que el libro se cierre. Seleccione el objeto Workbook y el
procedimiento BeforeClose.

100

Excel Avanzado 2007

Figura N 6
Este procedimiento ejemplo se ejecutar inmediatamente antes de
que se cierre el libro Excel. Mostrar el mensaje siguiente.

Figura N 7
Al presionar el botn S se grabar una copia en la carpeta COPIAS
de la unidad D:
4.3.

Eventos SheetActivate y SheetDeactivate


Excel tambin puede detectar cuando se activa (se ubica el cursor en
ella) una hoja especfica del libro, y cuando se desactiva (el curso se
mueve a otra hoja), de modo que podemos utilizar estos eventos para
ejecutar algn procedimiento.
Ejemplos:

Figura N 8
Esta macro ubica el cursor en la celda D5 y muestra el nombre de la
hoja activa.

Excel Avanzado 2007

101

4.4.

Otros eventos asociados al Libro Excel


Cuadro N 02

4.5.

Evento

Cundo ocurre

BeforePrint

El libro es impreso

BeforeSave

El libro es guardado

NewSheet

Una hoja nueva es insertada

SheetChange

Una celda es cambiada

WindowResize

La ventana se redimensiona

Eventos asociados a Hojas


Para asociar procedimientos a una hoja especfica, y no a todo el libro
Excel, seleccione la hoja en al panel de Proyectos.

Figura N 9
En el Panel de Cdigo seleccione el Objeto Worksheet y el
procedimiento que quiera asociar.

Figura N 10

102

Excel Avanzado 2007

Ejemplo:
Normalmente, al hacer clic derecho sobre una celda se muestra un
men contextual de celda. El procedimiento siguiente se ejecutar
antes de que esto ocurra. Y si la celda tiene formato numrico y no
est vaca, se mostrar la ficha Nmero del dilogo Formato de
celdas.

Figura N 11

La instruccin Cancel = True hace que la accin por defecto (mostrar


el men contextual de celda) no ocurra.

Figura N 11

Excel Avanzado 2007

103

5.

REFERENCIAS BIBLIOGRFICAS
Vila Velasquez, Fermi (2004) VBA Excel 2002/2000:49 ejercicios
prcticos. Mxico D.F.: Alfaomega (005.368E/V5).
Perry, Gail. Excel 2007 Macros Made Easy. Mc Graw Hill Companies.
2009.
Walkenbach, John. Excel 2007 VBA Programming for Dummies. Wiley
Publishing Inc. 2007.
Walkenbach, John. Excel 2007 Power Programming with VBA. John
Wiley and Sons. 2007.
Se ha utilizado como consulta la pgina de Microsoft Latinoamrica:
http://office.microsoft.com/es-es/training/CR100479683082.aspx

104

Excel Avanzado 2007

Você também pode gostar