excel avanzado cap 5
Post on 15-Jan-2016
4 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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
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
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.
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.
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.
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
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
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
top related