Story Transcript
Macros y Visual Basic para Aplicaciones en Excel
Creación de Macro
Para grabar una macro debemos acceder a la pestaña Vista y despliega el submenú Macros y dentro de este submenu seleccionar la opción Grabar macro...
Creación de Macro
Además de esta opción en el menú podemos encontrar las siguientes opciones:
Ver Macros... - Donde accedemos a un listado de las macros creadas en ese libro. Usar referencias relativas - Con esta opcion utilizaremos referencias reativas para que las macros se graben con acciones relativas a la celda inicial seleccionada.
Creación de Macro
Al seleccionar la opción Grabar macro..., lo primero que vemos es el cuadro de diálogo Grabar macro donde podemos dar un nombre a la macro (no está permitido insertar espacios en blanco en el nombre de la macro).
Creación de Macro
Podemos asignarle un Método abreviado: mediante la combinación de las tecla CTRL + "una tecla del teclado". El problema está en encontrar una combinación que no utilice ya Excel. En Guardar macro en: podemos seleccionar guardar la macro en el libro activo, en el libro de macros personal o en otro libro. En Descripción: podemos describir cuál es el cometido de la macro o cualquier otro dato que creamos conveniente.
Introducción al VBA
Es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones Windows y que se incluye en varias aplicaciones Microsoft. VBA permite a usuarios y programadores ampliar la funcionalidad de programas de Microsoft Office. Visual Basic para Aplicaciones es un subconjunto casi completo de Visual Basic 5.0 y 6.0.
Introducción al VBA
VBA viene integrado en aplicaciones de Microsoft Office, como Word, Excel y Access, Powerpoint y Visio. Prácticamente cualquier cosa que se pueda programar en Visual Basic 5.0 o 6.0 se puede hacer también dentro de un documento de Office, con la sola limitación que el producto final no se puede compilar separadamente del documento, hoja o base de datos en que fue creado; es decir, se convierte en una macro (o más bien súper macro). Esta macro puede instalarse o distribuirse con sólo copiar el documento, presentación o base de datos.
Ejemplo de Macro ' Esta macro escribe el 1500 en la celda A1 Sub MiPrimeraMacro() Range("A1").Value = 1500 End Sub
El Editor de VBA o Macros
El Editor de Visual Basic es la aplicación que trae Excel desde donde se escriben y guardan las macros o código VBA. Se puede acceder al editor presionando Alt + F11.
El Código VBA
El comentario siempre comienza con el signo ' y no afecta para nada a la macro. Es un simple texto. El nombre de la macro lo pondremos anteponiendo la palabra Sub los paréntesis de apertura y cierre al final. Conviene dar un nombre que nos indique que hace la macro.
La instrucción principal la colocaremos entre Sub y End Sub.
El fin siempre es igual, con la frase End Sub.
El Código VBA
Las macros consisten en operar sobre un Objeto, ya sea alterando una de sus Propiedades o ejecutando un Método sobre el mismo.
El Código VBA
Objeto: Es una parte de Excel
Propiedad: Es una característica del objeto
Por ej. una celda de Excel, una hoja, un gráfico. Por ej. el valor de la celda, el nombre de una hoja, el color de un gráfico.
Método: es una acción sobre el objeto > por ej. copiar la celda, borrar la hoja, agrandar el gráfico.
El Código VBA ' Esta macro muestra un texto en una ventana emergente Sub MostrarTexto() Msgbox "Ejemplo de Mensaje" End Sub
El Código VBA ' Esta macro oculta las líneas de división de las celdas Sub OcultarLineas() ActiveWindow.DisplayGridlines = False End Sub
El Código VBA ' Esta macro copia un rango a la celda activa Sub CopiaRango() Range("A1:A5").Copy Destination:=ActiveCell End Sub
El Editor de VBA
Las principales ventanas de editor son:
Proyecto (arriba a la izquierda)
Propiedades (abajo a la izquierda)
Inmediato (arriba a la derecha)
Código (abajo a la derecha)
El Editor de VBA
En la ventana de Proyecto hay carpetas donde se guardarán y escribirán las macros. Objetos: ThisWorkbook siempre está presente. Si escribimos una macro aquí la misma afectará a todo el libro. Los módulos sirven para escribir macros a nivel genérico, sin estar relacionadas a la hoja o libro en particular.
El Editor de VBA
Se debe Recuerdar: antes de escribir una macro debes evaluar donde hacerlo. Si es una macro que solo debe afectar una hoja en particular escríbela en los objetos de Hoja, en el nombre de Hoja correspondiente. Si la macro debe afectar a todo un libro en particular escríbela en el objeto ThisWorkbook. Estas suelen ser macros que se ejecutan al abrir, cerrar o guardar el libro.
Si la macro es de tipo genérica escríbela en un Módulo.
Si quieres hacer un formulario utiliza el objeto Userform.
El Editor de VBA
La ventana inmediato sirve para escribir, ejecutar y probar un código macro rápidamente, sin tener que armar toda la macro. Por ejemplo: podemos escribir ?thisworkbook.Sheets.Count
El Editor de VBA
La macro se puede ejecutar desde:
El código fuente, posicionándonos en cualquiera de las lineas, y presionando F5. Desde la ventana Macro y dando clic en ejecutar. Asignándole acceso directo con CTRL + Una letra (no se aconseja utilizar combinaciones preestablecidas; Por eso lo que se hace es presionar Mayúsc antes de la letra de tal forma que la macro se ejecutará con Ctrl+Mayús+Letra y de esta forma no alterar las teclas de método abreviado por defecto de Excel.)
La Ficha Programador
La ficha programador permite mostrar el editor de VBA, así como la ventana de Macros.
La Definición del Código VBA
Como prácticamente todas las macros utilizan variables. Una variable es sencillamente un dato o valor que VBA guarda en memoria.
Para definir una variable utilizamos una sintaxis del tipo: Dim NombreVariable as TipoVariable
Dim: indica que estamos creando una variable NombreVariable: escribimos el nombre de nuestra variable a gusto (sin espacios) as: necesario para definir el tipo de variable TipoVariable: debemos indicar si es una variable texto, fecha, valor, etc.
La Definición del Código VBA Sub MiNombre () ' Indicamos que "Nombre" es una variable "String" (texto) Dim Nombre as String ' Le asignamos un valor a la variable (también podríamos indicarle una celda Excel) Nombre = "Memin" ' Mostramos el valor de la variable en un mensaje Msgbox Nombre End Sub