Excel Avanzado cap 5

9
Excel Avanzado 2007 96 UNIDAD V “PROGRAMACIÓN II” 1. INTRODUCCIÓN 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 evaluación de alguna condición: el contenido de alguna celda o la acción del usuario, por ejemplo. De igual manera, puede haber necesidad de ejecutar un conjunto de instrucciones un número fijo o variable de veces, dependiendo de alguna condición. Entre las condiciones que pueden propiciar la ejecución de una macro están 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 ejecución de los programas se revisarán 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 mayoría de lenguajes de programación, y VBA también, soporta estos tipos de instrucciones: Cuadro N° 01 Instrucción Descripción Secuencial Realiza instrucciones en general una después de otra. If-Then Ejecuta un grupo de instrucciones si alguna condición es verdadera Select Case Dependiendo de alguna condición, decide ejecutar una de varias instrucciones

description

Excel Avanzado cap 5

Transcript of Excel Avanzado cap 5

Page 1: Excel Avanzado cap 5

Excel Avanzado 2007 96

UNIDAD V

“PROGRAMACIÓN II”

1. INTRODUCCIÓN

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 evaluación de alguna condición: el contenido de alguna celda o la acción del usuario, por ejemplo. De igual manera, puede haber necesidad de ejecutar un conjunto de instrucciones un número fijo o variable de veces, dependiendo de alguna condición. Entre las condiciones que pueden propiciar la ejecución de una macro están 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 ejecución de los programas se revisarán 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 mayoría de lenguajes de programación, y VBA también, soporta estos tipos de instrucciones:

Cuadro N° 01

Instrucción Descripción

Secuencial Realiza instrucciones en general una después de otra.

If-Then Ejecuta un grupo de instrucciones si alguna condición es verdadera

Select Case Dependiendo de alguna condición, decide ejecutar una de varias instrucciones

Page 2: Excel Avanzado cap 5

Excel Avanzado 2007 97

3.1. Instrucción secuencial

Consiste en seguir una secuencia de pasos en un orden predeterminado. Por ejemplo: Realizar un programa que a partir de un número N de días, calcula la cantidad de segundos que hay en esta cantidad de días. Este programa se puede ver como una secuencia de varios pasos: Inicio: Ingresa el numero N de días 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. Instrucción If-Then

Esta instrucción tiene la forma general siguiente: If condición Then

instrucciones1 Else

instrucciones2 End If Si la condición resulta verdadera, se ejecutarán las instrucciones escritas luego de la cláusula Then (instrucciones1); y si resulta falsa, se ejecutarán las instrucciones escritas luego de Else (instrucciones2) hasta la cláusula que indica el fin de la instrucción End If . Ejemplo:

Figura N° 1

Page 3: Excel Avanzado cap 5

Excel Avanzado 2007 98

Eventualmente puede no ser necesario utilizar la cláusula Else. Y si la instrucción puede escribirse en una solo línea, no será necesaria la cláusula End If.

Permite un cambio directo del flujo de ejecución de un programa. Esta instrucción transfiere el control a una instrucción específica que debe estar identificada por una etiqueta. Una etiqueta es un texto seguido por punto y coma.

3.3. Instrucción Select Case

Cuando se deben evaluar tres o más condiciones, utilizar la instrucción If-then puede ser algo complicado: podría anidarse una sentencia dentro de otra hasta cubrir todas las condiciones. Una alternativa más adecuada es utilizar la instrucción Select Case. Select case expresión

case condición1 instrucciones1 case condición2 instrucciones2

.

.

. End Select Se evalúa la expresión; si la condición1 resulta verdadera, se ejecutarán el grupo de instrucciones instrucciones1 y terminará la instrucción select; si la condición2 es verdadera, se ejecutará el grupo de instrucciones instrucciones2 y terminará la instrucción select; y así sucesivamente. En este ejemplo, se evalúa el valor de la variable Cantidad:

Figura N° 2

Page 4: Excel Avanzado cap 5

Excel Avanzado 2007 99

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) podría evaluarse una expresión completa. Este ejemplo evalúa 4 casos, pero podrían ser un número 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 algún objeto, etc. En determinados casos, puede ser útil ejecutar un programa automáticamente cuando ocurra algún evento. Por ejemplo, mostrar un aviso informativo al usuario apenas abra el libro Excel. Para ello, se podría 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á automáticamente cada vez que se abra este libro Excel. En el Panel de código, seleccione el objeto Workbook y el procedimiento Open.

Page 5: Excel Avanzado cap 5

Excel Avanzado 2007 100

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

Figura N° 5 La función Weekday (Diasem) determina el día de la semana de una fecha. Este evento es útil para mostrar mensajes de inicio o bienvenida, activar una hoja específica del libro, o abrir otros libros simultáneamente.

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.

Page 6: Excel Avanzado cap 5

Excel Avanzado 2007 101

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 botón Sí se grabará una copia en la carpeta COPIAS de la unidad D:

4.3. Eventos SheetActivate y SheetDeactivate

Excel también puede detectar cuando se activa (se ubica el cursor en ella) una hoja específica del libro, y cuando se desactiva (el curso se mueve a otra hoja), de modo que podemos utilizar estos eventos para ejecutar algún procedimiento. Ejemplos:

Figura N° 8

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

Page 7: Excel Avanzado cap 5

Excel Avanzado 2007 102

4.4. Otros eventos asociados al Libro Excel

Cuadro N° 02

Evento Cuándo 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

4.5. Eventos asociados a Hojas

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

Figura N° 9 En el Panel de Código seleccione el Objeto Worksheet y el procedimiento que quiera asociar.

Figura N° 10

Page 8: Excel Avanzado cap 5

Excel Avanzado 2007 103

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 numérico y no está vacía, se mostrará la ficha Número del diálogo Formato de celdas. Figura N° 11 La instrucción Cancel = True hace que la acción por defecto (mostrar el menú contextual de celda) no ocurra.

Figura N° 11

Page 9: Excel Avanzado cap 5

Excel Avanzado 2007 104

5. REFERENCIAS BIBLIOGRÁFICAS

Vila Velasquez, Fermi (2004) VBA Excel 2002/2000:49 ejercicios prácticos. México 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 página de Microsoft Latinoamérica: http://office.microsoft.com/es-es/training/CR100479683082.aspx