man macros - macros excel
Transcripción
man macros - macros excel
MANUAL DE MACROS EXCEL 2010 1 CONTENIDO 1-COMO GRABAR UNA MACRO------------------------------------------------------------------------------------3 2-COMO EJECUTAR UNA MACRO QUE YA EXISTE-------------------------------------------------------------5 3-COMO EDITAR UNA MACRO QUE YA HEMOS GRABADO-------------------------------------------------8 4-COMO CREAR UNA MACRO DESDE CEROS-------------------------------------------------------------------10 5-COMO ELIMINAR LINEAS VACIAS CON UNA MACRO------------------------------------------------------15 6-COMO SELECCIONAR HOJAS, RANGOS Y CELDAS CON UNA MACRO---------- -----------------------16 7-COMO ABRIR UN ARCHIVO CON UNA MACRO--------------------------------------------------------------16 8-COMO PASAR DATOS DE UNA HOJA A OTRA----------------------------------------------------------------16 9-COMO ACTIVAR, GUARDAR Y CERRAR UN LIBRO DE EXCEL----------------------------------------------17 10-COMO TRAER EL NOMBRE DE UN LIBRO, HOJA O DIRECCION DE CELDA---------------------------17 11-COMO DEFINIR UNA VARIABLE EN VISUAL BASIC FOR APLICATION PARA EXCEL ----------------17 11-COMO PADAR A UNA VARIABLE EL NOMBRE DE LA HOJA------------------------------------------ ---18 13-COMO MOSTRAR EL VALOR DE UNA VARIABLE EN UNA CELDA O EN UN TEXTBOX-------------18 2 El presente manual es una reseña sobre la elaboración de macros desde el origen, aquí aprenderemos como grabar una macro, como crear una macro desde los su inicio. COMO GRABAR UNA MACRO Para grabar una macro seguimos los siguientes pasos 1-Abrimo Excel 2010 2-Seleccionamos el menú vista 3 3-Damos clic en la lista desplegable del grupo Macros, dentro de los conceptos que nos aparecen al abrir la lista desplegable, seleccionamos Grabar Macro. 4-Una vez que demos clic en la lista desplegable en Grabar Macro aparecerá el siguiente cuadro que nos pide poner el nombre a nuestra macro. 5-Le asignamos el nombre a la macro y damos clic en aceptar 6-Intensionalmente en la celda B3 escribimos la frase “HOLA MUNDO”. 7-Una vez hecho lo anterior detenemos la macro del mismo modo que como la activamos 4 Fíjense que en donde antes decía Gramar Macro, Ahora dice Detener Macro. Hasta aquí hemos grabado nuestra primer macro. Ahora vamos a ejecutar la macro anterior, para esto vamos a borrar la frase que escribimos en la celda B3. COMO EJECUTAR UNA MACR O QUE YA EXISTE En el tema anterior vimos como grabar una macro, en este veremos como ejecutar esa macro que ya grabamos. 1-Ejecutar una macro por medio de un Botón de Comando Para realizar este paso es necesario tener agregado el comando de nuestra barra de comandos en nuestra barra de herramientas. Si nos fijamos nuestra barra de herramientas con cuenta con el comando para insertar un botón en nuestra hoja de Excel. Para poder ejecutar la macro por medio del botón es necesario contar con el comando formularios en nuestra barra de herramientas. 5 Pasos para insertar el comando formulario a nuestra barra de herramientas. Paso 1 Damos clic en la flecha que indica hacia debajo de la barra de herramientas y damos clic en Mas Comandos. Paso 2 Seleccione Todos los Comandos Paso 3 de la lista de comandos buscamos el que diga Botón (Control de Formulario) Paso 4 Una vez seleccionado el comando Botón, damos clic en Agregar 5-Una vez agregado, damos clic en Aceptar. Nuestra barra de herramientas quedara así 6 Ahora para ejecuta la macro que grabamos anteriormente con el botón de formulario, damos clic al botón y sin soltar el botón del mouse arrastramos el apuntados del mouse hasta la parte de la hoja en donde queremos poner el botón y se nos abrirá una ventana como esta. Seleccionamos la Macro2 y damos clic en Aceptar. El botón quedara así Ahora nuestro botón ya tiene asignada la macro que grabamos anteriormente, para ejecutarla solo damos clic al botón. 7 Fíjense que al presionar el botón nos ejecuta la macro y la macro tiene como acción poner la frase “HOLA MUNDO” en la celda B3. COMO EDITAR UNA MACRO QUE YA HEMOS GRABADO Existen dos formas para editar una macro la primera es por medio de la lista de macros. En la lista despegable del Grupo Macros seleccionamos Ver Macros Del recuadro que nos aparece seleccionamos la macro que queremos editar, luego damos clic en el botón Modificar Y nos aparecerá una ventana como esta. 8 De esta forma hemos entrado al editor VBA para Excel. Hasta aquí ya hemos visto como grabar una macro, asignarle la macro a un botón de formulario y como editar esa misma macro. Ahora veremos cómo crear una macro desde ceros. A diferencia de Grabar y Crear una macro, cuando nosotros la grabamos utilizamos la grabadora de Excel para que la misma escriba los códigos que conformaran dicha macros. En el caso de crear la macro, no utilizamos la grabadora de Excel, si no que nosotros mismos escribimos los códigos que conformaran dicha macro. 9 COMO CREAR UNA MACRO DESDE CEROS Una vez estando en la pantalla de Excel presionamos la combinación de teclas ALT + F11 Para entrar a la pantalla de VBA (Visual Basic for Aplication) 10 Luego insertamos un Módulo (Los módulos son los archivos en donde vamos a editar los códigos de las macros) Nos aparecerá una pantalla como esta Aquí es donde vamos a escribir nuestra primer Macro 11 En la Imagen anterior escribimos nuestra primer macro, aunque no tiene código de acción. Todas las macros de Excel comienzan con las Instrucción Sub después ponemos el nombre de la macro luego abrimos y cerramos paréntesis, al dar Enter automáticamente se pune una segunda línea con las instrucción End Sub Ejemplos: Sub My_Macro() End Sub Importante: Los nombre de las macros no deben llevar espacio para ellos sustituimos el espacio por un guion bajo My_Macro Hasta el momento la Macro (My_Macro()) no tiene código de acción es decir al ejecutarla no hará nada ya que no hay líneas de Instrucciones entre Sub y End sub. Ahora le pondromos una orden de acción a la macro para que la ejecute Sub My_Macro() MsgBox(“HOLA MUNDO”) End Sub La orden que le acabamos de escribir a la macro es que al ejecutarla nos mande una caja de texto con las línea “HOLA MUNDO”. Para Ejecutar la macro desde la pantalla de VBA lo hacemos desde este comando. 12 Que se encuentra en la barra de herramientas de la misma pantalla. Veamos el resultado de su ejecución. Ahora bien si deseamos que la macro realice un cambio a la hoja de Excel Sub My_Macro() Range(“A2”).Value = 5+8 End Sub Veamos el resultado al ejecutar la macro 13 Si nos fijamos a la macro le estamos indicando que en el Rango A2 ponga la sumatoria de 5 + 8 y la misma es igual a 13. Hasta aquí ya hemos visto como crear una macro desde ceros con el editor de Visual Basic para Aplicaciones de Excel. A continuación veremos algunos ejemplos de macros más complejas no olvidemos que toda instrucción que vas entre el Sub y End Sub la macro va a ejecutar dichas instrucciones. COMO ELIMINAR LINEAS VACIAS EN UNA LISTA DE CELDAS Sub Elimina_Lineas_Vacias() Range(“A2”).Select For i = 1 to 20 If ActiveCell.Value = “” Then ActiveCell.Row.Delete ActiveCell.Offset(-1,0).Select End If ActiveCell.Offset(1,0).Select Next i Con la macro anterior eliminamos las líneas vacías que hay entre la celda A2 a la Celda A20 14 Lista antes de ejecutar la macro Lista después de ejecutar la macro COMO SELECCIONAR HOJAS, RANGOS Y CELDAS CON UNA MACRO Para seleccionar una hoja lo hacemos con la instrucción Sheets(“nombre_de_la_hoja”).Select Para seleccionar una Celda Range(“A1”).Select Cells(1,2).Select (en donde el 1 representa el número de línea y el 2 representa el número de columna). Para seleccionar un rango de celdas Range(“A1:B20”).Select Range(Cells(1,1),Cells(20,2)).Select 15 COMO ABRIR UN ARCHIVO CON UNA MACRO Para abrir un archivo lo hacemos con la instrucción WorkBooks.Open “C:\My_Archivo.xlsx”, UpdateLink = 3 Valores para UpdateLinks 0 = Las referencias externas no se actualizan 3 = Las referencias externas se actualizan automáticamente COMO PASAR DATOS DE UNA HOJA A OTRA CON MACRO Para pasar datos de una hoja a otra lo podemos hacer de dos maneras, la de copiar y pegar y la del método (destination). Pasar datos por el método de copiar y pegar. Sheets(“Hoja1”).Select Range(“A1:F100”).Copy Sheets(“Hoja2”).Select Range(“A2”).PasteSpecial xlPasteValues Application.CutCopyMode = False Con el código anterior pasamos los datos del rango a2 a la f100 de la hoja1 y los pegamos en la celda a2 de la hoja2. En este ejemplo estamos pasando solo los valores de celda, son tomar en cuenta las formulas, formatos o bordes. Pasar datos por el método (destination). Este método es más sencillo solo que nos menos opciones de pegado. Range(“a2:f100”).Copy Destination: WorkSheets(“Hoja2”).Range(“a2”) Estos son algunos ejemplos de cómo podemos pasar datos de una hoja a otra anqué existen otros, estos son los más usuales. 16 COMO ACTIVAR, GUARDAR Y CERRAR UN ARCHIVO DE EXCEL. Guardar el libro activo ActiveWorkBook.Save ThisWorkBook.Save Cerrar el libro activo ActiveWorkBook.Close ThisWorkBook.Close Activar Otro Libro que tengamos abierto Windows(“Nombre_del_otro_libro.xlsx”).Activate COMO TRAER EL NOMBRE DEL ARCHIVO, HOJA O DIRECCION DE CELDA Nombre del Archivo: ThisWorkBook.Name Nombre de la Hoja: ActiveSheet.Name Direction de Celda: ActiveCell.Address COMO DEFINIR UNA VARIABLE EN VISUAL BASIC FOR APLICATION PARA EXCEL Para definir una variable primero necesitamos saber qué tipo de variable vamos a utilizar ya que existen varios tipos según la necesidad de la misma. En este caso mencionare 5 tipos de variable principales y como las definimos. 1-Número enteros Dim x as Integer 2-Números con decimales Dim x As Double 3-Cadenas de texto Dim x as String 4-Variables lógicas Dim x as Boolean 17 5-Variables de fecha Dim x as Date COMO PASAR A UNA VARIABLE EL NOMBRE DE UNA HOJA Dim hja As String hja = ActiveSheet.Name Con estas líneas de código, le hemos pasado el nombre de la hoja a la variable hja, es decir si nosotros seleccionamos diferentes hojas con diferentes nombres la variable ira tomando el nombre de cada hoja activa. Por ejemplos para seleccionar una hoja en vez de poner el nombre de la hoja pondremos la variable que contiene dicho nombre. Sheets(“hoja1”).Select lo sustituimos por Sheets(hja).Select COM MOSTRAR EL VALOR DE UNA VARIABLE EN UNA CELDA O EN TEXTBOX Para mostrar el valor de una variable lo podemos hacer de dos maneras. 1-Mostrarlo en una caja de texto. 2-Mostrarlo en una celda. Mostrar el valor de una variable en una caja de texto. Tomando en cuenta la variable del tema anterior hja = ActiveSheet.Name MsgBox(“El nombre de la hoja es “ & hja & “”) Mostrar el valor de la variable en la celda A2 Range(“a2”).Value = hja 18 19