P. 1
VBa-Excel-2010

VBa-Excel-2010

|Views: 817|Likes:
Publicado porHarry Thedirty

More info:

Published by: Harry Thedirty on May 25, 2012
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

11/29/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

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

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

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.Capítulo 8 Resultado en Excel: 2. Etapa 2 k En el módulo de clase. k Una vez insertado el módulo. Eventos del objeto Application Se necesitan tres etapas para la escritura y ejecución de los eventos del objeto Application. Ejemplo Dele el nombre ObjApplication al módulo de clase. asígnele un nombre. cree un objeto Application con el siguiente código: Public WithEvents NomObjeto As Application 266 VBA Excel 2010 .

Public WithEvents MiAplicacion As Excel. el segundo. Type:=1) Loop While NbHojas = False NbActual = Sheets.InputBox _ ("¿Cantidad de hojas?".Count Diferencia = NbActual .All rights reserved Programación en Excel 267 . se agregan o eliminan las hojas necesarias Do NbHojas = Application.Application ________________________________________________________________________ Private Sub MiAplicacion_WorkbookNewSheet _ (ByVal Wb As Workbook. Ejemplo Creación de dos procedimientos de eventos: el primero realiza la inserción de una nueva hoja. ' solicitamos al usuario la cantidad de hojas ' Según el caso. 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. Escriba el código de los procedimientos que desea generar.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 . 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. 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. la creación de un nuevo libro.Name = NomHoja ActiveSheet.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.

Select ActiveWindow.EnableEvents = False Sheets.MiAplicacion = Application End Sub 268 VBA Excel 2010 . Option Explicit Dim app As New ObjApplication ________________________________________________________________________ Sub InicializaMiAplicacion() Set app.DisplayAlerts = False Sheets.Delete Diferencia = Diferencia .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.EnableEvents = True Application.SelectedSheets.Capítulo 8 Do While Diferencia > 0 Application.Add Diferencia = Diferencia + 1 Loop ' Reactivar eventos y alertas Application.Item(Diferencia).NomObjeto = Application End Sub Ejemplo Agregue el siguiente código en el módulo Declaraciones.1 Loop ' Agregar hojas necesarias ' Se desactivan los eventos para ' no indicar los nombres de las nuevas hojas Do While Diferencia < 0 Application.

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

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

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

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

Ejemplo: Sugerencia Use la función IsNumeric para testear la entrada. mostrar un mensaje. realice la operación que consiste en multiplicar el número por sí mismo. En caso contrario. 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. 244 © Editions ENI . mostrar un mensaje.58 B VBA Excel 2010 PRÁCTICAS TÉCNICAS Enunciado 4. Ejemplo: Respuesta pág.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.Reproducción prohibida . En ese caso.

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

245 E Enunciado 4. © Editions ENI . Debe aparecer un mensaje según si la entrada es: "Vocal".60 D VBA Excel 2010 PRÁCTICAS TÉCNICAS Enunciado 4. Los mensajes serán distintos según se trate de un hombre o de una mujer. "Consonante" o un mensaje adecuado en caso de error. vElec = UCase(vElec) Respuesta pág.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.Reproducción prohibida .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. Ejemplo: Sugerencia Para testear la letra en mayúscula.

246 © Editions ENI . 0) Respuesta pág. "¿Su edad?") Para mostrar el segundo cuadro de diálogo: vEdad = InputBox("¿Qué edad tiene Usted?".Reproducción prohibida .17 18 . 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?".Estructuras de control ENUNCIADOS DEL CAPÍTULO 4 61 Edad 0 .30 31 . vbYesNo. un sólo mensaje: "Nunca se le pregunta la edad a una dama". .50 > 50 Chico eres joven Hombre Usted todavía es joven Usted comienza a envejecer Para las mujeres.

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)//-->