Как только вы начнете писать макросы Excel, их будет легко найти в книге. В какой-то момент вы можете захотеть создать список макросов в своей книге. В Excel нет встроенного способа создания списка макросов. Однако вы можете создать макрос, в котором будут перечислены ваши макросы. (Звучит как бы излишне, не так ли?)

В качестве примера рассмотрим следующий макрос, который проходит через все проекты в вашей книге, чтобы собрать все имена макросов и поместить их на лист:

Sub ListMacros()

Dim VBComp As VBComponent     Dim VBCodeMod As CodeModule     Dim oListsheet As Object     Dim StartLine As Long     Dim ProcName As String     Dim iCount As Integer

Application.ScreenUpdating = False     On Error Resume Next     Set oListsheet = ActiveWorkbook.Worksheets.Add     iCount = 1     oListsheet.[a1] = "Macro"



For Each VBComp In ThisWorkbook.VBProject.VBComponents         Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(VBComp.Name).CodeModule         With VBCodeMod             StartLine = .CountOfDeclarationLines + 1             Do Until StartLine >= .CountOfLines                 oListsheet.[a1].Offset(iCount, 0).Value = _                   .ProcOfLine(StartLine, vbext_pk_Proc)

iCount = iCount + 1

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

Loop         End With         Set VBCodeMod = Nothing     Next VBComp

Application.ScreenUpdating = True End Sub

Чтобы использовать этот макрос, вы должны убедиться, что у вас есть набор ссылок на расширяемость Microsoft VBA. Для этого выполните следующие действия:

  1. В редакторе VBA выберите «Ссылки» в меню «Инструменты». Откроется диалоговое окно «Ссылки». (См. Рис. 1.)

  2. Прокрутите список доступных ссылок и убедитесь, что установлен флажок Microsoft Visual Basic для расширения приложений.

  3. Закройте диалоговое окно.

Когда вы запускаете макрос, он добавляет новый лист в вашу книгу, а затем перечисляет имена всех макросов во всех модулях в книге.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2715) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Generating_a_List_of_Macros [Создание списка макросов].