Andrew tiene un libro de trabajo que tiene un buen número de macros. Le gustaría generar una lista de todas las macros que contiene, por lo que se pregunta si hay una manera de realizar la tarea.

No existe una forma intrínseca dentro de Excel para crear una lista de macros. Sin embargo, puede crear una macro que enumere sus macros. (Suena algo redundante, ¿no?)

Como ejemplo, considere la siguiente macro, que recorre todos los proyectos de su libro de trabajo para recopilar todos los nombres de las macros y colocarlos en una hoja de trabajo:

Sub ListMacros()

Dim VBComp As VBComponent     Dim wsTarget As Worksheet     Dim StartLine As Long     Dim iRow As Integer

Application.ScreenUpdating = False

Set wsTarget = Worksheets.Add     wsTarget.Range("A1") = "Macro"

wsTarget.Range("A1").Font.Bold = True     With wsTarget.Range("A1").Borders(xlEdgeBottom)

.LineStyle = xlContinuous         .ColorIndex = 0         .TintAndShade = 0         .Weight = xlThin     End With

iRow = 2

For Each VBComp In ThisWorkbook.VBProject.VBComponents         With VBComp.CodeModule             StartLine = .CountOfDeclarationLines + 1             Do Until StartLine >= .CountOfLines                 wsTarget.Cells(iRow, 1) = _                   .ProcOfLine(StartLine, vbext_pk_Proc)

iRow = iRow + 1                 StartLine = StartLine + _                   .ProcCountLines(.ProcOfLine(StartLine, _                   vbext_pk_Proc), vbext_pk_Proc)

Loop         End With     Next VBComp

wsTarget.Range("A1").EntireColumn.AutoFit     Application.ScreenUpdating = True End Sub

Para utilizar esta macro, debe asegurarse de tener el conjunto de referencias de extensibilidad de Microsoft VBA. Para hacer esto, siga estos pasos:

  1. En el Editor de VBA, elija Referencias en el menú Herramientas. Se muestra el cuadro de diálogo Referencias.

  2. Desplácese por la lista de referencias disponibles y asegúrese de que la casilla de verificación Extensibilidad de Microsoft Visual Basic para aplicaciones esté seleccionada. (Puede haber un número de versión al final de la referencia, pero debe comenzar con las palabras indicadas.) (Ver Figura 1.)

  3. Cierre el cuadro de diálogo.

También deberá realizar un cambio rápido en la configuración del Centro de confianza.

Siga estos pasos:

  1. Muestre el enlace: / excelribbon-Mostrando_Excels_Developer_Tab [pestaña Desarrollador] de la cinta.

  2. En el grupo Código, haga clic en la herramienta Seguridad de macros. Excel muestra el cuadro de diálogo Centro de confianza con las opciones de Configuración de macros seleccionadas a la izquierda. (Ver figura 2)

  3. Asegúrese de que la opción Trust Access to the VBA Project Object Model esté seleccionada.

  4. Haga clic en Aceptar.

Cuando ejecuta la macro, agrega una nueva hoja de trabajo a su libro de trabajo y luego enumera los nombres de todas las macros en todos los módulos del libro de trabajo.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (5225) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Generating_a_List_of_Macros [Generando una lista de macros].