Informática - Macros en Excel - VBAComenzando con macros de Excel M as informaci on en:...
Transcript of Informática - Macros en Excel - VBAComenzando con macros de Excel M as informaci on en:...
InformaticaMacros en Excel - VBA
Miguel A. Martınez del AmorCarmen Graciani DıazLuis Valencia Cabrera
Dpto. Ciencias de la Computacion e Inteligencia ArtificialUniversidad de Sevilla
Luis Valencia Cabrera Informatica
¿VBA?
Nos adentramos en el mundo de las macros en Excel, en elcontexto de VBA. ¿Que es VBA?
Significa Visual Basic para Aplicaciones
Se trata de un lenguaje de programacion para el desarrolloVisual Basic integrado en aplicaciones como Excel u otras deOffice que proporcionen una biblioteca de objetos.
Nos permite automatizar todo tipo de tareas a traves demacros.
Luis Valencia Cabrera Informatica
¿Solamente para Excel?
Con las macros en VBA no solamente podemos trabajar con Excel,sino tambien con cualquier otra aplicacion que proporcione unabiblioteca de objetos accesible:
Luis Valencia Cabrera Informatica
¿Biblioteca de objetos?
La biblioteca de objetos, o modelo de objetos, permite accederdesde codigo a las distintas funcionalidades y caracterısticascon las que solemos trabajar a mano en Excel.
Estos elementos estan accesibles desde VBA, a traves denumerosos objetos que podemos consultar y manipular, ynumerosas funciones que podemos invocar.
Solamente en Excel, ya existen mas de 100 tipos de objetos quemanipular. A continuacion analizamos 4 de las colecciones deobjetos mas importantes.
Luis Valencia Cabrera Informatica
Biblioteca de objetos de Excel
Esta es la jerarquıa principal de objetos de Excel:
Estos elementos estan accesibles desde VBA
Luis Valencia Cabrera Informatica
¿Macros Excel?
Vale, nos situamos en un contexto del lenguaje VBA empleadodentro de Excel, pero... ¿que es eso de una macro?
Es la unidad basica que nos permite automatizar tareas, uncomando al que dotamos de un codigo, y que podemos lanzarcuando lo solicitemos, de modo que ejecute la secuencia deinstrucciones de su codigo.
Una explicacion detallada se encuentra en este interesantetutorial de introduccion a las macros.
Un primer paso para generar nuestras macros puede ser laopcion de grabar macro. Probemos para recordar y despuesconsultemos el codigo generado. Recuerde que debe tenerhabilitada la pestana del desarrollador.
Luis Valencia Cabrera Informatica
Visualizar el codigo de VBA en Excel
Ok, he seguido paso a paso las instrucciones y grabado una macro.¿Como veo lo que he generado?
Mediante la combinacion de teclas Alt+F11 podra accedersiempre al editor de VBA de Excel.
Luis Valencia Cabrera Informatica
Un ejemplo basico de macro...
Sub: definicion de macro
Macro1: nombre macro
Select: seleccionarango/celda
ActiveCell: celdaseleccionada
FormulaR1C1: formula
Sub Macro1 ()
’
’ Macro1 Macro
’
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ah"
Range("C3").Select
ActiveCell.FormulaR1C1 = "vale"
Range("C4").Select
End Sub
Luis Valencia Cabrera Informatica
Comenzando con macros de Excel
Mas informacion en: [exceltotal.com] [excel-avanzado.com]
Al margen de la grabacion automatica de macros, podemoscrearlas desde el Editor de Visual Basic, accesible desde lapestana del desarrollador.
Una vez ahı, podemos proceder a crear un modulo quecontenga nuestras macros, y crear una primera macro:
Luis Valencia Cabrera Informatica
Detalles y buenas practicas
Conviene comentar el codigo que vamos escribiendo.
Debemos distinguir entre propiedades y metodos, es decir,entre elementos que identifican el estado y las acciones sobrelos mismos.
Este enlace ilustra muy bien una breve introduccion al uso deelementos basicos de ambos tipos en una hoja Excel.
Podemos acceder y manipular los elementos basicos de labiblioteca de objetos
Mas informacion sobre: [hojas y libros] [el objeto Application]
Conforme comience a escribir codigo, ira cometiendo errores.Puede tratar de corregirlos a traves de la depuracion, para loque dispone de algunas opciones interesantes
Luis Valencia Cabrera Informatica
El lenguaje VBA (I)Elementos basicos
Variables y tipos. (Ver referencia de los tipos)
Cadenas (texto) y funciones sobre ellas
Fechas y horas
Arrays (listas unidimensionales de elementos)
Funciones basicas
Mas sobre funciones definidas por el usuario
Devolucion de errores
Uso del With
Luis Valencia Cabrera Informatica
El lenguaje VBA (II)Instrucciones selectivas
Instrucciones selectivas
If-Then-Else (ej: par) (ref) [Mucho mas]
Operadores logicos: And/Or
Select-Case (ref)
Mucho mas (ejemplos resueltos sobre instrucciones selectivas)
Luis Valencia Cabrera Informatica
El lenguaje VBA (II)Instrucciones repetitivas
Instrucciones repetitivas
For-To-Next [Mucho mas]
For-Each
Acceso a celdas en bucle
Do-While
Luis Valencia Cabrera Informatica
Asignacion de formulas
No solamente se pueden cambiar valores y formatos de lasceldas, tambien asignar formulas a las mismas medianteFormula o FormulaR1C1.
En las formulas podemos emplear funciones, mediante sunombre en ingles.
Correspondencia entre funciones en espanol y en ingles.
Otra alternativa es asignar una funcion nombrada como en lainstalacion local de nuestro Excel, mediante FormulaLocal oFormulaR1C1Local, como se detalla aquı.
Range ( ”A5” ) . Formula = ”=AVG(A4 , A10 ) ”Range ( ”A5” ) . FormulaR1C1 = ”=AVG( R4C1 , R10C1 ) ”S e p a r a d o r = A p p l i c a t i o n . I n t e r n a t i o n a l ( x l L i s t S e p a r a t o r )Range ( ”A5” ) . F o rm u la L oc a l = ”=PROMEDIO(A4” & S e p a r a d o r & ”A10 ) ”Range ( ”A5” ) . FormulaR1C1Local = ”=PROMEDIO( F4C1” & S e p a r a d o r & ”F10C1 ) ”
Luis Valencia Cabrera Informatica