Excel y Macros
Excel y Macros
Macros en
Microsoft Excel
1
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
2
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Excel y Macros
La Hoja de Cálculos Excel es una de las herramientas para el tratamiento de datos y su
análisis. Una de las mayores ventajas que posee es la flexibilidad que ofrece y la rapidez
con la que podemos construir plantillas y todo tipo de modelos, para diversos usos y
aplicaciones.
1. Automatización de procesos
Supongamos que todos los días debemos trabajar en nuestro libro Excel en el cual
debemos seleccionar un rango, centrarlo, cambiarle la fuente, poner la fuente en
cursiva, aplicarle negrita y finalmente aplicarle bordes a toda la selección. Estas 6
acciones las hacemos manualmente y no parecen muchas, ¿pero qué tal si hay que
hacer esto en repetidas ocasiones y todos los días? Una macro nos permite ejecutar los 6
pasos automáticamente, tan solo presionando un botón o una tecla. Las tareas ideales
para automatizar son aquellas que se hacen de forma repetida e involucran muchos
pasos, por ejemplo: imprimir informes, configurar la vista de la hoja, actualizar datos de
tablas dinámicas, etc.
Las funciones y fórmulas Excel son quizás la esencia de la hoja de cálculos. Excel trae
incorporada unas 330 funciones estándar las cuales se pueden utilizar en forma aislada o
en forma combinada (anidadas). Sin embargo suele suceder que justo la función que
necesitamos no existe pero a través de las macros podemos programar funciones que
hagan exactamente lo que nosotros queremos. Y esas funciones se comportarán igual
que las de Excel (aparecerán en el menú de funciones en la categoría que nosotros
indiquemos, tendrán sus respectivos argumentos, etc.).
Excel trae una gran cantidad de comandos y menús predefinidos que nos asisten para las
operaciones más habituales. Las macros nos permiten crear nuestros propios comandos
y menús personalizados, e incorporarlos al Excel. La utilidad de los mismos depende
tan solo de nuestras necesidades. Los complementos Excel también están creados con
macros. En el menú Herramientas > Complementos verá una lista de lo que tiene
instalado en su Excel. Su utilidad reside en agregar alguna funcionalidad extra.
3
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
4. Creación de aplicaciones a medida
Excel es utilizado en diversos campos y por una gran cantidad de usuarios. Las macros
le permitirán construir complejas y elegantes aplicaciones para cualquier uso que quiera
darle. Una aplicación Excel consiste en algo más que una simple plantilla con datos y
fórmulas. Una aplicación Excel es un verdadero programa de software con una serie de
características que lo hacen utilizable por cualquier usuario sin que el mismo tenga que
entender la lógica que hay por detrás.
Lenguaje VBA
Recuerde que la programación de macros se hace a través del lenguaje VBA (Visual
Basic for Applications) desde el editor VBA que trae incorporado Excel. Este tipo de
programación también se conoce como "Programación Orientada a Objetos" (OOP,
Objects Oriented Programming). La Programación orientada a Objetos nos permite
trabajar sobre los objetos propios de Excel como así también crear nuestros propios
objetos.
Macros = VBA = OPM
El lenguaje VBA es muy fácil de entender y siempre gira en torno a seleccionar los
objetos, cambiar sus propiedades y/o ejecutarles distintos métodos. La única
particularidad es que el lenguaje VBA solo está en inglés.
Ejemplos de algunos objetos de Excel y su denominación en inglés, el idioma utilizado
por las macros:
4
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Ejemplos de Objetos VBA (Entre paréntesis su significado en español)
Cell (celda)
Range (rango)
Worksheet (hoja)
Workbook (libro)
Cómo comenzar
Antes de comenzar a programar macros es necesario que conozca la barra de
herramientas VBA y las distintas formas de acceder al editor de macros, que es la
herramienta donde escribirá el código de las mismas.
Barra de herramientas
Excel posee una Barra de Herramientas de Macros o VBA. Puede acceder a la misma
desde el menú Herramientas > Macros.
También tiene la opción de dejar siempre visible dicha barra de herramientas. Puede
hacer esto desde el menú Ver > Barras de Herramientas > Visual Basic. Vera como
aparece una nueva barra de herramientas de macros y además puede ubicar esta barra de
herramientas donde le sea más cómodo:
5
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Excel 2007:
Editor VBA
El Editor de Visual Basic es la aplicación que trae Excel desde donde se escriben y
guardan las macros. Tiene 3 formas de acceder al editor:
Excel 2007:
6
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
El editor contiene 4 ventanas principales:
Ventana Proyecto - VBA Project: esta ventana muestra los libros Excel (xls) o los
complementos (xla) abiertos. Usualmente verá nombres del tipo "VBAProject" y entre
paréntesis el nombre del archivo o complemento Excel.
Si esta en el editor y quiere regresar a la hoja Excel también puede utilizar el ícono de
Excel que se encuentra en el menú superior del editor (primer ícono de la izquierda, con
la X de Excel)
7
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Escribir una macro
1. Escribirla manualmente
2. Utilizar la grabadora de macros
3. Combinación de los 2 métodos anteriores
(Grabarla y luego retocarla manualmente)
Mi primera Macro
Objetivo de la macro:
Comenzara con una hoja Excel vacía y luego de ejecutar la macro vera que aparece el
valor 1.500 en la celda A1. El valor lo pondrá automáticamente la macro cuando se lo
indiquemos.
2. Escriba la macro
2.1 En la ventana de macros escriba textualmente el siguiente código:
Ejecutar la Macro
Si ya tiene escrita la macro en el editor, ahora podrá ejecutarla, o sea hacer que
funcione. Tiene 2 formas de hacer esto:
Se abrirá un cuadro que contiene una lista con los nombres de las macros creadas.
Seleccione MiPrimeraMacro y haga clic en Ejecutar.
9
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Si ha seguido uno de los 2 pasos anteriores ya podrá ver el resultado de la macro. ¿Qué
hizo la Macro? Si se fija en el Libro 1, Hoja 1, Celda A1 verá que se escribió el valor
1.500.
Excel 2007:
Se abrirá un cuadro que contiene una lista con los nombres de las macros creadas.
Seleccione MiPrimeraMacro y haga clic en Ejecutar.
10
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Comprender la Macro
Recuerde que el propósito de nuestra primera macro fue escribir el valor 1500 en la
celda A1 de Excel. La macro ya fue escrita y ejecutada en los pasos anteriores. Ahora
vamos a analizar cada una de las líneas del código:
Recuerde: los comentarios son muy útiles para comentar sus macros y siempre
deben comenzar con el signo '. Si ha puesto bien dicho signo al comienzo de la
línea, el editor detecta automáticamente que es un comentario y lo pinta de verde
luego de presionar Enter.
11
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Recuerde: el nombre de la macro siempre comienza con la palabra Sub, luego un
espacio, luego el nombre que quiera ponerle a su macro (SIN espacios
intermedios) y finalmente los paréntesis.
Va a grabar su primer macro. Es la misma macro que hizo, pero esta vez la hará con la
grabadora de macros.
Grabando la Macro
Excel trae incorporada una grabadora de macros. La misma funciona de forma muy fácil
ya que escribe de forma automática el código VBA de la macro.
12
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Excel 2003 o inferior
Cuando comienza a grabar la macro activa una nueva barra de macros. El botón
cuadrado de la izquierda le permite parar la grabación y finalizar la macro.
13
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
3. Observemos como quedó la macro grabada
3.1 Acceda al editor de Visual Basic con ALT+F11.
3.2 Debe hacer clic en Módulo1 para visualizar el código de la nueva macro grabada:
Podrá observar que el código que se grabó es distinto al código que había escrito
cuando hizo la macro manualmente.
Excel 2007:
14
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
1.4 Donde dice Nombre de la macro escriba MiPrimeraMacro. Ese será el nombre que
le dará a su macro.
1.5 Presione Aceptar y la macro comenzará a grabar todo lo que haga.
1.6 Posiciónese en la celda A1 y escriba el valor 1500.
2. Detener la grabación
Para terminar de grabar, debemos presionar el botón de detener grabación
3. Veamos
como quedó la macro grabada
3.1 Acceda al editor de Visual Basic con ALT+F11.
3.2 Debe hacer clic en Módulo1 para visualizar el código de la nueva macro grabada:
Podrá observar que el código que se grabó es distinto al código que había escrito
cuando hizo la macro manualmente.
Excel 2003:
Range("A1").Select
ActiveCell.FormulaR1C1 = "1500"
Range("A2").Select
End Sub
Recuerde: que este código quedó en
VBAProject (Libro1) > Módulo1
3. Ejecución de la macro 3. Ejecución de la macro
Posicionados sobre cualquier línea Para comprobar que funciona, primero
del código anterior presionamos F5. borramos el valor 1500 de la celda A1,
Luego con ALT+F11 volvimos a la Hoja1 (lo habíamos escrito para grabar la
hoja de Excel y comprobamos que en macro). Luego ejecutamos la macro desde
16
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
la celda A1 de la Hoja1 se escribió el el menú Herramientas > Macro > Macros.
valor 1500. Seleccionamos de la lista MiPrimeraMacro
y luego Aceptar. De esta forma se volvió a
escribir el valor 1500 en la celda A1 de la
Hoja1.
Excel 2007:
Range("A1").Select
ActiveCell.FormulaR1C1 = "1500"
Range("A2").Select
End Sub
Recuerde que este código quedó en
VBAProject (Libro1) > Módulo1
3. Ejecución de la macro 3. Ejecución de la macro
Posicionados sobre cualquier línea Para comprobar el funcionamiento,
del código anterior presionamos F5. primero borramos el valor 1500 de la celda
Luego con ALT+F11 volvimos a la A1, Hoja1 (lo habíamos escrito para grabar
hoja de Excel y comprobamos que en la macro). Luego ejecutamos la macro
la celda A1 de la Hoja1 se escribió el desde la ficha Programador > Macros.
valor 1500. Seleccionamos de la lista MiPrimeraMacro
y luego Aceptar. De esta forma se volvió a
escribir el valor 1500 en la celda A1 de la
Hoja1.
17
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Diferencias
Tanto la Macro Escrita como la Macro Grabada logran la misma función de escribir el
valor 1500 en la celda A1 de la Hoja1. Sin embargo, en los 3 puntos de la tabla de la
sección anterior verá que hay algunas diferencias. El análisis de las mismas nos
permitirá ver las ventajas y desventajas de escribir una macro de forma manual o de
grabarla con la grabadora de macros.
18
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Conclusión
Macro escrita
Sub MiPrimeraMacro()
Range("A1").Value=1500
End Sub
Macro grabada
Sub MiPrimeraMacro()
Range("A1").Select
ActiveCell.FormulaR1C1 = "1500"
Range("A2").Select
End Sub
En la macro grabada verá un nuevo objeto, ActiveCell (celda activa) y una nueva
propiedad del mismo, FormulaR1C1 (fórmula de la celda).
Lo mejor es escribir las macros manualmente y utilizar la grabadora en aquellos casos
donde no tenemos ni idea sobre cuál es el código que necesitamos o como es el nombre
del objeto, propiedad o método.
Ejemplos de Macros
Macro 1
Macro 2
Escriba manualmente una nueva macro:
6. Verá que la macro elimina las líneas de división de las celdas de la hoja activa (algo
que también puede hacer desde Excel, menú Herramientas > Opciones > pestaña Ver >
casilla Líneas de división).
Esta macro utiliza el objeto ActiveWindow (ventana activa).
Luego le asigna la propiedad DisplayGridlines=False (mostrar líneas de división=falso)
Si quisiera volver a ver las líneas de división puede cambiar la propiedad False por
True:
ActiveWindow.DisplayGridlines = True
Macro 3
Escriba manualmente una nueva macro:
20
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
' Esta macro copia un rango a la celda activa
Sub CopiaRango()
Range("A1:A5").Copy Destination:=ActiveCell
End Sub
5. Para probar esta macro vuelva a Excel con ALT+F11 y escriba algunos números o
palabras en el rango A1:A5. Por ejemplo:
El editor de Macros
Es importante reconocer bien las principales opciones y secciones que tiene el editor de
macros (también conocido como editor de Visual Basic), dado que será la herramienta
que utilizara para escribir las macros.
Como Acceder
El Editor de Visual Basic es la aplicación que trae Excel desde donde se escriben y
guardan las macros. Tiene 3 formas de acceder al editor:
21
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
También tiene otras formas de acceder:
Excel 2003 o inferior: desde el menú Herramientas > Macros > Editor de Visual Basic
Excel 2007: desde la ficha Programador > Visual Basic
Ventana Proyecto
Esta ventana puede activarla desde el menú Ver > Explorador de proyectos, dentro del
editor de Visual Basic.
En la ventana de Proyecto hay carpetas donde se guardarán y escribirán las macros.
Presione el botón Alternar Carpetas para que se ordenen mejor los elementos, como se
ve a continuación:
22
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Proyectos
En un primer nivel tenemos los proyectos. Por regla general, cada libro Excel tiene
asociado un proyecto. Por ejemplo, si crea un nuevo libro Excel desde el menú de Excel
Archivo > Nuevo y vuelve al editor de macros (ALT+F11), verá que aparece el
proyecto VBAProject (Libro1). Dentro del paréntesis aparece el nombre de su libro
Excel y lo de VBAProject podrá cambiarlo luego.
En resumen VBAProject (Libro1) es la carpeta principal, asociada a un libro Excel
determinado, donde insertaremos todo lo referido a las macros para dicho libro.
Carpetas
En un segundo nivel tenemos 3 carpetas:
1. Microsoft Excel Objetos.
2. Formularios.
3. Módulos.
2. Formularios
Los formularios son más conocidos como UserForms. Si no lo visualiza puede
agregarlos desde el menú Insertar > Userform.
2.1 Dentro de la carpeta de Formularios hay un elemento llamado Userform1.
3. Módulos
Los módulos sirven para escribir macros a nivel genérico, sin estar relacionadas a la
hoja o libro en particular. Si no visualiza ninguno puede agregarlos desde el menú
Insertar > Módulo.
3.1 Dentro de la carpeta de Módulos hay un elemento llamado Módulo1. Podrá insertar
tantos módulos como necesite. En los módulos podrá escribir macros que operan de
forma genérica, sin distinguir entre hojas o libros.
Haciendo doble clic izquierdo en cualquiera de estos objetos verá que se habilita la
Ventana de Código de la izquierda (una hoja en blanco grande). En la misma es donde
se escriben las macros.
Recuerde: antes de escribir una macro debe evaluar donde hacerlo.
1. Si es una macro que solo debe afectar una hoja en particular escríbala en los objetos
de Hoja, en el nombre de Hoja correspondiente.
2. Si la macro debe afectar a todo un libro en particular escríbala en el objeto
ThisWorkbook. Estas suelen ser macros que se ejecutan al abrir, cerrar o guardar el
libro.
3. Si la macro es de tipo genérica escríbala en un Módulo.
4. Si quiere hacer un formulario utilice el objeto Userform.
Ventana Propiedades
Esta ventana se ubica en la parte inferior izquierda de la pantalla. Si no la puede
visualizar puede activarla desde el menú Ver > Ventana propiedades.
23
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Cada objeto tiene sus propiedades. Por ejemplo, si hace doble clic en el objeto
Módulo1, podrá ver sus propiedades:
Algunos objetos tienen muchas propiedades (por ej. los Userforms) así que tiene la
opción de ordenar los mismos de forma alfabética o por categoría. El objeto Módulo1
solo tiene la propiedad (Name) Módulo1. Si quisiera podría reemplazar el nombre de
Módulo1 y asignar otro nombre a gusto.
Ventana Código
Cada vez que haga doble clic izquierdo en algún Objeto de la Ventana Proyecto se
activará a la derecha la Ventana de Código. Si no la puede visualizar puede activarla
posicionándose en el Objeto y luego desde el menú Ver > Código.
Si todavía no ha escrito ninguna macro verá la ventana de código en blanco. En nuestro
ejemplo hemos escrito 3 macros:
Esta ventana no tiene mayores complicaciones. Lo que interesa es más bien el código
que escriba aquí. Puede escribir todas las macros que quiera en esta ventana. Recuerde
que el mismo editor asignará automáticamente los colores al código y además separará
con una línea continúa cada macro.
24
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
En la medida que empecemos a escribir muchas macros, existe una forma rápida de
movernos entre ellas. Desde la lista desplegable de la parte superior derecha podrá ver
la lista de macros escritas. Haciendo clic en cualquiera de ellas el editor nos posicionará
rápidamente en la misma.
Ventana Inmediato
Si no la puede visualizar puede activarla desde el menú Ver > Ventana Inmediato.
25
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Otro ejemplo: Si el libro fue guardado, podríamos querer averiguar el directorio donde
se encuentra. Podríamos desde la Ventana Inmediato, escribiendo ?thisworkbook.Path y
presionando Enter. Al presionar Enter, en la fila siguiente se mostrará la ruta del libro,
por lo que en la Ventana Inmediato vera algo así, suponiendo que el libro se encuentra
guardado en ese directorio:
26
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Proteger el código
Así como se pueden proteger los libros, las hojas y las celdas de Excel, también es
posible proteger con una contraseña el código de nuestras macros. Una vez que tenga
sus macros escritas en el editor puede ir al menú Herramientas > Propiedades de
VBAProject... y luego hacer clic en la pestaña de Protección:
Ejecución de Macro
Dependiendo del caso le interesará ejecutar la macro desde un menú, desde un botón o
incluso ejecutarla automáticamente cuando ocurran determinados eventos, como ser al
abrir, cerrar o guardar el libro, activar o desactivar una hoja, etc.
Desde el código
La forma más rápida de ejecutar una macro es desde el mismo código. Cuando termina
de escribir una macro puede posicionarse en cualquiera de sus líneas de código y
presionar la tecla F5. Recuerde que puede acceder al código de las macros desde el
editor de macros, con las teclas ALT+F11.
27
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Desde el Menú
Otra forma de ejecutar una macro es desde el menú de macros, que lo puede visualizar
presionando ALT+F8
Verá que se abre un cuadro como el siguiente:
28
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Desde el Teclado
Otra forma muy práctica de ejecutar una macro es desde el teclado. Esto también se
conoce como teclas de método abreviado. Para configurar las teclas con las cuales
ejecutar debe hacer lo siguiente:
1. Ir al menú de macros presionando ALT+F8
2. Elegir el nombre de la macro de la lista y luego hacer clic en el botón Opciones.
3. Donde dice Tecla de método abreviado presione la tecla MAYUSC y luego una letra.
La macro se ejecutará con Ctrl+Mayúsc+Q
Recuerde: la macro siempre se ejecuta con la tecla Ctrl+ la letra que usted
escriba en la casilla. Sin embargo, hay muchas combinaciones de Ctrl+Letra que
ya están ocupadas por Excel (Ctrl+C copiar, Ctrl+V pegar, Ctrl+X pegar, etc.)
No se aconseja que utilice dichas combinaciones. 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.
29
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Desde Objetos
Excel 2003: desde el menú Ver > Barra de Herramientas > Dibujo. Esto muestra un
menú como el siguiente:
Excel 2007: desde la ficha Insertar > Formas. Esto muestra un menú como el siguiente:
Si ya ha insertado una figura en su hoja Excel, podrá asociarle una macro siguiendo
estos pasos:
30
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
3. Al elegir la opción de Asignar macro abrirá el menú de macros. Seleccione de la lista
la macro de su interés luego Aceptar.
4. Finalmente la figura quedará con la macro asignada, de tal forma que cada vez que
haga un clic encima de la figura, se ejecutará la macro.
31
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
2. Es importante que mantenga abierto el cuadro de Personalizar, porque si no podrá
editar el botón. Si hacemos clic izquierdo sobre el botón se desplegará el menú de
opciones. Las opciones más importantes son las de Cambiar imagen del botón y la de
Asignar macro. Esta última opción nos permitirá abrir el cuadro de diálogo con la lista
de macros creadas para asignarle una macro determinada.
Automáticamente
Las macros también se pueden ejecutar automáticamente. Por ejemplo, se pueden hacer
macros que se ejecuten cada cierto tiempo o que se ejecuten solas cada vez que el
usuario hace algo como abrir, cerrar, guardar un libro, activar o desactivar una hoja,
etc.
32
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Macros de Eventos
En este caso se las denomina macros de evento, porque ante un determinado evento o
acción realizada por el usuario, la macro se ejecuta automáticamente.
Eventos de Libros
Los eventos de libros permiten disparar automáticamente una macro cuando suceden
determinadas acciones a nivel del libro Excel en cuestión, por ejemplo al abrirlo,
guardarlo, cerrarlo, imprimirlo, etc.
3. Finalmente, en la lista desplegable de la derecha vera todos los eventos de libro que
puede utilizar para disparar su macro.
33
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
4. Por ejemplo, si hace clic en la opción Activate, verá que en la ventana de macros se
escribe automáticamente el siguiente código:
End Sub
Entonces, cada vez que abra el libro, la macro se ejecutará automáticamente y verá el
saludo:
En el caso de las macros de evento, siempre aparece la palabra Private. Eso significa
que esa macro no la podrá ver en la lista del menú de macros. Esto es así porque la
macro no se puede ejecutar manualmente, si no que se ejecuta automáticamente cuando
ocurre el evento, en este caso cuando se activa el libro Excel en cuestión.
Existen más de 20 macros de evento a nivel libro. Las más importantes son:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' El código que escriba aquí se ejecutará automáticamente al cerrar el libro
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
' El código que escriba aquí se ejecutará automáticamente al imprimir el libro
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' El código que escriba aquí se ejecutará automáticamente al guardar el libro
End Sub
Private Sub Workbook_Open()
'El código que escriba aquí se ejecutará automáticamente al abrir el libro
End Sub
34
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Eventos de Hojas
Los eventos de hojas permiten disparar automáticamente una macro cuando suceden
determinadas acciones a nivel de hojas Excel, por ejemplo al activarla, desactivarla,
calcularla, etc.
Instrucciones para insertar una macro de evento a nivel hoja:
1. Las macros de eventos se deben escribir en la carpeta Hoja1 (Nombre) del editor de
macros. Fíjese que Hoja1 identifica el número de hoja de Excel y (Nombre) será el
nombre que tenga asignado dicha hoja en Excel. Por ejemplo, si en su Excel la primera
hoja se llama "Gastos", en el editor vera Hoja1 (Gastos).
En este caso tenemos Hoja1 (Hoja1). Al hacer doble clic en dicha carpeta, la macro que
escriba solo afectará a dicha hoja.
3. Finalmente, en la lista desplegable de la derecha vera todos los eventos de hoja que
podrá utilizar para disparar su macro automáticamente.
4. Por ejemplo, si hace clic en la opción Activate, verá que en la ventana de macros se
escribe el siguiente código:
End Sub
35
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Al seleccionar una macro de evento el editor escribe automáticamente la primera y
última línea de su código (no debe modificar esto). Luego podrá escribir su código
macro entre esas líneas. En este caso, la macro que escriba se ejecutará cada vez que
active la hoja Excel en cuestión. Por ejemplo, puede hacer una macro que muestre un
mensaje de saludo cada vez que active la hoja:
Entonces, cada vez que active la hoja, la macro se ejecutará automáticamente y verá el
saludo:
En el caso de las macros de evento, siempre aparece la palabra Private. Eso significa
que esa macro no la podrá ver en la lista del menú de macros. Esto es así porque la
macro no se puede ejecutar manualmente, si no que se ejecuta automáticamente cuando
ocurre el evento, en este caso cuando se activa la hoja Excel en cuestión.
Existen unas 9 macros de evento a nivel hoja.
36
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
' El código que escriba aquí se ejecutará automáticamente al producirse un cambio en la
hoja (por ejemplo al introducir un dato en una celda, seleccionar una opción de una lista
desplegable, etc.)
End Sub
Formularios
Un Formulario (o su denominación en inglés Userform) se utiliza para crear un Cuadro
de Diálogo donde el usuario puede introducir información, o realizar otras operaciones.
Al ejecutar muchas de las opciones del menú de Excel se abren formularios. Por
ejemplo, desde el menú Herramientas > Opciones se abre un formulario como el
siguiente, donde se pueden activar o desactivar distintas opciones de Excel.
37
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Los Userforms se utilizan mucho para crear aplicaciones Excel que luzcan de forma
profesional y permitan al usuario introducir datos o elegir opciones de una forma guiada
y más intuitiva.
Crear un Formulario
Para crear un Userform debe hacer lo siguiente:
1. Abra el editor de macros (por ejemplo, con CTRL+F11).
2. Inserte un objeto Userform. Esto podrá hacerlo fácilmente:
2.1 Seleccione el Libro Excel donde trabajara, en nuestro
caso VBAProject (Libro2).
2.2 Haga clic derecho en el mismo y elija la opción Insertar >
Userform
2.3 Como se ve en la fotografía, vera que aparece un objeto
Userform1 que cuelga de la carpeta Formularios
La idea es que mediante estos controles podrá tanto capturar como enviar información o
datos desde o hacia las celdas de Excel respectivamente. También podrá asociar macros
a los controles que agreguemos al Userform .
Si se posiciona sobre los Controles del Cuadro de herramientas, verá que aparece su
nombre. Simplemente haga clic izquierdo en el control deseado y luego clic izquierdo
en el Userform, en el sitio donde quiera agregar el control. En nuestro caso hemos
agregado algunos controles de forma desordenada dentro del Userform.
39
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Seleccionar objetos: sirve para seleccionar controles que se hayan insertado en el
Userform.
Label (etiqueta): sirve para poner un título o un texto. Ejemplo: podemos poner un
texto del tipo "Complete las opciones a continuación" y ubicarlo en cualquier sitio del
Userform. También podemos agregar títulos o descripciones al resto de comandos que
se agregan en el Userform.
Textbox (cuadro de texto): sirve para que el usuario introduzca datos. Ejemplo: si
quiere que el usuario introduzca una fecha o un nombre.
ComboBox (cuadro combinado): sirve para que un usuario elija una opción de
una lista. Ejemplo: crea una lista con los meses de Enero a Diciembre para que el
usuario elija uno de ellos.
ListBox (cuadro de lista): sirve para que un usuario rellene o elija varias opciones
de una lista. Ejemplo: crea una lista con Regiones o Ciudades y el usuario deberá elegir
una o varias de ellas.
CheckBox (casilla de verificación): sirve para que un usuario active una
determinada función. Ejemplo: podrá hacer que al cerrar el Userform se imprima un
reporte solo si la casilla de selección está tildada.
OptionButton (botón de opción): sirve para que un usuario seleccione una opción
determinada entre varias posibilidades. Ejemplo: quiere que el usuario indique si es de
sexo Masculino o Femenino. De todas las opciones solo se puede seleccionar una de
ellas.
ToggleButton (botón de alternar): sirve para activar o desactivar alguna
funcionalidad. Este botón adopta el modo "Encendido" / "Apagado". Ejemplo: quiere
que el usuario defina su idioma, en modo encendido español y en modo apagado inglés.
Frame (marco): sirve para agrupar elementos de un Userform (los elementos se
deben ubicar dentro del Frame). Ejemplo: tiene varios grupos de OptionButton y para
distinguirlo lo agrupa con un Frame. Si tiene un grupo de opciones tipo
masculino/femenino los agrupa dentro de un frame. Si luego tiene otro grupo de
opciones del tipo Mayor de Edad / Menor de Edad lo agrupa dentro de otro Frame.
CommandButton (botón de comando): es un simple botón que le permite ejecutar
acciones. Ejemplo: un botón de Ayuda que ejecuta otro Userform con ayuda para el
usuario.
TabStrip (barra de tabulaciones): en un mismo Userform se pueden crear
distintas secciones. Ejemplo: un userform con cuatro secciones: Norte, Sur, Este y
Oeste. Dentro de cada sección podrá ubicar distintos controles.
MultiPage (página múltiple): en un mismo Userform se pueden crear distintas
páginas. Ejemplo: un userform con 2 páginas: España y Resto del Mundo. Dentro de
cada página podra ubicar distintos controles o distintas secciones.
40
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Image (imagen): permite introducir imágenes en el Userform. Ejemplo: quiere
introducir una fotografía como fondo del Userform para darle un aspecto más
profesional.
RefEdit (referencia): permite hacer referencia a una celda de Excel. Ejemplo:
quiere que el usuario seleccione un dato que fue introducido previamente en una celda
Excel.
Haciendo doble clic en cada control se abrirá una ventana donde podrá escribir y
asociarle una macro.
Para ver como se verían estos controles dentro del Userform, vamos a crear un
Userform que contiene los 15 controles que se pueden agregar. Los hemos agregado en
el mismo orden en que aparecen en el Cuadro de Herramientas.
41
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
2. Creamos un Userform (UF)
Los UF se crean desde el editor de Visual Basic.
2.1 Abrimos el editor con ALT+F11
2.2 Seleccionamos Ver > Explorador de Proyectos para ver la lista de proyectos
disponibles (los mismos se verán en la parte izquierda de la ventana).
2.3 En la venta de Proyectos seleccionamos VBAProject(Datos.xls)
2.4 Desde el menú superior elegimos Insertar > Userform
2.5 Aparecerá un nuevo Userform vacío junto con el Cuadro de Herramientas (si el
mismo no aparece se puede abrir desde el menú Ver > Cuadro de Herramientas)
3. Nombramos el Userform
3.1 Abrimos las propiedades desde el menú Ver > Ventana Propiedades.
3.2 Hacemos doble clic en donde dice (Name) UserForm1, en la parte superior y
tipeamos DatosUF, luego Enter (este es el nombre con el que nos referiremos al
Userform desde las macros).
42
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
4. Agregamos un Cuadro de Texto.
Para permitir que el usuario ingrese datos en el Userform agregamos un control
TextBox, desde el Cuadro de Herramientas.
4.1 Hacemos clic en el control de TextBox y luego hacemos clic en el Userform, en la
parte donde queramos ubicarlo.
4.3 Hacemos clic en una parte vacía del Userform, para volver a seleccionar todo el
Userform.
5. Agregamos un Texto
Para ayudar al usuario a ingresar sus datos, debemos indicarle que es lo que debe
introducir en el Cuadro de Texto del Paso anterior. Podemos agregar una etiqueta de
texto que describa la información que se debe introducir.
43
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
5.1 En el Cuadro de Herramientas hacemos clic en el botón Label o Etiqueta
5.2 En el Userform hacemos clic a la izquierda del TextBox, para agregar la Etiqueta de
texto.
5.3 Si fuera necesario podemos cambiar el tamaño de la etiqueta de texto o del Cuadro
de Texto para que no se superpongan. Se puede hacer clic en sus bordes (pequeños
cuadraditos) y arrastrar para cambiar su tamaño.
5.4. Seleccionamos la nueva etiqueta, hacemos doble clic en la propiedad Caption de la
ventana de propiedades, tipeamos Nombre y luego Enter.
5.5 Hacemos clic en alguna parte vacía del Userform para seleccionarlo y mostrar el
cuadro de herramientas.
* Un TextBox cuyo (Name) sea UFEdad, con una Etiqueta llamada "Edad"
* Un TextBox cuyo (Name) sea UFFecha, con una Etiqueta llamada "Fecha Nac."
Es muy importante que no olvide asignar bien los nombres (Name) a los Textbox, si no
la macro dará error. Puede revisar los pasos 4 y 5 para recordar como hacerlo.
44
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
1. Clic en el primer TextBox
2. Manteniendo pulsada la tecla MAYUS, seleccione los otros TextBox
3. Vamos al menú Formato > Alinear > Izquierda
4. Hacemos clic en alguna parte vacía del Userform para seleccionarlo y mostrar el
cuadro de herramientas.
45
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Private Sub UFAgregar_Click()
'limpia el formulario
Me.UFNombre.Value = ""
Me.UFEdad.Value = ""
Me.UFFecha.Value = ""
Me.UFNombre.SetFocus
End Sub
8.4 En el menú superior elegimos Ver > Objeto para regresar al Userform.
Para llamar una macro desde otra macro simplemente se escribe el nombre de la macro
invocada dentro del código de la macro principal. Por ejemplo, si ejecutamos la Macro1
y queremos que desde la misma se ejecute la Macro2 lo haríamos así:
Sub Macro1()
'El código de mi Macro1
Macro2
End Sub
Si queremos identificar mejor que estamos llamando una macro desde otra macro
podemos anteponer la palabra Call. El efecto es el mismo, solo que al anteponer la
instrucción Call, la misma queda en azul automáticamente, y nos permite identificar
mejor que estamos llamando otra macro.
Sub Macro1()
'El código de mi Macro1
Call Macro2
End Sub
47
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Por ejemplo, tenemos una SuperMacro que realiza la siguiente función:
Sub SuperMacro()
'Asigna Formato Numérico
Selection.NumberFormat = "#,##0;[Red]#,##0"
'Asigna Bordes
With Selection.Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'Asigna Color de Relleno
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
Sub SuperMacro()
Call FormatoN
Call Bordes
Call Relleno
End Sub
La palabra Call se puede omitir pero recomendamos utilizarla para identificar mejor que
estamos llamando otras macros. Como se vé en el código, la SuperMacro ejecuta 3
macros. Estas 3 macros deben estar ubicadas en el mismo módulo y las escribimos a
continuación:
Sub FormatoN()
'Asigna Formato Numérico
Selection.NumberFormat = "#,##0;[Red]#,##0"
End Sub
Sub Bordes()
'Asigna Bordes
With Selection.Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
48
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Sub Relleno()
'Asigna Color de Relleno
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
Depuración y Errores
Es común que cuando ejecutamos una macro la misma tenga algún error. Los errores
pueden ser errores de tipeo o estructuras mal escritas. El editor de macros tiene un
autocontrol que permite corregir estos errores comunes.
Veamos algunos casos:
En este primer ejemplo utilizaremos una macro sencilla cuya única función es
seleccionar la celda A2. Si escribimos correctamente la macro, el editor asigna
automáticamente los colores azules, lo que significa que ha reconocido la estructura
Sub() - End Sub.
Ejemplo:
'Esta macro selecciona la celda A2
Sub Macro()
Range("A2").Select
End Sub
Sub Macro()
Range("A2).Select
End Sub
Cuando sucede esto aparece un aviso que nos indica el error cometido. Si vemos que la
línea está roja es señal que debemos corregir algo (usualmente falta o sobra algún
carácter). En nuestro caso, hemos olvidado poner la comilla (el objeto Range siempre
requiere que la celda esté entre comillas y luego entre paréntesis).
Veamos otro error de tipeo. En ese caso escribimos erróneamente "Sab", en lugar de
"Sub". A pesar que no aparecerá ningún mensaje de error, vemos que el editor no ha
pintado de azul la palabra "Sab".
Sab Macro()
Range("A2").Select
End Sub
49
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Al intentar ejecutar esta macro no sucederá nada, porque no se ha respetado la
estructura de Sub() - End Sub con la que debe comenzar y finalizar una macro
respectivamente.
En otras ocasiones, la macro arrastra un error pero el mismo no aparece hasta ejecutarla.
Veamos el caso de la siguiente macro. Al escribirla no ha generado error y ninguna
línea se ha pintado de rojo. Sin embargo, al ejecutarla sí aparece un error.
Sub Macro()
If Range("a2").value = 2 Then
MsgBox "Mal"
End Sub
Al hacer clic en aceptar la macro queda en "Modo Interrupción", lo que significa que
todo queda en pausa y no se podrán ejecutar nuevas macros (el modo de interrupción se
identifica porque el nombre de la macro queda resaltado en amarillo). Lo que debemos
hacer en esta instancia es salir de modo interrupción desde el mismo editor, menú
Ejecutar > Reestablecer. Luego procedemos a corregir la macro. En este caso el mensaje
fue claro: la estructura estaba incompleta, nos faltó el End If.
Una vez que se ha interrumpido la macro, tenemos la opción de ejecutarla paso a paso
(o línea por línea) y así determinar en qué línea está el error. Esto lo puede hacer
posicionándose en la primera fila de la macro y luego presionar la tecla F8. De esta
forma se irá resaltando con amarillo y ejecutando cada fila, hasta que llegue a la que
produce el error. También puede hacerlo desde la opción del menú Depuración > Paso a
paso por instrucciones.
Para acceder a los complementos puede hacerlo desde el menú Herramientas >
Complementos de la hoja Excel, y verá un cuadro similar al que se muestra a
continuación:
50
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
A la izquierda se ve la lista de complementos disponibles siendo posible activarlos o
desactivarlos (seleccionando o deseleccionando la casilla a la izquierda de su nombre).
Cuando queremos instalar nuevos complementos debemos hacerlo con el botón
Examinar. Dicho botón nos permitirá buscar el directorio donde se encuentra el
complemento que deseamos instalar. La extensión de los archivos de complementos es
XLA.
La utilidad de un complemento es que podemos crear nuestras macros y luego
guardarlas como complemento. De esta forma, dichas macros estarán disponibles en
todas las hojas Excel que abramos, dado que el complemento se cargará
automáticamente (Excel carga automáticamente todos los complementos que estén
seleccionados al abrirse).
51
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
archivo XLA y seleccionarlo. De este modo, cada vez que abra el Excel, el
complemento estará activo.
Excel 2007:
Si quiere instalar nuevos complementos, deberá hacerlo desde el menú Office >
Opciones de Excel > Complementos. Con el botón Ir podrá abrir el cuadro de
complementos.
52
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
A la izquierda se ve la lista de complementos disponibles siendo posible activarlos o
desactivarlos (seleccionando o deseleccionando la casilla a la izquierda de su nombre).
Cuando queremos instalar nuevos complementos debemos hacerlo con el botón
Examinar. Dicho botón nos permitirá buscar el directorio donde se encuentra el
complemento que deseamos instalar. La extensión de los archivos de complementos es
XLA.
Seguridad de Macros
Las opciones de seguridad de macros han cambiado considerablemente en la nueva
versión Excel 2007
Excel 2003:
Excel 2007:
54
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
No mostrar el mensaje de "Habilitar Macros"
Otra opción muy interesante que ofrece Excel 2007 es la de generar "Carpetas de
confianza", de tal modo que para cualquier archivo que esté guardado en esas carpetas,
se habilitarán automáticamente las macros (nos evitaremos el molesto mensaje de
"Habilitar macros"). Para configurar esto vamos al Centro de Confianza, seleccionamos
Ubicaciones de confianza y luego indicamos una carpeta desde el botón de Agregar
nueva ubicación.
Firma Digital
Excel 2003:
Si quiere ejecutar las macros y que no vuelva a aparecer dicho mensaje, deberá crear
una Firma Digital.
Para crear una firma digital hay que ejecutar un archivo llamado Selfcert.exe.
55
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Al ejecutar Selfcert.exe se abre una pequeña ventana donde se pide el ingreso del texto
de la firma digital y luego aceptar.
Ahora lo que debemos hacer es asociar dicha firma a nuestro archivo xls con macros.
Para esto abrimos nuestro xls con macros, pasamos al editor de macros y elegimos las
opciones del menú Herramientas > Firma Digital. Luego hacemos click en el botón
Elegir, escogemos la firma creada, aceptamos y todo listo, macros firmadas.
Cuando abramos el xls con macros nuevamente, Excel indicará que posee macros
firmadas por XXXX (nombre de la persona que creo la firma). Si marcamos la casilla de
confiar de esta fuente, ya nunca más aparecerá el mensaje de macros al abrir dicho
archivo. Todos los xls que lleven esa firma se abrirán con sus macros habilitadas.
56
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Macros Privadas
Recuerde que puede visualizar las macros de su libro presionando ALT+F8. Verá que se
abre un cuadro como el siguiente:
En el mismo figuran los nombres de las macros creadas, así que solo tiene que
seleccionar la macro y luego hacer clic en el botón de Ejecutar.
Si desea ocultar las macros del libro en dicho cuadro puede hacerlo utilizando la
instrucción Private cuando escriba su macro. Debe utilizar dicha instrucción delante de
la palabra Sub. De este modo solo ocultará la macro en cuestión. Ejemplo:
Acelerar el código
57
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Cuando ejecutamos la macro, podemos ir viendo en la pantalla todo lo que sucede,
sobre todo en el caso de macros que activan o desactivan hojas, seleccionan rangos, etc.
Esto hace que la macro se ejecute un poco más lento. Si solo queremos ver el resultado
final y ganar velocidad, debemos utilizar la instrucción
Application.ScreenUpdating=False. En general se recomienda incluir siempre esta línea
al comienzo de cada macro, por ejemplo:
Sub SuperMacro()
Application.ScreenUpdating=False
'El código de la macro aquí
Application.ScreenUpdating=True
End Sub
Al final, volvemos a dejarla en True, que es como debe quedar por defecto.
Sub SuperMacro()
Application.Calculation = xlCalculationManual
'El código de la macro aquí
Application.Calculation = xlCalculationAutomatic
End Sub
Sub CambiarFormatoRango()
With Range("A1")
.Value = 10
.Font.Bold = True
.Interior.ColorIndex = 5
End With
End Sub
Si queremos insertar fórmulas en celdas mediante macros, existe una forma más rápido
de hacerlo que con Copiar y pegar.
58
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]
Por ejemplo:
Sub CopiarFormula()
Range("A1:A10").FormulaR1C1 = "=SUM(RC[1]:RC[5])"
End Sub
Cuando se utiliza la grabadora de macros, es común que se genere más código del
necesario y esto hace que funcione un poco más lento. Las instrucciones que suelen ser
redundantes son Select, Selection.Copy y Paste. Supongamos que queremos copiar un
rango en otro rango. Si utilizamos la grabadora el código será el siguiente:
Sub CopiaRango()
Range("C10:C12").Select
Selection.Copy
Range("E10").Select
ActiveSheet.Paste
End Sub
Sin embargo hay una forma más directa donde evitamos el Select, el Selection y el
Paste:
Sub CopiaRango()
Range("C10:C12").Copy Range("E10")
End Sub
59
SoloExcel Tucumán 810 1º Subsuelo - Capital Federal - Tel 4393-9235
www.soloexcel.com.ar Email [email protected]