Ejercicios Macros:
Objetivo de una Macro:
Automatizar y acelerar el trabajo que realizamos con una hoja de cálculo de Excel.
En un libro nuevo de Excel diseña la siguiente tabla:
Presiona la siguiente combinación de celdas:
En la ventana que aparece:
Selecciona Herramientas --> Macros y crea una nueva que se llame Copiar,
Escribe el siguiente código en la macro.
Prueba la macro:
Para ello regresa a la hoja de Excel y selecciona la celda A5.
Posiciona el cursor en la macro antes de Sub Copiar().
Presiona F8 una y otra vez.
Observa y analiza los resultados, así como el funcionamiento de la Macro.
No olvides guardar la macro como libro de Excel habilitado para Macros (xlsm).
Seleccionar una celda o rango de celdas:
Para seleccionar una hoja de cálculo activa se debe hacer de la siguiente manera:
Para seleccionar la celda D5 en la hoja de cálculo activa se puede hacer:
ActiveSheet.Cells(5, 4).Select
o bien:
ActiveSheet.Range("D5").Select
o bien, celdas discontinuas:
ActiveSheet.Range("A5,B2,C4").Select
Seleccionar una celda en otra hoja de cálculo del mismo libro:
Para seleccionar la celda E6 en otra hoja de cálculo del mismo libro:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
o bien:
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
Para seleccionar una celda en una hoja de cálculo de un libro diferente:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
o bien:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
Seleccionar un rango de celdas en la hoja de cálculo activa
Para seleccionar el rango C2:D10 en la hoja de cálculo activa:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
o bien:
ActiveSheet.Range("C2:D10").Select
o
ActiveSheet.Range("C2", "D10").Select
Para más ejemplos, favor de consultar la siguiente liga:
Selección de celdas y rangos mediante procedimientos de Visual Basic
Descarga el libro Macro Papelería3.xlsm que está al final de está página, crea la macro copiar_clave y escribe la siguiente instrucción:
Observa el resultado.
Insertar columnas
Para insertar columnas delante de una columna dada utilizamos el siguiente código, en una macro nueva llamada Insertar_columna:
Range("B:B").Columns.Insert
ó
Range("B2").EntireColumn.Insert
Para insertar varias columnas:
Range("B:D").Columns.Insert
Cortar columnas
Para cortar columnas e insertarlas en otra parte de la hoja podemos utilizar:
Range("B:C").Columns.Cut
Columns("G:G").Insert Shift:=xlToRight
Seleccionar una celda y eliminar su contenido:
ActiveSheet.Range("B2").ClearContents
Eliminar contenido de una celda seleccionada:
ActiveCell.ClearContents
Podemos revisar más acciones que se pueden realizar con Macros, en la siguiente liga:
If, else... If
Ingresar información de acurdo a una condición dada:
Implementar un ciclo dentro de la Macro
El mismo programa se repite varias veces, con la aplicación del ciclo For
Cambio de color de una celda
Para cambiar de color una celda tenemos:
ActiveCell.Interior.ColorIndex=14
Cuando se trata de un rango:
Range("A1:A5").Interior.Color=RGB(200,160,27)
Aplicando la Macro a nuestro ejemplo: