You are on page 1of 20

EXCEL AVANZADO

Macros en Ms Excel 2010


Una Macro es una serie de pasos o instrucciones que se almacenan y que pueden ser ejecutadas
automticamente con una simple pulsacin de teclas.

La palabra macro es una abreviatura de la palabra macroinstruccin que viene a ser lo mismo que hemos
definido. Por ejemplo, todos los das empleo frecuentemente en mis celdas los mismos pasos: Tamao de
Fuente (Tamao de la letra), Negrita, Fuente (Tipo de letra) y Color de Fuente (Color de Letra), para no estar
repitiendo estos pasos los puedo almacenar en una macro y cuando ejecute la macro los pasos antes
mencionados se ejecutarn las veces que yo lo desee.

Una macro en s es un pequeo programa en cdigo Visual Basic que se graba con un nombre y que podemos
invocar en cualquier momento.

Tambin podemos asignar a una macro una combinacin de teclas (como por ejemplo Control + m) para
invocarla. La ejecucin de una macro es muy rpida, aunque depende de la cantidad de instrucciones que
debe realizar.

Cmo se crea una Macro?


Utilizando la Grabadora de Macros

Programando con Visual Basic para Aplicaciones (VBA).

Qu es la Grabadora de Macros
Es una herramienta que convierte las acciones en Excel en cdigo VBA, sin embargo:

Es adecuada solamente para macros simples.

No puede generar cdigos que realicen bucles, asignar variables, ejecutar declaraciones
condicionales, mostrar cuadros de dilogo, etc.

Creacin de una Macro


A continuacin te muestro como grabar una macro y ejecutarla:

a. Trasldate a la celda A1 y escribe tu Nombre. Por ejemplo, Pablo y presiona Enter.

b. Regrsate a la celda A1, porque cuando presionaste Enter baj


de celda.

c. Da clic en la ficha Programador. En el grupo de opciones


Cdigo, haz clic en la opcin Grabar macro

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 1


EXCEL AVANZADO

1. Se activar el cuadro de dilogo Grabar macro, el cual permitir darle el nombre a la macro y cual
ser el mtodo abreviado para ejecutarla.

El mtodo Abreviado se refiere con que letra


se va activar la macro, obviamente se
activar con la tecla Control y la letra que
usted quiera, de preferencia en minscula,
porque si activa las maysculas la macro se
activar presionando la tecla Shift + Control
+ la letra que usted indic.

2. Donde dice Nombre de la macro ya


aparece el nombre que llevar la macro en
este caso Macro1. Si desea cambiar el
nombre escriba uno nuevo, pero yo le recomiendo que as lo deje.

3. En la opcin Mtodo Abreviado aparece como se activar con la tecla Control(CTRL) + la letra
que usted indica, d clic en el cuadrito y ponga una letra, por ejemplo ponga la letra a (en
minsculas). La macro se activar cuando est lista con la tecla Control + a

4. La opcin Guardar macro en permite especificar dnde guardar la macro que se graba. Por defecto,
Excel almacena la macro grabada en un mdulo del libro activo.

5. D clic en el Botn Aceptar. Excel empezar a grabar todos los pasos en la Macro1, y la opcin
Grabar macro, se llamar ahora Detener grabacin. Lo utilizaremos cuando terminemos de
indicarle los pasos para detener la grabacin.

6. De la ficha Inicio, aplique los siguientes formatos:

Tipo de Fuente: Verdana

Negrita

Tamao: 12

Color de Fuente: Azul

Recuerde que todos estos pasos estn siendo almacenados en la macro que estamos grabando y
tambin recuerde que estos pasos se estn efectuando en la celda A1.

7. De la Ficha Programador, haga clic en la opcin Detener Grabacin.

Listo, Excel guard los pasos en la Macro1 que se activar presionado la tecla Control + a

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 2


EXCEL AVANZADO

Ejecucin de la Macro

1. Escribe otro nombre en la celda A3 y presiona Enter, despus regresa a la celda A3.

2. Presiona la tecla Control + a. Excel efectuar todos los pasos grabados sobre la celda A3, esto quiere
decir que el nombre que est en la celda A3 tendr las caractersticas del que est en la celda A1. Tipo
de letra, tamao, negrita y el color que indicaste al grabar la macro. Ejemplo:

Presione
Control + a

Paso 1: Escriba en A3 Paso 2: Ejecute macro Resultado

Nota. Cada vez que presiones Control + a, Excel ejecutar la macro y efectuar los pasos en la
celda que te encuentres. Puedes grabar todas las macros que desees.

Ejercicios:

Genera las siguientes Macros:

Graba una Macro que se active con Control + b y que esta macro permita seleccionar una lista de datos
(con Control + *) y asigne los siguientes formatos: Negrita, Color de Fuente: Verde, Color de Relleno:
Amarillo y Bordes a todas las celdas seleccionadas.

1. Graba una Macro que se active con Control + c y que esta macro permita borrar el contendido de
toda la hoja de clculo.

2. Graba una Macro que se active con Control + d y que esta macro permita ocultar las lneas de
divisin de la hoja de clculo y ampliar la visualizacin de la misma en 150% (zoom).

Grabar libro con macros

Para grabar un libro que contiene macros, primero debemos establecer el nivel de seguridad de manera que
estn habilitadas temporalmente todas las macros, haga lo siguiente:

1. En la ficha Programador, haga clic en la opcin Seguridad de macros

2. Seleccione el botn de opcin habilitar todas las macros (no recomendado; puede
ejecutarse cdigo posiblemente peligroso), luego haga clic en el botn Aceptar.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 3


EXCEL AVANZADO

3. Ahora debemos guardar el libro, haga Clic en el botn Guardar

4. En la parte inferior de la ventana Guardar como, en el cuadro Guardar como tipo,


seleccione Libro de Excel habilitado para macros (*.xlsm)

Observando los Cdigos de una Macro de Excel

Para observar los cdigos de una macro debemos de seguir los


siguientes pasos:

1. Presione la tecla Alt + la tecla de funcin F11 (Alt +


F11). Excel nos traslada al Editor de Visual Basic.
Tambin puede acceder desde la Ficha Programador,
opcin Visual Basic.

2. Active los siguientes cuadros o ventanas:

o De clic en el Men Ver y elija la opcin


Explorador de Proyectos

o De clic en el Men ver y elija la opcin


Ventana Propiedades

Estas dos opciones deben de estar siempre activadas ya que de ah depende todo lo que vayamos a
hacer.

3. Del cuadro Proyecto de doble clic en Mdulos o


simplemente presione el signo de + que aparece en la
opcin Mdulos. Se activar debajo de Mdulos la
Opcin Mdulo1

4. De doble clic en Mdulo1. Se mostrar en el Editor de


Visual Basic el cdigo de la macro que grabamos.

Ejercicios

1. Genera una Macro que escriba un nombre en una celda y lo ponga negrita y observa el Cdigo.

2. Genera una Macro que escriba un nombre en una celda y cambie el tamao de la letra a 20 puntos y
observa el Cdigo.

3. Genera una Macro que modifique el ancho de columna a 4, de todas las columnas de la hoja activa
y observa el Cdigo.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 4


EXCEL AVANZADO

4. Genera una Macro que modifique el ancho de columna a 6, de las columnas desde la A hasta la E,
de la hoja activa y observa el Cdigo.

5. Genera una Macro que cambie la configuracin de la pgina a orientacin horizontal y observa el
Cdigo.

Formas de ejecutar una Macro

Una macro puede ejecutarse de diferentes formas:

Utilizando el mtodo abreviado con la tecla Control asignado al procedimiento (suponiendo que
hayamos asignado uno).

Desde el cuadro de dilogo Macro,


que se abre seleccionando la ficha
Programador, opcin Macros o
pulsando Alt-F8.

Seleccione la macro que desee


ejecutar de la lista que aparece,
luego haga clic en el botn Ejecutar

Haciendo clic en un botn o en una figura de la hoja. El botn o la figura deben tener asignado la
macro.

Asignar una macro a un botn

Para asignar una macro a un botn (Controles de Formularios), seguiremos los siguientes pasos:

1. Clic en la ficha Programador

2. Clic en la opcin Insertar del grupo Controles

3. Seleccione el control Botn, y luego dibuje sobre la hoja de clculo. Aparecer el cuadro de dilogo
Asignar macro.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 5


EXCEL AVANZADO

4. Del cuadro de dilogo Asignar macro, seleccione una macro de la lista, luego haga clic en el botn
Aceptar.

5. Finalmente, Edite el control

Haga clic dentro del botn y escriba lo que


realiza la macro, por ejemplo si la macro ha
sido creada para imprimir la hoja de clculo o
un rea seleccionada, escriba Imprimir.

Nota:

Si ha quitado la seleccin sobre el botn que insert, y desea escribir sobre dicho botn, haga clic derecho
sobre el botn y seleccione la opcin Modificar texto del men contextual.

Asignar una macro a una imagen

Podemos asignar una macro a las imgenes que coloquemos en la hoja. Slo hay que hacer clic derecho en la
imagen y seleccionar Asignar macro.

Luego, elija una macro de la lista de macros.

Ejercicio Propuesto

Utilizando la grabadora de macros, crear dos macros y asignarla a cada uno de los botones como se muestra a
continuacin:

La macro que se ejecuta con el botn SubTotales debe totalizar los Sueldos por Area, siendo el
resultado el siguiente:

La macro que se ejecuta con el botn Quitar SubTotales debe mostrar la tabla originalmente.
SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 6
EXCEL AVANZADO

Recomendaciones:

Cuando empiece a grabar las macros:

Antes de aplicar la orden SubTotales de la ficha Datos, ordene por el campo Area.

Despus que quita los SubTotales, ordene por el campo Cdigo.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 7


EXCEL AVANZADO

CREAR MACROS MANUALMENTE


Para crear una macro de forma manual es necesario tener conocimientos de programacin en general y de
Visual Basic en particular, ya que es el lenguaje de programacin en el que se basa el VBA de Excel. El
lenguaje de programacin Visual Basic, es un lenguaje orientado a objetos, es decir, la filosofa de los
lenguajes orientados a objetos es que el mundo real lo podemos abstraer de tal forma que lo podemos
representar como objetos y programar con ellos.
Un objeto es algo con entidad propia dentro de una clase. Y una clase es un conjunto de objetos que tienen
propiedades en comn y se comportan de una manera igual o similar al resto de objetos pertenecientes a esa
misma clase.
Por ejemplo tenemos la clase "persona" que tiene una serie de propiedades y comportamiento claramente
diferenciables de la clase "casa" y dentro de la clase "persona" existen muchos objetos que son cada una de
las personas por ejemplo pertenecientes a un colegio.
Las propiedades hemos dicho que son aquellas caractersticas que definen a los objetos de una clase,
diferencindolos del resto de clases, siguiendo con el ejemplo persona unas propiedades podrn ser, la
estatura, el peso, el color del pelo, el sexo, el color de los ojos, y todas aquellas propiedades que puedan
diferenciar ms a cada objeto dentro de una clase, como nombre, apellido, DNI, etc.
Adems de las propiedades, hemos dicho que las clases se caracterizan por su comportamiento, en orientado
a objetos se le suele llamar mtodos que estn diferenciados en funciones y procedimientos. Los mtodos
caractersticos de la clase persona sera, hablar, andar, escribir, escuchar, estudiar, etc.
La diferencia fundamental entre funciones y procedimientos, es que las funciones al llevarse a cabo devuelven
algn tipo de valor mientras que los procedimientos realizan su cometido y pueden o no devolver algn valor.
Por ejemplo los mtodos mencionados en el prrafo anterior se pueden clasificar la mayora como
procedimientos porque no tienen necesariamente que devolver ningn valor, pero por ejemplo el mtodo
estudios se podra calificar como funcin que devuelve los ltimos estudios de esa persona.
En la programacin orientada a objetos existe tambin un concepto muy importante que son los eventos. Los
eventos son sucesos que son provocados por algn tipo de estmulo externo y que hacen que pueda alterarse
el comportamiento de la clase. Seguimos con el ejemplo persona, un evento sobre persona sera el evento
"despertarse", que provoca que la persona comience a funcionar, o un evento externo como "llamar", que
provoca que la persona atienda a la persona que le ha llamado.

EL ENTORNO DEL EDITOR DE VISUAL BASIC


Para acceder al entorno de programacin de Excel debemos:
Abrir el editor Visual Basic desde la Ficha Programador o tambin presionando la combinacin de teclas
Alt + F11.

Insertar un mdulo de trabajo que es donde se almacena el cdigo de las funciones o procedimientos
de las macros.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 8


EXCEL AVANZADO

Plantearnos si lo que vamos a crear es una funcin (en el caso que devuelva algn valor), o si por el
contrario es un procedimiento (si no devuelve ningn valor).
Una vez concretado que es lo que vamos a crear, accedemos al men Insertar Procedimiento.

Nos aparece un cuadro de dilogo como vemos en la imagen donde le damos el Nombre: al
procedimiento/funcin sin insertar espacios en su nombre.
Tambin escogemos de qu Tipo es, si es un Procedimiento, Funcin o es una Propiedad.
Adems podemos seleccionar el mbito de ejecucin. Si lo ponemos como Pblico podremos utilizar el
procedimiento/funcin desde cualquier otro mdulo, pero si lo creamos como Privado solo podremos
utilizarlo dentro de ese mdulo.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 9


EXCEL AVANZADO

Una vez seleccionado el tipo de procedimiento y el mbito presionamos sobre


Aceptar y se abre el editor de Visual Basic donde escribimos las instrucciones
necesarias para definir la macro.

Como hemos dicho, el lenguaje que utiliza Excel para las macros es el Visual Basic, por lo tanto veamos
algunas sentencias de programacin bsicas.
Seleccionar una celda especfica:
Range("A1").Select
Escribir texto en una celda especfica:
ActiveCell.FormulaR1C1 = "Ofimtica Empresarial"
Escribir 0 en un rango de celdas:
Range(A2:A10).Value = 0
Borrar el contenido de un rango de celdas:
Range(B5:G10).Clear
SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 10
EXCEL AVANZADO

Copiar el texto de un rango de celdas seleccionadas.


Selection.Copy
Pegar el texto de un rango de celdas copiadas.
ActiveSheet.Paste
Cortar el texto de un rango de celdas seleccionadas.
Selection.Cut
Insertar y Eliminar Fila
Selection.EntireRow.Insert Selection.EntireRow.Delete
Insertar y Eliminar Columna
Selection.EntireColumn.Insert Selection.EntireColumn.Delete
Abrir un Libro en Excel
Workbooks.Open Filename:="C:\libro.xls"
Grabar un Libro en Excel
ActiveWorkbook.SaveAs Filename:="C:\libro.xls"
Colocar Negrita, Cursiva o Subrayar texto de un rango seleccionado de celdas.
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Underline = xlUnderlineStyleSingle
Alinear el texto de un rango seleccionado de celdas:
Selection.HorizontalAlignment = xlCenter
Selection.HorizontalAlignment = xlLeft
Selection.HorizontalAlignment = xlRight
Cambia el tipo de letra de un rango seleccionado de celdas.
Selection.Font.Name = "Garamond"
Cambia el tamao de letra de un rango seleccionado de celdas.
Selection.Font.Size = 15

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 11


EXCEL AVANZADO

GUARDAR LIBROS EN EXCEL CON MACROS


Cuando guardamos un libro en Excel y queremos que las Macros que hemos creado se almacenen con el resto
de las hojas de clculo deberemos utilizar un tipo de archivo diferente.
Para ello deberemos ir al Botn Office y seleccionar la opcin Guardar como.

Se abrir el cuadro de dilogo Guardar como. En el desplegable Guardar como tipo seleccionar Libro de Excel
habilitado para macros (*.xlsm).

Ingresar el nombre con que se desea guardar.


Cuando abrimos un archivo que tiene Macros almacenadas se nos mostrar este anuncio bajo la banda
de opciones:

Esto ocurre porque Office no conoce la procedencia de las Macros. Como estn compuestas por cdigo
podran realizar acciones que fuesen perjudiciales para nuestro equipo.
Si confas en las posibles Macros que contuviese el archivo o las has creado t pulsa el botn Opciones
para activarlas.
Aparecer este cuadro de dilogo:

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 12


EXCEL AVANZADO

Selecciona la opcin Habilitar este contenido y pulsa Aceptar

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 13


EXCEL AVANZADO

FORMULARIOS DE VISUAL BASIC PARA MACROS


USERFORM
Un objeto UserForm es una ventana o cuadro de dilogo que conforma una
parte de la interfaz de usuario de una aplicacin.
Los formularios de usuario tienen propiedades que determinan la apariencia,
como posicin, tamao y color; y diversos aspectos de su comportamiento.
Los formularios de usuario tambin pueden responder a eventos iniciados por
un usuario o activados por el sistema. Por ejemplo, puede escribir cdigo en el
procedimiento de evento Initialize del UserForm para inicializar variables a
nivel de mdulo antes de mostrar el UserForm.
Adems de propiedades y eventos, puede utilizar mtodos para manipular
formularios de usuario utilizando cdigo. Por ejemplo, puede utilizar el mtodo
Move para cambiar la ubicacin y tamao de un UserForm.
Cuando disea formularios de usuario, establezca la propiedad BorderStyle
para definir bordes, y establezca la propiedad Caption para colocar texto en la
barra de ttulo. En cdigo, puede utilizar los mtodos Hide y Show para hacer
invisible o visible un UserForm en tiempo de ejecucin.

CREAR USERFORM
Para crear un UserForm se debe hacer anticlic en la carpeta mdulos,
luego seleccionar insertar UserForm.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 14


EXCEL AVANZADO

Se mostrar la siguiente ventana con el formulario creado.

Junto a la pantalla anterior se utilizan las ventanas de Propiedades y de


Herramientas.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 15


EXCEL AVANZADO

En la ventana de Propiedades podemos modificar el valor de las siguientes


propiedades:
Caption: Permite modificar el texto que mostrar el control.
Para nuestro ejemplo podemos colocarle: "Notas del Curso".
Name: Permite modificar el nombre interno del control con el cual se har
referencia en la programacin. Para los UserForm la propiedad Name debe
iniciar con las letras frm, seguido del nombre que se le desea asignar.
Para nuestro ejemplo le colocaremos frmCurso.

En la ventana de controles se muestras todos los objetos que podemos


usar para disear el UserForm.

CONTROLES DE USERFORM
Control: Marco o Frame
Permite agrupar controles.
Propiedad Name: fraCurso
Propiedad Caption: Notas del Curso de Excel Avanzado.

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 16


EXCEL AVANZADO

Control: Etiqueta
Permite mostrar texto.
Propiedad Name: lblPracticaI, lblPRacticaII, lblPracticaIII
Propiedad Caption: Practica I, Practica II, Practica III

Control: Cuadro de Texto


Permite al usuario ingresar texto.
Propiedad Name: txtPracticaI, txtPRacticaII, txtPracticaIII

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 17


EXCEL AVANZADO

Agregamos los controles necesarios para mostrar el promedio. Pero en


este caso la caja de texto promedio solo debe mostrar el resultado, no
debe permitir el ingreso de datos, por lo tanto vamos a desactivarla
colocando en falso su propiedad Enabled.

Control: Botn de Comando


Permite al usuario ejecutar acciones.
Propiedad Name: cmdCalcular.

El resultado final sera:

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 18


EXCEL AVANZADO

PROGRAMACION DE LOS CONTROLES


Ejemplo 01:
Enviar Datos de las Cajas de Texto a Celdas Especficas al dar clic en
un Botn.
Para programar cada control insertado en el formulario, se debe dar doble
clic en el control respectivo y se generaran los procedimientos respectivos.
Cdigo para el botn Cerrar:

Cdigo para el Botn Borrar:

Cdigo para el Botn Calcular

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 19


EXCEL AVANZADO

Explicacin

Permite declarar 3 variables llamadas a, b y c que son de tipo entero.

Captura el valor de las cajas de texto y los almacena en sus variables


respectivas.

Calcular el promedio de las 3 notas y lo muestra en la caja de texto
txtPromedio.
Para comprobar la programacin se debe Presionar F5, o dar click en el
botn Ejecutar.

El resultado final sera:

SESIN 4 MOSM. Ing. Edilberto Chvez Fernndez 20

You might also like