P. 1
94761262-VBa-Excel-2010

94761262-VBa-Excel-2010

|Views: 108|Likes:

More info:

Published by: Antonio Merino Carbonell on Feb 15, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/07/2013

pdf

text

original

Ediciones ENI

VBA EXCEL 2010
Programación en Excel: Macros y Lenguaje VBA
Colección Recursos Informáticos

Extracto del Libro

según el objeto seleccionado. El evento desencadena un procedimiento. haga doble clic en el objeto deseado (libro. B. gráfico. 264 VBA Excel 2010 .). Escritura de eventos 1. Estos procedimientos le permiten asociar un código personalizado en respuesta a un evento que se produce en un objeto Excel (libro. Eventos de libro.Capítulo 8 A. asociado al evento del objeto activo. etc. hoja. de hoja o de formulario Usted puede acceder a los procedimientos de eventos asociados a un objeto de la siguiente manera: k k En la ventana Explorador de proyectos. hoja o formulario) para hacer aparecer la ventana de código correspondiente. Worksheet o UserForm. Abra la lista desplegable a la izquierda de la ventana de código y seleccione Workbook. Presentación Un evento es una acción del usuario o del sistema reconocido por un objeto de Microsoft Excel. formulario.

Administración de eventos k También puede seleccionar un evento vinculado al objeto seleccionado en la lista desplegable de la derecha. Ejemplo Este ejemplo muestra cómo obtener un listado histórico de todos los hipervínculos visitados en la hoja de cálculo activa. ã Editions ENI . para asociarle un código personalizado.All rights reserved Programación en Excel 265 . se puede desactivar en cualquier momento asignando el valor False a la propiedad EnableEvents del objeto Application. La ejecución de los procedimientos de eventos.

Etapa 2 k En el módulo de clase. cree un objeto Application con el siguiente código: Public WithEvents NomObjeto As Application 266 VBA Excel 2010 .Capítulo 8 Resultado en Excel: 2. Etapa 1 k Inserte un módulo de clase: Insertar Módulo de clase o abra la lista y haga clic en Módulo de clase. Ejemplo Dele el nombre ObjApplication al módulo de clase. Eventos del objeto Application Se necesitan tres etapas para la escritura y ejecución de los eventos del objeto Application. k Una vez insertado el módulo. asígnele un nombre.

NbHojas ' Eliminar las hojas de más ' Eliminar los mensajes de alerta con el fin ' de no obtener mensajes en la eliminación de hojas ã Editions ENI .Count Diferencia = NbActual .InputBox _ ("¿Cantidad de hojas?".Move After:=Sheets(Sheets.Count) End Sub _______________________________________________________________________ Private Sub MiAplicacion_NewWorkbook(ByVal Wb As Workbook) Dim NbHojas As Integer Dim NbActual As Integer Dim Diferencia As Integer ' Por cada nuevo libro. Public WithEvents MiAplicacion As Application El objeto así creado queda disponible en la lista de la izquierda del módulo.Administración de eventos Ejemplo Creación del objeto MiAplicacion como aplicación. la creación de un nuevo libro. ByVal Sh As Object) Dim NomHoja As String ' Cada vez que se agrega una hoja se pide al usuario ' que introduzca un nombre que a continuación se destinará a la hoja ' insertada tras las hojas existentes NomHoja = InputBox("Introduzca el nombre de la hoja") ActiveSheet. Escriba el código de los procedimientos que desea generar. se agregan o eliminan las hojas necesarias Do NbHojas = Application. el segundo. Public WithEvents MiAplicacion As Excel.All rights reserved Programación en Excel 267 . Ejemplo Creación de dos procedimientos de eventos: el primero realiza la inserción de una nueva hoja.Name = NomHoja ActiveSheet. ' solicitamos al usuario la cantidad de hojas ' Según el caso. Type:=1) Loop While NbHojas = False NbActual = Sheets. k Seleccione el objeto creado en la lista de la izquierda del módulo y luego seleccione el evento esperado en la lista de la derecha.Application ________________________________________________________________________ Private Sub MiAplicacion_WorkbookNewSheet _ (ByVal Wb As Workbook.

Item(Diferencia).EnableEvents = False Sheets.1 Loop ' Agregar hojas necesarias ' Se desactivan los eventos para ' no indicar los nombres de las nuevas hojas Do While Diferencia < 0 Application.Add Diferencia = Diferencia + 1 Loop ' Reactivar eventos y alertas Application.NomObjeto = Application End Sub Ejemplo Agregue el siguiente código en el módulo Declaraciones.SelectedSheets.EnableEvents = True Application.Select ActiveWindow.MiAplicacion = Application End Sub 268 VBA Excel 2010 . Option Explicit Dim app As New ObjApplication ________________________________________________________________________ Sub InicializaMiAplicacion() Set app.DisplayAlerts = True End Sub Etapa 3 k Active un módulo cualquiera y conecte el objeto declarado en el módulo de clase con el objeto Application para las siguientes instrucciones: Dim NomVariable As New NomModuloDeClase Sub NomProced () Set NomVariable.DisplayAlerts = False Sheets.Delete Diferencia = Diferencia .Capítulo 8 Do While Diferencia > 0 Application.

Estos procedimientos se desactivarán al cerrar el libro. Etapa 2 k En el módulo de clase. Evento asociado a un gráfico incrustado La colección Charts (del objeto Workbook) contiene todos los gráficos del libro especificado. k ã Editions ENI . 3. se ejecutarán automáticamente los procedimientos de eventos creados durante la etapa 2 y se agregarán los libros o las hojas.Administración de eventos Finalmente. Private Sub Workbook_Open() InicializaMiAplicacion End Sub Cuando se abra el libro. Se necesitan tres etapas para la escritura y la ejecución de los eventos asociados a un gráfico incrustado. llame al procedimiento InicializaMiAplicacion al abrir el libro (módulo de clase ThisWorkbook). asígnele un nombre. cree un objeto gráfico para el siguiente código: Public WithEvents NomObjeto As Chart Programación en Excel 269 . Ejemplo Dele el nombre ObjGraficos al módulo de clase. Etapa 1 k Inserte un módulo de clase: Insertar Módulo de clase o abra la lista y haga clic en Módulo de clase.All rights reserved Una vez insertado el módulo.

Ediciones ENI Aprenda a crear aplicaciones profesionales: Trabajos prácticos y respuestas VBA Excel 2010 Colección Prácticas Técnicas Extracto del Libro .

salida. incrementar. c. contador. Case If N1 > N2 b. B. puede aparecer seguida de una cláusula Else. nos limitaremos al empleo de cuadros de diálogo ya comentados. End Select 2. La palabra clave ElseIf: a. C c. iteración. Encontrará estas estructuras en la continuación del libro. Loop c. "Y"). Las siguientes instrucciones. Z 3. test.8 * 3. Else . Then . Case Num.. responda a las siguientes preguntas (ciertas preguntas admiten más de una respuesta): 1. b.. Is > 50 4. puede usarse muchas veces en un bloque If. En este capítulo. X Objetivos Aprender a usar las estructuras de decisión para testear las condiciones y realizar diferentes acciones según el resultado obtenido. IIf(2. "X". If .56 VBA Excel 2010 PRÁCTICAS TÉCNICAS Capítulo 4: Estructuras de control X Duración: 1 hora 45 X Palabras clave: condición. es opcional.. antes de iniciar esta práctica técnica. © Editions ENI . "Z") La variable Resultado contiene el valor: a. son correctas: a.... A Requisitos previos Para comprobar los requisitos previos necesarios. Case 1 to 10 d. decrementar.. Y c.. Las siguientes estructuras son estructuras de decisión: a. Case A. X b. que pertenecen cada una a una estructura de control diferente. asociadas a instrucciones condicionales..Reproducción prohibida .. Resultado = IIf(7 / 2 > 3. Conocer las instrucciones de iteración que. End If b.3 < 11.. Select Case . Case . permiten escribir código Visual Basic para la toma de decisiones y la repetición de acciones. bifurcación condicional. Do . alternativa. selección..

While . 6. Do .. For . Repite un grupo de instrucciones la cantidad de veces indicada: a.... For Each . . For Each . .Estructuras de control ENUNCIADOS DEL CAPÍTULO 4 57 5...... Repetir un grupo de instrucciones para cada elemento de una tabla o de una colección: a. For Each .. Next b. Next c. Next b. Do . Loop d. End With 8. .. 244 © Editions ENI . Wend e. . Wend e. Do . . End With 9. For . . For .. For Each . Next b.. Do . While .. Wend e.Reproducción prohibida . Ejecutar una série de instrucciones aplicadas a un único objeto o a un tipo definido por el usuario: a... Loop d... End With Respuesta pág. With .. Next c... Next c. Wend e. Next b.. While . With .. Wend e.... los ítems son los mismos que los de la pregunta 5.. While . End With Para las preguntas 6 a la 9..... For Each . While . With . Next b.. For ..... End With 7. Repetición de instrucciones mientras que una condición tenga el valor True: a. With . Loop d. Next c... Loop d. . Do . . .. Uso de un contador para ejecutar instrucciones un cierto número de veces: a. With . Loop d. For . Next c.. .

244 © Editions ENI .1: Verificar que el valor introducido es un número Ejercicio 1 Duración estimada: 10 minutos Escriba un procedimiento ControlEntrada que muestra un cuadro de entrada y verifica que se trata de un número. En caso contrario. Ejemplo: Sugerencia Use la función IsNumeric para testear la entrada.58 B VBA Excel 2010 PRÁCTICAS TÉCNICAS Enunciado 4. mostrar un mensaje.Reproducción prohibida . En caso contrario. realice la operación que consiste en multiplicar el número por sí mismo. Ejercicio 2 Duración estimada: 5 minutos Complete el procedimiento anterior para que verifique que el operador ha hecho clic en el botón Aceptar. Ejemplo: Respuesta pág. mostrar un mensaje. En ese caso.

= MsgBox(vMensaje. MsgBox "Continuamos. .Estructuras de control ENUNCIADOS DEL CAPÍTULO 4 59 C Enunciado 4. Éste muestra un cuadro de diálogo con el mensaje "Hasta pronto" si el operador hace clic en el botón Sí. Ejemplo: Sub Adios() Dim vMensaje As String Dim vEstilo.2: Decir adiós Duración estimada: 5 minutos Complete el procedimiento Adios. . vEstilo) If . . . . End Sub Sugerencia Éste es un extracto de la ayuda en línea: Respuesta pág." . . 245 © Editions ENI . . Si no. = vbYes . MsgBox "Hasta pronto." . . . .Reproducción prohibida . muestra el mensaje "Continuamos". vElec As Integer vMensaje = "¿Desea cerrar Excel?" vEstilo = vbYesNo + vbDefaultButton2 .

"Consonante" o un mensaje adecuado en caso de error. Los mensajes serán distintos según se trate de un hombre o de una mujer.Reproducción prohibida . Debe aparecer un mensaje según si la entrada es: "Vocal".60 D VBA Excel 2010 PRÁCTICAS TÉCNICAS Enunciado 4. Ejemplo: Sugerencia Para testear la letra en mayúscula. vElec = UCase(vElec) Respuesta pág. 245 E Enunciado 4.3: Controlar la introducción de una consonante o una vocal Duración estimada: 10 minutos Escriba un procedimiento ConsonanteVocal que pida introducir una vocal o una consonante. Tener en cuenta también la cancelación de la entrada y la introducción de letras para la edad.4: Mostrar un mensaje según la edad y el género Duración estimada: 15 minutos Escriba un procedimiento SuEdad que pregunte la edad. © Editions ENI .

Ejemplo: Sugerencias Declaración de variables Dim Dim Dim Dim vHombre As String * 1 vMujer As String * 1 vSexo vEdad As Single Para mostrar el primer cuadro de diálogo: vSexo = MsgBox("¿Usted es un hombre?".50 > 50 Chico eres joven Hombre Usted todavía es joven Usted comienza a envejecer Para las mujeres. . un sólo mensaje: "Nunca se le pregunta la edad a una dama".Estructuras de control ENUNCIADOS DEL CAPÍTULO 4 61 Edad 0 . 0) Respuesta pág.30 31 .17 18 .Reproducción prohibida . vbYesNo. "¿Su edad?") Para mostrar el segundo cuadro de diálogo: vEdad = InputBox("¿Qué edad tiene Usted?". 246 © Editions ENI .

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->