Está en la página 1de 9

Crear una macro

Grabar una macro

1. Establezca el nivel de seguridad en Medio o Bajo.


1. En el menú Herramientas, haga clic en Opciones.
2. Haga clic en la ficha Seguridad.
3. En Seguridad de macros, haga clic en Seguridad de macros.
4. Haga clic en la ficha Nivel de seguridad y, a continuación, seleccione el nivel de seguridad que desea utilizar.
2. En el menú Herramientas, elija Macro y haga clic en Grabar nueva macro.
3. En el cuadro Nombre de la macro, escriba un nombre para la macro.

Notas:

 El primer carácter del nombre de la macro debe ser una letra. Los demás caracteres pueden ser letras, números o caracteres de
subrayado. No se permiten espacios en un nombre de macro; puede utilizarse un carácter de subrayado como separador de palabras.
 No utilice un nombre de macro que también sea una referencia de celda; de lo contrario puede aparecer un mensaje
indicando que el nombre de la macro no es válido.
1. Si desea ejecutar la macro presionando un método abreviado, escriba una letra en el cuadro Tecla de método abreviado.
Puede utilizarse CTRL+ letra (para letras minúsculas) o CTRL+ MAYÚS + letra (para letras mayúsculas), donde letra es cualquier tecla del
teclado. La tecla de método abreviado que se utilice no puede ser ni un número ni un carácter especial como @ o #. 

 NOTA    La tecla de método abreviado reemplazará a cualquier tecla de método abreviado predeterminada equivalente en Microsoft
Excel mientras esté abierto el libro que contiene la macro.
2. En el cuadro Guardar macro en, haga clic en la ubicación en que desea almacenar la macro.

Si desea que la macro esté disponible siempre que utilice Excel, seleccione Libro de macros personal.

3. Si desea incluir una descripción de la macro, escríbala en el cuadro Descripción.


4. Haga clic en Aceptar.
5. Si desea que la macro se ejecute con relación a la posición de la celda activa, grábela utilizando referencias de celda relativas.
En la barra de herramientas Detener grabación, haga clic en la opción Referencias relativas   para seleccionarla. Excel continuará
grabando macros con referencias relativas hasta que termine la sesión con Excel o hasta que haga clic otra vez en la opción Referencias
relativas   para que no esté seleccionada.
6. Ejecute las acciones que desee grabar.

7. En la barra de herramientas Detener grabación, haga clic en Referencias relativas  .

Crear una macro mediante Microsoft Visual Basic

1. En el menú Herramientas de Microsoft Excel, seleccione Macro y después haga clic en Editor de Visual Basic.
2. En el menú Insertar, haga clic en Módulo.
3. Escriba o copie el código en la ventana de código del módulo.
4. Si desea ejecutar la macro desde la ventana del módulo, presione F5.
5. Una vez escrita la macro, haga clic en Cerrar y volver a Microsoft Excel en el menú Archivo.

Crear una macro de inicio

Las macros automáticas, como Auto_Activate, están diseñadas para ejecutarse cuando se inicia Microsoft Excel. Para obtener más
información sobre este tipo de macros, consulte la Ayuda de Visual Basic.

Copiar parte de una macro para crear otra

1. Establezca el nivel de seguridad en Medio o Bajo.

En el menú Herramientas, haga clic en Opciones.

1. Haga clic en la ficha Seguridad.


2. En Seguridad de macros, haga clic en Seguridad de macros.
3. Haga clic en la ficha Nivel de seguridad y, a continuación, seleccione el nivel de seguridad que desea utilizar.
2. Abra el libro que contenga la macro que desee copiar.
3. Seleccione Macro en el menú Herramientas y, a continuación, haga clic en Macros.
4. En el cuadro Nombre de la macro, escriba el nombre de la macro que desea copiar.
5. Haga clic en Modificar.
6. Seleccione las líneas de la macro que desee copiar.

Para copiar toda la macro, asegúrese de que incluye las líneas  Sub y  End Sub en la selección

7. En la barra de herramientas Estándar, haga clic en Copiar  .


8. Cambie al módulo en el que desee situar el código.

9. Haga clic en Pegar  .

Sugerencia

Puede ver el archivo Libro de macros personal (Personal.xls) en cualquier momento abriéndolo en el Editor de Visual Basic (Alt+F11).
Como Personal.xls es un libro oculto que siempre está abierto, si desea copiar una macro deberá mostrarlo.

Ejecutar una macro


Ejecutar una macro

1. Establezca el nivel de seguridad en Medio o Bajo.


1. En el menú Herramientas, haga clic en Opciones.
2. Haga clic en la ficha Seguridad.
3. En Seguridad de macros, haga clic en Seguridad de macros.
4. Haga clic en la ficha Nivel de seguridad y, a continuación, seleccione el nivel de seguridad que desea utilizar.
2. Abra el libro que contiene la macro.
3. Seleccione Macro en el menú Herramientas y, a continuación, haga clic en Macros.
4. En el cuadro Nombre de la macro, escriba el nombre de la macro que desea ejecutar.
5. Siga uno de estos procedimientos:

Ejecutar una macro en un libro de Microsoft Excel


 Haga clic en Ejecutar.

Si desea interrumpir la ejecución, presione ESC.

Ejecutar una macro desde un módulo de Microsoft Visual Basic

1. Haga clic en Modificar.

2. Haga clic en Ejecutar Sub/UserForm  .

Sugerencia

Si desea ejecutar otra macro diferente mientras está utilizando el Editor de Visual Basic, haga clic en la opción Macros en el
menú Herramientas. En el cuadro Nombre de la macro, escriba el nombre de la macro que desea ejecutar y, a continuación, haga
clic en Ejecutar.

Iniciar una macro desde un método abreviado

1. Seleccione Macro en el menú Herramientas y, a continuación, haga clic en Macros.


2. En el cuadro Nombre de la macro, escriba el nombre de la macro a la que desea asignar un método abreviado de teclado.
3. Haga clic en Opciones.
4. Si desea ejecutar la macro presionando un método abreviado, escriba una letra en el cuadro Tecla de método abreviado.
Puede utilizarse CTRL+ letra (para letras minúsculas) o CTRL+ MAYÚS + letra (para letras mayúsculas), donde letra es cualquier tecla del
teclado. La tecla de método abreviado que se utilice no puede ser ni un número ni un carácter especial como @ o #.

 NOTA    La tecla de método abreviado suplantará a cualquier tecla de método abreviado predeterminada equivalente en Microsoft
Excel mientras esté abierto el libro que contiene la macro.
5. Si desea incluir una descripción de la macro, escríbala en el cuadro Descripción.
6. Haga clic en Aceptar.
7. Haga clic en Cancelar.

Iniciar una macro desde un botón o un control gráfico

1. Haga clic en el botón o el control gráfico para que aparezcan los controladores de tamaño.
2. Con el objeto gráfico seleccionado, haga clic con el botón secundario del mouse (ratón) en un controlador de tamaño del
botón o del objeto gráfico para mostrar el menú contextual.
3. En el menú contextual, haga clic en Asignar macro.
4. Siga uno de estos procedimientos:
 Para asignar una macro al botón u objeto gráfico, escriba el nombre de la macro en el cuadro Nombre de la macro y,
a continuación, haga clic en Aceptar.
 Para grabar una nueva macro y asignarla al objeto gráfico seleccionado, haga clic en Grabar. Cuando finalice de
grabar la macro, haga clic en Detener grabación   en la barra de herramientas Grabar macro.
 Para escribir una macro en el Editor de Visual Basic, haga clic en Nueva. Para modificar una macro existente, haga clic
en el nombre de la macro, en el cuadro Nombre de la macro y, a continuación, haga clic en Modificar.

 NOTA    Si asigna una macro a un botón o a otro objeto que ya esté en uso como, por ejemplo, un hipervínculo, se eliminará la
información del hipervínculo. A partir de entonces, al hacer clic en el botón o en el objeto, se ejecutará la macro.

Iniciar una macro desde un área, una zona activa o un objeto gráfico

1. Dibuje otro objeto para crear una zona activa para un objeto existente.
2. Con el segundo objeto gráfico seleccionado, haga clic con el botón secundario del mouse en un controlador de tamaño del
botón o del objeto gráfico para mostrar el menú contextual.
3. En el menú contextual, haga clic en Asignar macro.
4. Siga uno de estos procedimientos:
 Para asignar una macro al botón u objeto gráfico, escriba el nombre de la macro en el cuadro Nombre de la macro y,
a continuación, haga clic en Aceptar.
 Para grabar una nueva macro y asignarla al objeto gráfico seleccionado, haga clic en Grabar. Cuando finalice de
grabar la macro, haga clic en Detener grabación   en la barra de herramientas Grabar macro.
 Para escribir una macro en el Editor de Visual Basic, haga clic en Nueva. Para modificar una macro existente, haga clic
en el nombre de la macro, en el cuadro Nombre de la macro y, a continuación, haga clic en Modificar.
5. En el menú Formato, haga clic en Autoforma y, a continuación, haga clic en la ficha Colores y líneas.
6. Bajo Rellenar, haga clic en Sin relleno en el cuadro Color. Bajo Línea, haga clic Sin línea en el cuadroColor.
7. Repita estos pasos para cada zona activa que desee crear. No es necesario crear un nuevo objeto gráfico para cada zona
activa.
Iniciar una macro desde un botón de la barra de herramientas

1. En el menú Herramientas, haga clic en Personalizar.


2. Siga uno de estos procedimientos:
 Si la barra de herramientas que contiene el botón no está visible, haga clic en la ficha Barras de herramientas y, a
continuación, active la casilla de verificación que aparece junto al nombre de la barra de herramientas.
 Si el botón que desea utilizar para ejecutar la macro no aparece en una barra de herramientas, haga clic en la
ficha Comandos y, a continuación, elija Macros en la lista Categorías. En la lista Comandos, arrastre el botón Personalizar botón a una
barra de herramientas.
3. Haga clic con el botón secundario en el botón de la barra de herramientas y, a continuación, elija Asignar Macro en el menú
contextual.
4. Escriba el nombre de la macro en el cuadro Nombre de la macro y, a continuación, haga clic enAceptar.

Solucionar problemas de macros


Ocultar todo

Al hacer clic en el botón Actualizar, aparece un mensaje indicando que se perderán los cambios realizados en la macro.

Este mensaje aparece cuando ha realizado cambios en una macro en el Editor de Visual Basic y
también ha cambiado la copia del libro en el Editor de secuencias de comandos de Microsoft.

Para guardar los cambios de la macro, siga este procedimiento:

1. Haga clic en No.


2. Pase a la ventana del Editor de Visual Basic.
3. Exporte los módulos que haya cambiado.
4. En su libro en el Editor de secuencias de comandos de Microsoft, haga clic
en Actualizar   en la barra de herramientas Actualizar.
5. Haga clic en Sí.
6. Importe los módulos para restaurar los cambios realizados en la macro.
Se ha registrado una acción no deseada al registrar una macro.

Para deshacer una acción no deseada en una macro, puede abrir ésta en el Editor de Visual Basic
y quitar los pasos no deseados.

Si no desea utilizar el Editor de Visual Basic, vuelva a registrar la macro sin la acción no deseada.

Una macro registrada genera a veces un mensaje de error.

Una macro registrada puede no funcionar correctamente en todas las situaciones. Si la macro no
se puede ejecutar, Microsoft Excel mostrará un mensaje de error. Algunas macros dependen de
la configuración o de opciones concretas de Excel. Por ejemplo, una macro que busque texto en
negrita no se ejecutará correctamente si no se muestra texto en negrita. Si una macro que se ha
registrado genera un mensaje de error, anote el número de error. Después puede buscar
"mensajes de error" en la Ayuda de Visual Basic y encontrar la información sobre el mensaje
recibido.

Crear menús en Excel 2003


Una de las funciones mas socorridas entre los programadores de macros en Excel, es la creación de menúes que alojen sus macros
creadas para propósitos específicos, ya sea para archivos de uso personal o para complementos (add-ins) que sean compartidos,
vendidos o distribuidos.

Menús en EXCEL 2003


Excel 2003, nos permite la creación de menús que estén ligados a macros escritas por nosotros mismos. Un código para la creación de
un menú en esta versión es:

Sub CrearMenu()
Dim HelpMenu As CommandBarControl
Dim MenuNuevo As CommandBarPopup
Dim MenuItem As CommandBarControl
Dim SubmenuItem As CommandBarButton
'Borra el Menu 'EXCELeINFO' llamando a otra macro
Call BorrarMenu
'Busca por el menú Ayuda, esto es simplemente un convenio no firmado entre programadores
'para los cuales cualquier menu creado y añadido debe ir antes que el menu llamado Ayuda y/o Help,
el cual tiene como ID =30010
Set HelpMenu = Application.CommandBars("Worksheet Menu Bar").FindControl(ID:=30010)
If HelpMenu Is Nothing Then
' Añade el menu 'EXCELeINFO' al final
Set MenuNuevo = Application.CommandBars("Worksheet Menu
Bar").Controls.Add(Type:=msoControlPopup, Temporary:=True)
Else
' Si Ayuda existe, entonces antes que el menu '?' es decir ID=30010
Set MenuNuevo = Application.CommandBars("Worksheet Menu
Bar").Controls.Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True)
End If
' hemos colocado un & antes que la 'C' para que la 'C' esté subrayada y podamos acceder al menú no
solamente con el ratón sino desde el teclado con la combinacion de teclas 'ALT + C'
MenuNuevo.Caption = "EX&CELeINFO"
' Y vamos añadiéndole diferentes botones y/o controles tal que...
'------------------------------------
'MENÚ FORMATO DE REPORTES
Set MenuItem = MenuNuevo.Controls.Add(Type:=msoControlPopup)
With MenuItem
.Caption = "&Formato de reportes"
End With
'
Set SubmenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
With SubmenuItem
.Caption = "&Reporte1"
.FaceId = 532
.OnAction = "Macro1"
End With
'3.B)
Set SubmenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
With SubmenuItem
.Caption = "&Reporte2"
.FaceId = 532
.OnAction = "Macro2"
End With
'
Set SubmenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
With SubmenuItem
.Caption = "&Formatear reporte"
.FaceId = 300
.OnAction = "Macro3"
End With
'------------------------------------
'BOTÓN ACERCA DE
Set MenuItem = MenuNuevo.Controls.Add(Type:=msoControlButton)
With MenuItem
.Caption = "&Macro1"
.FaceId = 682
.OnAction = "Macro4"
.BeginGroup = True
End With
'
Set MenuItem = MenuNuevo.Controls.Add(Type:=msoControlButton)
With MenuItem
.Caption = "&Acerca de ..."
.FaceId = 682
.OnAction = "Macro5"
.BeginGroup = True
End With
End Sub

El menú creado se vería de la siguiente manera:

Notas: El menú creado en el ejemplo es aplicable sólo para el archivo en cuestión, por lo que se crea una macro con el nombre de
BorrarMenu en el evento _BeforeClose.

También podría gustarte