Académique Documents
Professionnel Documents
Culture Documents
Si utilizas Excel frecuentemente es posible que en alguna ocasin te hayas encontrado ejecutando una
misma serie de acciones una y otra vez. Esas acciones que haces repetidas veces se podran automatizar
con una macro.
Una macro es un conjunto de comandos que se almacena en un lugar especial de Excel de manera que
estn siempre disponibles cuando los necesites ejecutar.
Por ejemplo, si todas las maanas creas un reporte de ventas y en ese reporte siempre das el mismo
formato a los textos, se podra crear una macro para que lo haga automticamente por ti. Las macros se
utilizan principalmente para eliminar la necesidad de repetir los pasos de aquellas tareas que realizas
una y otra vez.
Un lenguaje de programacin
Las macros se escriben en un lenguaje de computadora especial que es conocido como Visual Basic for
Applications (VBA). Este lenguaje permite acceder a prcticamente todas las funcionalidades de Excel y
con ello tambin ampliar la funcionalidad del programa.
Para qu sirve una macro en Excel? Una macro nos ayuda a automatizar aquellas tareas que hacemos
repetidamente. Una macro es una serie de instrucciones que son guardadas dentro de un archivo de
Excel para poder ser ejecutadas cuando lo necesitemos.
Automatizacin de tareas
De la misma manera las macros nos ayudan a eliminar esas tareas repetitivas de nuestro trabajo
cotidiano al permitirnos utilizar mejor nuestro tiempo en el anlisis de los datos y en la toma de
decisiones.
Las macros son escritas en un lenguaje de computadora conocido como VBA por sus siglas en ingls
(Visual Basic for Applications). Como cualquier otro lenguaje de computadora debemos aprender a
utilizar los comandos que nos ayudarn a indicar a Excel lo que deseamos hacer con nuestros datos.
Aprender el lenguaje VBA no es nada complicado y se puede lograr fcilmente. Lo que toma un poco ms
de tiempo es pulir nuestras habilidades de programacin. Lo que quiero decir con esto es que para ser
un buen programador de macros debes dedicar tiempo en resolver mltiples problemas en donde
puedas llevar al lmite el lenguaje VBA.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 3
Las macros se crean con el Editor de Visual Basic el cual nos permitir introducir el cdigo con las
instrucciones que sern ejecutadas por la macro.
Existe otro mtodo que es utilizar la Grabadora de macros la cual ir grabando todas las acciones que
realicemos en Excel hasta que detengamos la grabacin. Una vez grabada la macro podremos reproducir
de nuevo las acciones con tan solo un clic.
Ahora que ya sabes para qu sirve una macro en Excel puedes dar los primeros pasos en este camino
utilizando el tutorial Introduccin a las macros.
Si quieres escribir una nueva macro o ejecutar una macro previamente creada, entonces debes habilitar
la ficha Programador dentro de la cinta de opciones. Para mostrar esta ficha sigue los siguientes pasos.
Haz clic en la ficha Archivo y elige la seccin Opciones. Se mostrar el cuadro de dilogo Opciones de Excel
donde debers seleccionar la opcin Personalizar cinta de opciones.
El grupo Cdigo tienes los comandos necesarios para iniciar el Editor de Visual Basic donde se puede
escribir directamente cdigo VBA. Tambin nos permitir ver la lista de macros disponibles para poder
ejecutarlas o eliminarlas. Y no podramos olvidar mencionar que en este grupo se encuentra el
comando Grabar macro el cual nos permite crear una macro sin necesidad de saber sobre programacin
en VBA.
El grupo Controles incluye funcionalidad para agregar controles especiales a las hojas de Excel como los
controles de formulario que son botones, casillas de verificacin, botones de opcin entre otros ms que
sern de gran utilidad para ampliar la funcionalidad de Excel.
El grupo XML permite importar datos de un archivo XML as como opciones tiles para codificar archivos
XML. Finalmente el grupo Modificar solamente contiene el comando Panel de documentos.
Aunque pueden parecer intimidantes los comandos de la ficha Programador con el paso del tiempo te
irs familiarizando poco a poco con cada uno de ellos.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 5
La grabadora de macros
Puedes crear una macro utilizando el lenguaje de programacin VBA, pero el mtodo ms sencillo es
utilizar la grabadora de macros que guardar todos los pasos realizados para ejecutarlos
posteriormente.
La grabadora de macros almacena cada accin que se realiza en Excel, por eso es conveniente planear
con antelacin los pasos a seguir de manera que no se realicen acciones innecesarias mientras se realiza
la grabacin. Para utilizar la grabadora de macros debes ir a la ficha Programador y seleccionar el
comando Grabar macro.
En el cuadro de texto Nombre de la macro debers colocar el nombre que identificar de manera nica a
la macro que estamos por crear. De manera opcional puedes asignar un mtodo abreviado de teclado el
cual permitir ejecutar la macro con la combinacin de teclas especificadas.
La lista de opciones Guardar macro en permite seleccionar la ubicacin donde se almacenar la macro.
Libro nuevo. La macro se guarda en un libro nuevo y que pueden ser ejecutadas en cualquier
libro creado durante la sesin actual de Excel.
Libro de macros personal. Esta opcin permite utilizar la macro en cualquier momento sin
importar el libro de Excel que se est utilizando.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 6
Tambin puedes colocar una Descripcin para la macro que vas a crear. Finalmente debes pulsar el
botn Aceptar para iniciar con la grabacin de la macro. Al terminar de ejecutar las acciones planeadas
debers pulsar el botn Detener grabacin para completar la macro.
En esta ocasin mostrar cmo crear una macro en Excel utilizando la grabadora de macros. La
macro ser un ejemplo muy sencillo pero permitir ilustrar el proceso bsico de creacin.
Voy a crear una macro que siempre introduzca el nombre de tres departamentos de una
empresa y posteriormente aplique un formato especial al texto. Para iniciar la grabacin debes ir
al comando Grabar macroque se encuentra en la ficha Programador lo cual mostrar el siguiente
cuadro de dilogo.
Al terminar los pasos se pulsa el comando Detener grabacin y la macro habr quedado
guardada. Para ejecutar la macro recin guardada seleccionar una nueva hoja de Excel y
seleccionar el comando Macros.
Al pulsar el comando Macros se mostrar la lista de todas las macros existentes y de las cuales
podrs elegir la ms conveniente. Al hacer clic sobre el comando Ejecutar se realizarn todas las
acciones almacenadas en la macro y obtendrs el resultado esperado. Por supuesto que si
utilizas el mtodo abreviado de teclado de la macro entonces se omitir este ltimo cuadro de
dilogo.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 8
Una manera muy interesante de descubrir y aprender ms sobre cdigo VBA es analizar el
cdigo generado por la Grabadora de macros. Para este ejemplo grabaremos una macro muy
sencilla que solamente cambie el color de la fuente de la celda actual.
Para comenzar debemos ir a la ficha Programador y pulsar el comando Grabar macro lo cual
mostrar el cuadro de dilogo donde asignar un nombre a la macro que estoy por crear.
Pulsa el botn Aceptar y se comenzarn a grabar todas las acciones, as que debes actuar con
cuidado porque se grabar absolutamente todo. Para la macro que estoy grabando solo har lo
siguiente: ir a la ficha Inicio y pulsar el comando Color de fuente y seleccionar el
color rojo para la celda activa.
Una vez hecho esto debo detener la grabacin de la macro y una alternativa para hacerlo es
pulsar el icono que se muestra en la barra de estado.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 9
Ahora que ya hemos generado la macro, pulsa el botn Macros que se encuentra en el grupo
Cdigo de la ficha Programador. Se mostrar el cuadro de dilogo Macro que enlista todas las
macros que hemos creado.
Selecciona la macro recin creada y pulsa el botn Modificar. Esto abrir el Editor de Visual Basic
y mostrar el cdigo generado para la macro.
Observando este cdigo podemos aprender varias cosas. Para empezar observamos que el
objeto Selection tiene una propiedad llamada Font que es la que hace referencia a la fuente de
la celda o rango seleccionado. A su vez, la propiedad Font tiene otra propiedad llamada Color
que es precisamente la que define el color rojo de nuestra celda.
Aunque este ha sido un ejercicio muy sencillo, cuando tengas curiosidad o duda sobre qu
objetos utilizar al programar en VBA considera utilizar la Grabadora de macros para darte una
idea del camino a seguir.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 10
La seguridad es un tema importante al hablar de macros en Excel. Si abres algn archivo que contenga
una macro maliciosa puedes causar algn tipo de dao al equipo. De manera predeterminada Excel no
permite ejecutar macros automticamente.
Sin embargo, si ests creando tus propias macros y deseas remover esta proteccin porque sabes que no
existe cdigo malicioso, entonces puedes modificar la configuracin para habilitar todas las macros.
Para hacerlo debes seguir los siguientes pasos.
Haz clic en la ficha Archivo y posteriormente en Opciones. Dentro del cuadro de dilogo mostrado
selecciona la opcin Centro de confianza y posteriormente pulsa el botn Configuracin del centro de
confianza. Se mostrar el cuadro de dilogo Centro de confianza.
Deshabilitar todas las macros sin notificacin. Deshabilita las macros y permite ejecutar
solamente aquellas que estn almacenadas en un lugar confiable. Los lugares confiables se
configuran en la seccin Ubicaciones de confianza del mismo cuadro de dilogo.
Deshabilitar todas las macros con notificacin. Muestra una alerta de seguridad advirtiendo
sobre la intencin de ejecutar una macro de manera que se pueda decidir si se desea ejecutar.
Esta es la opcin predeterminada de Excel.
Deshabilitar todas las macros excepto las firmadas digitalmente. Solamente se podrn ejecutar
las macros que estn firmadas digitalmente.
Habilitar todas las macros. Permite ejecutar todas las macros sin enviar alguna notificacin al
usuario. Esta opcin es til si se ejecutan mltiples macros totalmente confiables. Esta opcin es
la que corre los mayores riesgos al ejecutar una macro de una fuente desconocida.
Una vez seleccionada la opcin deseada se debe pulsar el botn Aceptar para hacer los cambios
permanentes.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 11
Ejercicios
Para escribir macros, necesitar acceso a la barra de herramientas Programador en la cinta superior. sta
est oculta por defecto. Para activarla, vaya a Archivo->Opciones->Personalizar Cinta y marque la casilla
junto a Programador.
Las macros estn deshabilitadas por defecto en Excel. Es as para protegerle de macros maliciosas que se
ejecutan automticamente en ficheros Excel descargados.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 12
Para usar macros, tendr que primero habilitarlas desde el Centro de Confianza. Para hacer esto vaya a
Archivo -> Opciones -> Centro de Confianza. Haga click en el botn Ajustes Centro de Confianza en este
men.
En esta nueva ventana, vaya a Ajustes Macro y seleccione el botn de radio Habilitar todas las macros.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 13
Haga click en OK. Ahora puede empezar a usar macros en sus hojas de clculo Excel.
En este tutorial, crearemos una macro muy simple para cambiar el color, tamao y negrita del texto.
En su hoja de clculo, escriba algn texto en una de las celdas. Ms tarde grabaremos una macro para
cambiar el formato de este texto.
Ahora que su hoja de clculo est lista, podemos empezar a crear la macro.
Una ventana emergente le preguntar el nombre, el atajo, una localizacin para guardarla y la
descripcin de la macro.
Escriba lo que quiera aqu. Le ayudar el ser descriptivo con los ttulos de sus macros. Puede acabar usando
docenas de macros en una hoja de clculo grande. Ser capaz de encontrar rpidamente macros
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 14
individuales por el nombre le ahorrar horas de frustracin ms tarde. Tambin es una buena prctica
aadir una descripcin para recordar lo que la macro hace realmente.
Teclas de Atajo: Las teclas de atajo le proporcionan un rpido acceso a la macro. Usar un atajo
personalizado est muy recomendado despus de todo, va a usar las macros para ahorrar
tiempo. Un montn de funciones Excel por defecto ya tienen asignadas atajos de la forma CTRL +
Letra/Nmero. Para evitar conflictos con atajos ya existentes, aada al menos dos teclas al atajo
algo como CTRL + SHIFT + A, o CTRL + A + 1
Guardar Macro en: En este men desplegable, puede decidir dnde guardar la macro. Si elige Este
Libro la macro estar disponible slo para su uso en ese libro solamente. Eligiendo Nuevo libro,
como habr adivinado, guardar la macro en un nuevo libro. La opcin ms potente aqu es
guardar la macro en Libro Macro Personal. Las macros almacenadas en este libro estn
disponibles en todos los libros. Piense en ello como un repositorio central para cada macro que
crea. El fichero de macros del libro actual estar oculto en la carpeta Windows AppData, pero se
cargar automticamente cuando empiece Excel, dndole acceso completo a todas las macros.
Para el propsito de este tutorial, le daremos a nuestra macro el atajo CTRL + SHIFT + A y la guardaremos
dentro del mismo libro.
Una vez que haya introducido todos los detalles requeridos, haga click en OK. Ahora su macro se est
grabando.
Seleccione la celda donde ha introducido su texto. Cambie a la pestaa Home y cambie su color a rojo,
tamao de fuente 18, y peso de la fuente a negrita.
Cuando haya acabado, haga click en el botn Parar grabacin en la pestaa Programador o pulse el
pequeo cuadrado al final de la hoja de clculo junto a la etiqueta Ready.
Probar la Macro
Aada unos pocos ms bloques de texto a su hoja de clculo, en cada celda. Puede que tenga que
cambiar el formato por defecto otra vez a fuente negra, tamao de fuente 11 y texto normal.
Una vez que haya aadido el texto, simplemente seleccione cualquier celda y pulse el atajo de su macro
(CTRL + SHIFT + A). El formato cambiar inmediatamente a fuente de tamao 18 negrita y de color rojo.
Puede aplicarlo a cada celda, o aplicarlo a mltiples celdas seleccionndolas a la vez.
Los cambios de formato que de otra forma le hubieran llevado varios clicks ahora puede hacerlos con un
sola pulsacin.
Esta es una de las macros ms bsicas que puede crear. Como puede imaginar, las macros complejas
pueden ser creadas para realizar tareas muy complicadas. Si trabaja con Excel 2010, tenga en
consideracin este curso online Ms Excel 2010 en Espaol para aprender todos los trucos de esta
herramienta..
Le fue til este tutorial? Nos encantara conocer su forma de pensar y opinin! Comprtala con
nosotros en los comentarios a continuacin.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 16
Para comenzar a usar Macros, se debe tener en cuenta los siguientes 5 ejemplos donde se tiene lo
necesario para entender el funcionamiento de Macros de Excel. Todos los ejercicios de Macros en Excel
mostrados a continuacin cuentan con un ejemplo que se puede descargar y utilizar.
Se ejecuto la Macros 2
El siguiente ejemplo ejecuta una macro por cada operacin bsica: suma, resta, multiplicacin y divisin
El siguiente ejemplo muestra una base de datos y la macros copia el filtro de los datos de la base y los
copia en un nuevo libro
Como se mencion al inicio, una vez visto stos ejemplos, el usuario ya puede entender el
funcionamiento de una macros y su utilidad al momento de realizar operaciones repetitivas.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 20
Excel es una potente herramienta de hoja de clculo, diseada para lo que su nombre indica calcular,
pero siempre, lo que ms tiempo nos roba, es la introduccin de datos y el diseo de los mismo, es
decir: cmo los mostramos finalmente.
Uno de los principales enemigos con los que tendremos que batallar es la importacin de datos desde
otro programa. Veamos un ejemplo: trabajamos con una aplicacin en la que una serie de vendedores
nos van indicando el nmero de ventas que realizan, y al finalizar el mes, tenemos que pasarle a nuestro
superior una tabla informativa, pero la aplicacin que usan los vendedores no es Excel, aunque s nos
permite exportar a dicho formato.
La maravillosa aplicacin que utilizan los comerciales, vendedores, etc. nos extrae esta tabla, que como
veris, slo nos muestra los datos, sin ningn tipo de formato, y esto, por as decirlo: no es presentable a
nadie.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 21
Ms bonito, visual, corrigiendo los formatos de fechas, y aadiendo un promedio de ventas/da en cada
vendedor, con un formato condicional para que muestre los semforos en relacin a las ventas entre
ellos (Verde: ms ventas; Rojo: menos ventas; mbar: la media). Para que este promedio salga
correctamente, hemos tenido que eliminar los 0 en los fines de semana (das en los que no hay servicio
de ventas).
Todas estas acciones, que hacemos mes a mes, realmente no nos comen mucho tiempo, no ms de 5
minutos salvo que nos lo pidan diario o semanal, tengamos varios grupos de vendedores Estoy seguro
de que este pequeo tutorial te ser de mucha ayuda para tus tareas.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 23
Y ahora, a la izquierda, veremos varias opciones la que nos interesa: Grabar Macro.
Es cierto que hay mucha gente que programa sus macros para tareas ms complejas, pero este tutorial
no es para esa gente es para todo el mundo que empieza con excel o que no tiene muchas tablas en el
asunto. La mejor manera de empezar es grabando una Macro.
Antes de grabar la Macro, vamos a preparar un poco nuestra tabla simplemente vamos a bajar los
datos, salvo los ttulos, dejando 3 filas vacas encima de los datos de los vendedores. De la siguiente
forma:
Motivo? Simple las semanas comienzan en lunes, y el primer da del que tenemos datos es jueves, as
que dejamos espacio para esos das. En este mes no nos servir para nada, pero s para futuros meses, ya
le dejamos espacio. En el futuro, slo tenemos que pegar los datos empezando en el da que sea
necesario.
Vamos a ponerle el nombre. Para esto, Office es un poco especialito, dado que:
No puedes utilizar un nombre de macro que tambin sea una referencia de celda; de lo contrario
puede aparecer un mensaje indicando que el nombre de la macro no es vlido.
Llamemos a nuestra macro: Estilo_informe, y le indicaremos que nos lo guarde en Libro de macros
personal, as lo tendremos disponible en cualquier hoja de Excel que abramos.
Desde el momento en que pulsemos el botn Aceptar, Excel comenzar a grabar todas nuestras
acciones, que sern las que programen nuestra macro, as que vayamos con cuidado para no tener que
repetir acciones, o borrar la macro.
1. Le damos formato a la fecha, para que se muestre como ms te guste (si indicas que te muestre
el nombre, podrs identificar rpidamente los fines de semana).
2. Coloreamos la tabla a nuestro gusto. Yo diferencio das de la semana y fin de semana, para ver
grupos de das ms cmodamente. Tambin le pongo las celdas que no uso en color blanco para
darle un aspecto ms limpio pijadas personales.
3. Quitamos los 0 de los fines de semana para que el promedio nos salga correctamente.
4. Aadimos una nueva tablita, debajo de la grande, que sea resumen del nmero de ventas y el
promedio de ventas/da de cada vendedor. A la derecha de la tablita aadimos los totales. Como
el mes que hemos escogido es de 31 das, en el futuro no tendremos que mover la tabla, dado
que no habr meses de ms de 31 das.
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 25
Ahora, cada vez que queramos dar forma a nuestra tabla extrada del programa de los vendedores, lo
nico que tendremos que hacer ser dejar X filas vacas encima de los datos en relacin al da de la
semana con que empiece el mes, y llamar a nuestra macro para que haga su trabajo. Nos vamos a la
Pestaa Programador y le damos al botn de Macros, y escojemos la nuestra de la lista. Puede que
tengas que desplegar el men de Macros en:.
Si nos damos cuenta, lo nico que hemos hecho a mayores de la preparacin de nuestro informe ha sido
grabar una Macro que ha guardado todas las acciones que hemos hecho.
Cada uno le encontrar una utilidad diferente, y programar una macro diferente dependiendo de sus
necesidades, pero desde luego todos coincidirn en que es una herramienta imprescindible para el
ahorro de tiempo en las tareas ms rutinarias.
Podemos programar macros para que nos creen grficos obteniendo datos de un rango
determinado.
Podemos asignar una macro a un botn o una imagen para no tener que buscarla en la Pestaa
Programador.
Podemos
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 26
Podemos hacer lo que todos queremos hacer hacer ms en menos tiempo, e invertir el restante en
cosas ms placenteras o productivas al fin y al cabo, la procrastinacin est ah para hacer uso de ella
de vez en cuando, no va a ser todo trabajar o estudiar, no?
Ejemplos de macros
En esta pgina iremos insertando macros y cdigos que pueden servirle de ayuda.
End If
End Sub
Sub guardar_archivo()
Dim stArchivo
stArchivo = Application.GetOpenFilename(Hoja de Excel , *.xls*, _
, Seleccione archivo )
End Sub
Sub guardar_archivo_otro()
con esta macro guardamos el archivo con la fecha y hora actual y formato csv
Dim nombre, nombrearch, hoja, ruta
nombre = Format(Now, dd-mm-yy hh.mm.ss)
ruta = ActiveWorkbook.Path
nombrearch = ActiveWorkbook.Name
hoja = ActiveSheet.Name
ActiveWorkbook.SaveAs Filename:=ruta & \ & hoja & nombre & .csv, FileFormat:=xlCSV
ActiveSheet.SaveAs ruta & \ & nombrearch & nombre & .xlsm
End Sub
Si queremos que se quiera copiar los rangos de la hoja activa de una hoja a otra ejecutariamos la macro
siguiente:
Option Explicit
Dim f, c
ActiveCell.CurrentRegion.Select
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 27
f = ActiveCell.Row
c = ActiveCell.Column
Selection.Copy
Sheets(Hoja2).Activate
Cells(f, c).Activate
ActiveSheet.Paste
End Sub
ActiveWorkbook.Close
ActiveWorkbook.Close Savechanges:=True
ActiveWorkbook.Close(True)
ActiveWorkbook.Close(False)
ActiveWorkbook.Close Savechanges:=False
Sub ultima_hoja()
Sheets(Sheets.Count).Select
End Sub
Sub primera_hoja()
Sheets(1).Select
End Sub
Sub CopiaColumnas()
Dim mirango As Range
Dim col As Range
Dim NuevaHoja As Worksheet
Dim i As Integer
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 28
Worksheets.Add
i=0
For Each col In mirango.Columns
col.Copy ActiveSheet.Range(A1).Offset(, i)
i=i+1
Next col
End Sub
Dim L As Long
L=1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = INDICE
End With
L=L+1
With cHoja
End With
End If
Next cHoja
End Sub
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 29
Sub ultimafila()
variable donde almacenamos el nmero de fila
Dim ultima As Long
End Sub
intLastRow = Columns(A:A).Range(A65536).End(xlUp).Row
For r = intLastRow To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Selection.SpecialCells(xlCellTypeLastCell).Select
intNumDeFilas = Selection.Row
For i = 1 To intNumDeFilas
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
OFIMATICA II | ARQ. VALERY OCHOA |AGOSTO 2017 30
End If
Next
Do
Set rngString = Cells.Find(Aglis, MatchCase:=False, _
LookAt:=xlPart, LookIn:=xlValues)
If Not rngString Is Nothing Then
rngString.EntireRow.Delete
End If
Loop Until rngString Is Nothing