Macros en Excel

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

MACROS EN MS EXCEL

Introducción

Al trabajar con un libro personalizado, es decir, que nos hemos definido con una serie de
características específicas como puedan ser el tipo de letra, el color de ciertas celdas, los formatos
de los cálculos y características similares, perdemos mucho tiempo en formatear todo el libro si
disponemos de muchas hojas.
Con las macros lo que se pretende es automatizar varias tareas y fusionarlas en una sola,
añadiendo por ejemplo un botón en nuestro libro que al pulsar sobre él realice todas esas tareas.
GRABAR UNA MACRO

La forma más fácil e intuitiva de crear macros es crearlas mediante la grabadora de macros del que
dispone Excel.
Esta grabadora de macros te permite grabar las acciones deseadas que posteriormente las traduce
a instrucciones en VBA, las cuales podemos modificar posteriormente si tenemos conocimientos
de programación.
Para grabar una macro debemos acceder a la pestaña Vista y despliega el submenú Macros y
dentro de este submenú seleccionar la opción Grabar macro... Además de esta opción en el menú
podemos encontrar las siguientes opciones:
Ver Macros... Donde accedemos a un listado de las macros creadas en ese libro.

Usar referencias relativas - Con esta opción utilizaremos referencias relativas para que las macros
se graben con acciones relativas a la celda inicial seleccionada.
Antes de realizar una Macro es muy importante hablar sobre sus seguridades.

Se puede grabar las macros desde la ficha Programador, si no está disponible, haga lo siguiente
para mostrarla:

EXCEL 2007
Haga clic en el Botón Microsoft Office y, a continuación, haga clic en
Opciones de Excel.

Opción Más frecuente

Active con un visto la opción

1
Como se visualiza:

De clic en el Botón Aceptar.

EXCEL 2010

1. Haz clic en la pestaña Archivo.


2. Haz clic en la sección Opciones que se encuentra entre los comandos del panel izquierdo.
3. Se mostrará el cuadro de diálogo Opciones de Excel y deberás hacer clic en la opción
Personalizar cinta de opciones.
4. En la sección Pestañas principales deberás hacer clic en
el cuadro de selección de la pestaña Programador.

2
Se visualiza la pestaña Programador que contiene:

El grupo Código que se compone de:

Visual Basic y Macros El grupo Controles

El grupo XML

El grupo Modificar

3
SEGURIDAD EN MACROS

Para establecer el nivel de seguridad de manera que estén habilitadas temporalmente todas las
macros, haga lo siguiente:
En la ficha Programador, en el grupo Código, haga clic en Seguridad de macros.

Se visualiza:

En Configuración de macros, haga clic en Habilitar todas las macros (no recomendado; puede
ejecutarse código posiblemente peligroso) y, a continuación, haga clic en Aceptar.
Nota Para ayudar a evitar que se ejecute código potencialmente peligroso, recomendamos que
vuelva a cualquiera de las configuraciones que deshabilitan todas las macros cuando termine de
trabajar con las macros.
En la ficha Programador, en el grupo Código, haga clic en Grabar macro. En el cuadro Nombre de
la macro, escriba un nombre para la macro.
Nota El primer carácter del nombre de la macro debe ser una letra. Los caracteres siguientes
pueden ser letras, números o caracteres de subrayado. No se permiten espacios en un nombre de
macro, caracteres especiales ni palabras reservadas; puede utilizarse un carácter de subrayado
como separador de palabras.

4
Si utiliza un nombre de macro que también es una referencia de celda, puede aparecer un
mensaje indicando que el nombre de la macro no es válido.
Para asignar una combinación de tecla de método abreviado (método abreviado: tecla o
combinación de teclas de función, como F5 o CTRL+a, que utiliza para ejecutar un comando. Una
tecla de acceso, por lo contrario es un combinación de teclas, como ALT+f, que mueve el enfoque
a un menú, comando o control.) Con CTRL para ejecutar la macro, en el cuadro Tecla de método
abreviado, escriba cualquier letra en mayúsculas o minúsculas que desee utilizar.
Nota La tecla de método abreviado suplantará a cualquier tecla de método abreviado
predeterminada equivalente en Excel mientras esté abierto el libro que contiene la macro.
En la lista Guardar macro en, seleccione el libro en el que desea almacenar la macro.

Sugerencia: Si desea que la macro esté disponible siempre que utilice Excel, seleccione Libro de
macros personal. Cuando se selecciona Libro de macros personal, Excel crea un libro
oculto de macros personal (Personal.xlsb), si no existe todavía, y guarda la macro en
este libro. En Microsoft Windows XP, este libro se guarda en la carpeta C:\Documents
and Settings\nombre de usuario\Datos de programa\Microsoft\Excel\XLStart para
que se pueda cargar automáticamente cada vez que se inicia Excel. En Microsoft
Windows Vista, este libro se guarda en la carpeta C:\Usuarios\nombre de
usuario\Datos de programa\Microsoft\Excel\XLStart.
Si desea que se ejecute automáticamente una macro del libro de macros personal en otro libro,
también debe guardar ese libro en la carpeta XLStart, de forma que ambos libros se abran cuando
se inicie Excel.

1. Para incluir una descripción de la macro, escriba el texto que desee en el cuadro
Descripción.

2. Haga clic en Aceptar para iniciar la grabación.

3. Realice las acciones que desee grabar.

4. En la ficha Programador, en el grupo Código, haga clic en Detener grabación.

5
Sugerencia: También puede hacer clic en Detener grabación en el lado izquierdo de la barra de
estado.
Practica I

Genera las siguientes Macros:

 Grabe una Macro que se active con Control + b y que esta macro permita abrir un archivo.
 Grabe una Macro que inserte una tabla con datos. Grabe una Macro que abra un archivo
existente.
 Grabe una Macro que abra un nuevo archivo. Grabe una Macro que inserte un logotipo.
 Grabe una Macro que ordene alfabéticamente una lista de nombres. Grabe una Macro
que imprima un formulario.
Nota: Recuerde que se debe guardar como un archivo de MS Excel habilitado para macros, es decir
con la extensión .xlsm; caso contrario no guarda el código de las macros.

CODIGOS DE UNA MACRO DE EXCEL

Para observar los códigos de una macro debemos seguir los pasos:

1. En primer lugar seleccione la celda B5 antes de empezar la grabación de la Macro, se


visualiza:

6
2. Presione el Botón Grabar Macro del grupo Código MS Excel muestra
el cuadro de Dialogo Grabar Macro:

3. Ingrese un nombre de la macro por ejemplo saludo


4. En la opción Método Abreviado escriba la letra s, por lo tanto la macro se llamara con
Control + s
5. En Guardar macro en: Seleccione en el lugar en donde desea guardar la macro, por
ejemplo Este libro.
6. En Descripción puede agregar una descripción de lo que hace la macro, este punto es
opcional. Solo le sirve para que usted recuerde acerca de lo que hace la macro, pues
este código no es interpretado por el compilador.
7. Presione el botón Aceptar. Excel inicia la grabación de la Macro
8. Trasládese a la celda A1 y escriba Hola amiguitos, después presione Enter para
aceptar el valor en la celda.
9. Pare la grabación de la macro presionando el botón
Detener Grabación del grupo Código. Excel ha grabado los pasos y ha generado un
código.

10. Para visualizar el código generado, presione la tecla Alt + la tecla de función F11(Alt +
F11), o de un clic derecho en la hoja de cálculo:

7
11. Seleccione la opción Ver código. También puede acceder al grupo Código, al dar clic en
la opción Visual Basic

12. Excel nos traslada al Editor de Visual Basic. Se visualiza:

13. Active los siguientes cuadros o ventanas:

• De clic en el Menú Ver y elija la opción Explorador de Proyectos

• De clic en el Menú Ver y elija la opción Ventana Propiedades

14. Del cuadro Proyecto de doble clic en Módulos o simplemente presione el signo de +
que aparece en la opción Módulos. Se activara debajo de Módulos la Opción Modulo1.

8
15. De doble clic en Modulo1. Se mostrara en el Editor de Visual Basic el código de la
macro que grabamos de la siguiente forma:

Sub Saludo()
‘saludo Macro
‘Mi primera macro
‘Autor: Alumno
‘Acceso directo: CTRL+s
Range("A1").Select
ActiveCell.FormulaR1C1 = "Hola amiguitos"
End Sub
16. Que es lo que significa esto nos preguntaremos asombrados, a continuación se da una
explicación de lo que ha hecho Excel:
• Sub y End Sub indican el inicio y el final del procedimiento de la macro Saludo
• Todo lo que aparece con un apóstrofe ´ indica que no se tomara en cuenta que es
solo texto o comentarios y ese texto aparece en color verde.
• Range("A1").Select Indica que lo primero que hicimos al grabar la macro fue
trasladarnos a la celda A1. La orden Range nos permite trasladarnos a una celda.
• ActiveCell.FormulaR1C1 = "Hola amiguitos" Esto indica que se escribirá en la celda
en que se encuentra el valor de texto Hola amiguitos. Todo lo que aparece entre
comillas siempre será un valor de texto. La orden ActiveCell.FormulaR1C1 nos permite
escribir un valor en la celda activa. Para comprender alteraremos el código dentro del
editor de Visual Basic.

Sub Saludo()
‘saludo Macro
‘Mi primera macro
‘Autor: Alumno
‘Acceso directo: CTRL+s
Range("A1").Select
ActiveCell.FormulaR1C1 = "Hola amiguitos"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Bienvenidos al curso de Excel"
End Sub

9
17. Al alterar el código y cuando regrese a Excel y ejecute la macro con Control + s, hará lo
siguiente:

En A1 escribirá Hola amiguitos

En B1 escribirá Bienvenidos al curso de Excel

Se visualiza:
Sub saludos()
'saludo Macro
'Mi primera macro
'Autor: Alumno
'Acceso directo: CTRL+s '
Range("A1").Select ActiveCell.FormulaR1C1 = "Hola amiguitos"
'
Range("B1").Select
ActiveCell.FormulaR1C1 = "Bienvenidos al seminario de Excel"
'
End
End Sub

Al alterar el código y cuando regrese a Excel y ejecute la macro con Control + s hará:
En A1 escribirá Hola amiguitos.
En B1 escribirá Bienvenidos al seminario de Excel.

Para salir del editor de clic en el Menú Archivo y elija la opción Cerrar y volver a Microsoft
Excel.

10
Si no desea salir por completo de clic en el botón Microsoft Excel que se encuentra activado
en:

Cuando deseé volver al editor:


1. De clic en: la pestaña Programador

2. De clic en el icono del grupo Código

Practica II

 Genere una Macro que escriba un nombre en una celda y lo ponga negrita y
observe el Código.

 Genere una Macro que escriba un nombre en una celda y lo Centre y observe el
Código.

 Genere una Macro que escriba un nombre en una celda y cambie el tamaño de la
letra a 20 puntos y observa el Código.

11
CÓDIGOS MÁS COMUNES
Trasladarse a una Celda
Range("A1").Select
Escribir en una Celda
Activecell.FormulaR1C1="Paty Acosta"
Letra Negrita
Selection.Font.Bold = True
Letra Cursiva
Selection.Font.Italic = True
Letra Subrayada
Selection.Font.Underline = xlUnderlineStyleSingle
Centrar Texto
With Selection.HorizontalAlignment = xlCenter End With
Alinear a la izquierda
With Selection.HorizontalAlignment = xlLeft End With
Alinear a la Derecha
With Selection.HorizontalAlignment = xlRight
End With
Tipo de Letra (Fuente)
With Selection .Font.Name = "AGaramond" End With
Tamaño de Letra (Tamaño de Fuente)
With Selection.Font.Size = 15 End With
Copiar
Selection.Copy
Pegar
ActiveSheet.Paste
Cortar
Selection.Cut

12
Ordenar Ascendente
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Orden Descendente
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Buscar
Cells.Find(What:="Curso", After:=ActiveCell, LookIn:=xlFormulas, LookAt
_:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
Insertar Fila
Selection.EntireRow.Insert
Eliminar Fila
Selection.EntireRow.Delete
Insertar Columna
Selection.EntireColumn.Insert
Eliminar Columna
Selection.EntireColumn.Delete
Abrir un Libro
Workbooks.Open Filename:="C:\Mis documentos\miarchivo.xlsx"
Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\practico2.xlsx",
FileFormat _:=xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:= _ False, CreateBackup:=False

13
ALGUNAS APLICACIONES ESPECIALES

 IDENTIFICAR LA ÚLTIMA FILA EN USO CON VBA

El código que deberíamos usar es el siguiente:

Sub BuscarUltimaFila()

Dim ult As Integer


ult = Cells(Rows.Count, 1).End(xlUp).Row

End Sub

A continuación se explica el código:

Cells(Rows.Count,1) = Al usar Rows.Count estamos contando todas las filas disponibles en Excel
cuyo valor seria 1048576. Como lo usamos en un Cells, estaremos
seleccionando la fila 1048576. El “1” indica la columna en la cual se está
trabajando (“A”).

End(xlUp) = Estamos indicando que desde la fila indicada (1048576), “suba” hasta
que encuentre un valor.

Row = Indicamos que grabe el número de la fila ocupada encontrada.

 SELECCIONAR LA ÚLTIMA FILA

Ahora, si queremos seleccionar esa celda podemos agregar el siguiente código:

Sub BuscarUltimaFila()

Dim n As Long
countult = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox countult
Cells(Rows.Count, 1).End(xlUp).Select

End Sub

Como podemos observar, en vez de .Row , le ponemos .Select

14
 ÚLTIMA FILA VACÍA

Alternativamente, si queremos buscar la última fila vacía, haremos uso del Offset:

Sub BuscarUltimaFila()

Dim n As Long
countult = Cells(Rows.Count, 1).End(xlUp).Offset(1,0).Row
MsgBox countult
Cells(Rows.Count, 1).End(xlUp).Offset(1,0).Select

End Sub

Con Offset(1,0), al encontrar la última fila en uso, saltamos 1 fila más la que sería la última fila
vacía.

Función Offset

La función offset sirve para poder moverse a través de la hoja de cálculo, tal como si lo hiciéramos
con las flechas del teclado (arriba, abajo, izquierda, derecha).

Offset(número de filas, número de columnas)

Ejemplos:

ActiveCell.Offset(1, 0).Select -> Avanza una fila (abajo)


ActiveCell.Offset(0, 1).Select -> Avanza una columna (derecha)
ActiveCell.Offset(2, -1).Select -> Avanza 2 filas (abajo) y retrocede 1 columna (izquierda)
ActiveCell.Offset(0, 0).Select -> Se mantiene en la misma celda activa

Con esta función igualmente podemos poner valores a la celda activa seleccionada. Por ejemplo, la
siguiente macros:

Sub utilidad_del_offset()
Dim TITULO As Range
Set TITULO = Range(“A1”)
TITULO.Offset(1, 0).Value = “Utilidad del Offset”
End Sub

Los resultados serán que el título “Utilidad del Offset” será colocado 1 fila debajo de la celda A1:

15
Otra opción de código es para ir a la primera fila en blanco al final de una tabla completa de datos.
La sentencia sería (considerando que estamos dentro de la tabla):

Sub fin_inferior_de_la_tabla()
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End Sub

Igualmente para irse al final derecho de la tabla:

Sub fin_der_de_la_tabla()
Selection.End(xlToRight).Select
Selection.Offset(0,1).Select
End Sub

Tipos de datos en Visual Basic para Excel.


Tipo de Datos Tamaño de Intervalo
Almacenamiento
Byte 1 byte
Boolean 2 byte
Integer 2 byte
Long (entero largo) 4 byte
4 byte
8 byte

16
Tipos de datos Tamaño de Intervalo
almacenamiento

Byte 1 byte 0 a 255

Boolean 2 bytes True o False

Integer 2 bytes -32.768 a 32.767

Long(entero 4 bytes -2.147.483.648 a 2.147.483.647


largo)

Single (coma 4 bytes -3,402823E38 a -1,401298E-45 para


flotante/ valores negativos;

precisión 1,401298E-45 a 3,402823E38 para


simple) valores positivos

Double (coma 8 bytes -1,79769313486232E308 a -


flotante/ 4,94065645841247E-324

precisión doble) para valores negativos;


4,94065645841247E-324 a

1,79769313486232E308 para valores


positivos

Currency 8 bytes -922.337.203.685.477,5808 a


(entero a 922.337.203.685.477,5807
escala)

17

También podría gustarte